forked from npgsql/npgsql
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathSizeTests.cs
More file actions
59 lines (46 loc) · 2.01 KB
/
SizeTests.cs
File metadata and controls
59 lines (46 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using System;
using NUnit.Framework;
using Npgsql.Internal;
namespace Npgsql.Tests;
public class SizeTests
{
[Test]
public void UnknownKind() => Assert.That(Size.Unknown.Kind, Is.EqualTo(SizeKind.Unknown));
[Test]
public void UnknownThrowsOnValue() => Assert.Throws<InvalidOperationException>(() => _ = Size.Unknown.Value);
[Test]
public void Exact()
{
Assert.That(Size.Create(1).Value, Is.EqualTo(1));
Assert.That(Size.Create(1).Kind, Is.EqualTo(SizeKind.Exact));
}
[Test]
public void ZeroIsExactKind() => Assert.That(Size.Zero.Kind, Is.EqualTo(SizeKind.Exact));
[Test]
public void UpperBound()
{
Assert.That(Size.CreateUpperBound(1).Value, Is.EqualTo(1));
Assert.That(Size.CreateUpperBound(1).Kind, Is.EqualTo(SizeKind.UpperBound));
}
[Test]
public void CombineThrowsOnOverflow() => Assert.Throws<OverflowException>(() => Size.Create(1).Combine(int.MaxValue));
[Test]
public void CombineExactWorks() => Assert.That(Size.Create(1).Combine(1), Is.EqualTo(Size.Create(2)));
[Test]
public void CombineUpperBoundWorks() => Assert.That(Size.CreateUpperBound(1).Combine(1), Is.EqualTo(Size.CreateUpperBound(2)));
[Test]
public void CombineUnknownWithAnyGivesUnknown()
{
Assert.That(Size.Unknown.Combine(Size.Unknown), Is.EqualTo(Size.Unknown));
Assert.That(Size.Create(1).Combine(Size.Unknown), Is.EqualTo(Size.Unknown));
Assert.That(Size.Unknown.Combine(Size.Create(1)), Is.EqualTo(Size.Unknown));
Assert.That(Size.Unknown.Combine(Size.CreateUpperBound(1)), Is.EqualTo(Size.Unknown));
Assert.That(Size.CreateUpperBound(1).Combine(Size.Unknown), Is.EqualTo(Size.Unknown));
}
[Test]
public void CombineUpperBoundWithExactGivesUpperBound()
{
Assert.That(Size.Create(1).Combine(Size.CreateUpperBound(1)), Is.EqualTo(Size.CreateUpperBound(2)));
Assert.That(Size.CreateUpperBound(1).Combine(Size.Create(1)), Is.EqualTo(Size.CreateUpperBound(2)));
}
}