Skip to content

Commit 6e40e18

Browse files
authored
Merge pull request #2 from shadzhiyski/feature/interval_set_has_intersection
HasIntersection methods added.
2 parents f3f8bb9 + ad5ee05 commit 6e40e18

11 files changed

+668
-245
lines changed

EasyIntervals.Tests/IntervalComparerTests.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,21 @@ namespace EasyIntervals.Tests;
33
public class IntervalComparerTests
44
{
55
[Fact]
6-
public void SameStartFirstOpenSecondStartClosed_ShouldReturnOne()
6+
public void SameStartFirstOpenSecondEndOpen_ShouldReturnOne()
77
{
88
var intervalComparer = IntervalComparer<int, int?>.Create(Comparer<int>.Default);
99

10-
var result = intervalComparer.Compare((5, 12), (5, 10, IntervalType.StartClosed));
10+
var result = intervalComparer.Compare((5, 12), (5, 10, IntervalType.EndOpen));
1111

1212
result.Should().Be(1);
1313
}
1414

1515
[Fact]
16-
public void SameStartFirstStartClosedSecondOpen_ShouldReturnMinusOne()
16+
public void SameStartFirstEndOpenSecondOpen_ShouldReturnMinusOne()
1717
{
1818
var intervalComparer = IntervalComparer<int, int?>.Create(Comparer<int>.Default);
1919

20-
var result = intervalComparer.Compare((5, 12, IntervalType.StartClosed), (5, 10));
20+
var result = intervalComparer.Compare((5, 12, IntervalType.EndOpen), (5, 10, IntervalType.Open));
2121

2222
result.Should().Be(-1);
2323
}
@@ -27,7 +27,7 @@ public void SameStartSameStartTypeFirstGreaterEnd_ShouldReturnOne()
2727
{
2828
var intervalComparer = IntervalComparer<int, int?>.Create(Comparer<int>.Default);
2929

30-
var result = intervalComparer.Compare((5, 12, IntervalType.StartClosed), (5, 10, IntervalType.StartClosed));
30+
var result = intervalComparer.Compare((5, 12, IntervalType.EndOpen), (5, 10, IntervalType.EndOpen));
3131

3232
result.Should().Be(1);
3333
}
@@ -37,27 +37,27 @@ public void SameStartSameStartTypeFirstLowerEnd_ShouldReturnMinusOne()
3737
{
3838
var intervalComparer = IntervalComparer<int, int?>.Create(Comparer<int>.Default);
3939

40-
var result = intervalComparer.Compare((5, 9, IntervalType.StartClosed), (5, 10, IntervalType.StartClosed));
40+
var result = intervalComparer.Compare((5, 9, IntervalType.EndOpen), (5, 10, IntervalType.EndOpen));
4141

4242
result.Should().Be(-1);
4343
}
4444

4545
[Fact]
46-
public void SameLimitsSameStartTypeFirstEndClosed_ShouldReturnOne()
46+
public void SameLimitsSameStartTypeFirstStartOpen_ShouldReturnOne()
4747
{
4848
var intervalComparer = IntervalComparer<int, int?>.Create(Comparer<int>.Default);
4949

50-
var result = intervalComparer.Compare((5, 10, IntervalType.Closed), (5, 10, IntervalType.StartClosed));
50+
var result = intervalComparer.Compare((5, 10, IntervalType.Closed), (5, 10, IntervalType.EndOpen));
5151

5252
result.Should().Be(1);
5353
}
5454

5555
[Fact]
56-
public void SameLimitsSameStartTypeSecondEndClosed_ShouldReturnMinusOne()
56+
public void SameLimitsSameStartTypeSecondStartOpen_ShouldReturnMinusOne()
5757
{
5858
var intervalComparer = IntervalComparer<int, int?>.Create(Comparer<int>.Default);
5959

60-
var result = intervalComparer.Compare((5, 10, IntervalType.StartClosed), (5, 10, IntervalType.Closed));
60+
var result = intervalComparer.Compare((5, 10, IntervalType.EndOpen), (5, 10, IntervalType.Closed));
6161

6262
result.Should().Be(-1);
6363
}
@@ -67,7 +67,7 @@ public void SameLimitsSameTypes_ShouldReturnZero()
6767
{
6868
var intervalComparer = IntervalComparer<int, int?>.Create(Comparer<int>.Default);
6969

70-
var result = intervalComparer.Compare((5, 10, IntervalType.StartClosed), (5, 10, IntervalType.StartClosed));
70+
var result = intervalComparer.Compare((5, 10, IntervalType.EndOpen), (5, 10, IntervalType.EndOpen));
7171

7272
result.Should().Be(0);
7373
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
namespace EasyIntervals.Tests;
2+
3+
public class IntervalExtensionsTests
4+
{
5+
[Fact]
6+
public void HasIntersection_IntersectingIntervals_ShouldReturnTrue()
7+
{
8+
Interval<int, int?> interval = (2, 5);
9+
Interval<int, int?> other = (4, 8);
10+
11+
var result = interval.HasIntersection(other, IntersectionType.Any);
12+
13+
result.Should().BeTrue();
14+
}
15+
16+
[Fact]
17+
public void HasIntersection_NotIntersectingIntervals_ShouldReturnFalse()
18+
{
19+
Interval<int, int?> interval = (2, 5);
20+
Interval<int, int?> other = (6, 8);
21+
22+
var result = interval.HasIntersection(other, IntersectionType.Any);
23+
24+
result.Should().BeFalse();
25+
}
26+
27+
[Fact]
28+
public void HasIntersection_IntersectingIntervalsWithCustomComparer_ShouldReturnTrue()
29+
{
30+
var comparer = Comparer<int>.Create((i1, i2) => i2 - i1);
31+
Interval<int, int?> interval = (5, 2, comparer);
32+
Interval<int, int?> other = (8, 4, comparer);
33+
34+
var result = interval.HasIntersection(other, IntersectionType.Any, comparer);
35+
36+
result.Should().BeTrue();
37+
}
38+
39+
[Fact]
40+
public void HasIntersection_NotIntersectingIntervalsWithCustomComparer_ShouldReturnFalse()
41+
{
42+
var comparer = Comparer<int>.Create((i1, i2) => i2 - i1);
43+
Interval<int, int?> interval = (5, 2, comparer);
44+
Interval<int, int?> other = (8, 6, comparer);
45+
46+
var result = interval.HasIntersection(other, IntersectionType.Any, comparer);
47+
48+
result.Should().BeFalse();
49+
}
50+
}

0 commit comments

Comments
 (0)