Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue #58 Add method overlapsRange and Unit test #78

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion src/main/java/com/ordestiny/tdd/range/Range.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,24 @@ public int[] getAllPoints(int start, int end) {
throw new IllegalArgumentException();
}
}


/**
* checks if point from start to end overlaps with point from compareStart to compareEnd
*
* @param start
* @param end
* @param compareStart
* @param compareEnd
* @return true for overlaps range
*/
public boolean overlapsRange(int start, int end, int compareStart, int compareEnd) {
if (start < end && compareStart < compareEnd) {
if (compareStart > end) {
return false;
}
return true;
} else {
throw new IllegalArgumentException();
}
}
}
40 changes: 37 additions & 3 deletions src/test/java/com/ordestiny/tdd/range/RangeTest.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package com.ordestiny.tdd.range;

import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;

import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

public class RangeTest {

private Range range = new Range();
Expand All @@ -25,4 +24,39 @@ public void getAllPoints_whenStartNumberEqualEndNumber_returnArrayWithOneElement
int[] expectedResults = {4};
assertArrayEquals(expectedResults, range.getAllPoints(4, 4));
}

@Test
public void overlapsRange_whenRangeDoesntOverlaps_returnFalse() {
assertFalse(range.overlapsRange(2,5,7,10));
}

@Test
public void overlapsRange_whenFirstRangeContainsSecondRange_returnTrue() {
assertTrue(range.overlapsRange(2,10,3,5));
}

@Test
public void overlapsRange_whenRangesAreEqual_returnTrue() {
assertTrue(range.overlapsRange(3,5,3,5));
}

@Test
public void overlapsRange_whenHalfOfFirstRangeOverlapsSecondRange_returnTrue() {
assertTrue(range.overlapsRange(2,5,3,10));
}

@Test
public void overlapsRange_whenFirstRangeIsWithInSecondRange_returnTrue() {
assertTrue(range.overlapsRange(3,5,2,10));
}

@Test
public void overlapsRange_whenStartIsGreaterThanEnd_returnException() {
assertThrows(IllegalArgumentException.class, () -> range.overlapsRange(5,3,3,5));
}

@Test
public void overlapsRange_whenCompareStartIsGreaterThanCompareEnd_returnException() {
assertThrows(IllegalArgumentException.class, () -> range.overlapsRange(3,5,5,3));
}
}