import static org.junit.jupiter.api.Assertions.*; import java.util.Arrays; import org.junit.jupiter.api.Test; class PointsAndSegmentsTest { @Test void test() { int[] starts = {0, 7}; int[] ends = {5, 10}; int[] points = {1, 6, 11}; int[] results = {1, 0, 0}; assertArrayEquals(results, PointsAndSegments.naiveCountSegments(starts, ends, points)); assertArrayEquals(results, PointsAndSegments.fasterCountSegments(starts, ends, points)); assertArrayEquals(results, PointsAndSegments.fastestCountSegments(starts, ends, points)); } @Test void test1() { int[] starts = {-10}; int[] ends = {10}; int[] points = {-100, 100, 0}; int[] results = {0, 0, 1}; assertArrayEquals(results, PointsAndSegments.naiveCountSegments(starts, ends, points)); assertArrayEquals(results, PointsAndSegments.fasterCountSegments(starts, ends, points)); assertArrayEquals(results, PointsAndSegments.fastestCountSegments(starts, ends, points)); } @Test void test2() { int[] starts = {0, -3, 7}; int[] ends = {5, 2, 10}; int[] points = {1, 6}; int[] results = {2, 0}; assertArrayEquals(results, PointsAndSegments.naiveCountSegments(starts, ends, points)); assertArrayEquals(results, PointsAndSegments.fasterCountSegments(starts, ends, points)); assertArrayEquals(results, PointsAndSegments.fastestCountSegments(starts, ends, points)); } @Test void test3() { int[] starts = {0, 7}; int[] ends = {5, 10}; int[] points = {1, 6, 11}; int[] results = {1, 0, 0}; assertArrayEquals(results, PointsAndSegments.fasterCountSegments(starts, ends, points)); assertArrayEquals(results, PointsAndSegments.fastestCountSegments(starts, ends, points)); } @Test void test4() { PointsAndSegments.Segment[] s = new PointsAndSegments.Segment[3]; s[0] = new PointsAndSegments.Segment(0, 5); s[1] = new PointsAndSegments.Segment(-3, 2); s[2] = new PointsAndSegments.Segment(7, 10); int p = 1; assertEquals(2, PointsAndSegments.segCounts(s, p, 0, s.length - 1)); } @Test void test5() { PointsAndSegments.Segment[] s = new PointsAndSegments.Segment[3]; s[0] = new PointsAndSegments.Segment(0, 5); s[1] = new PointsAndSegments.Segment(-3, 2); s[2] = new PointsAndSegments.Segment(7, 10); int p = 6; Arrays.sort(s); assertEquals(0, PointsAndSegments.segCounts(s, p, 0, s.length - 1)); } }