Skip to content

Commit eae8cc2

Browse files
committed
Added tests for tasks 558-3548
1 parent 0c847b5 commit eae8cc2

File tree

6 files changed

+394
-0
lines changed

6 files changed

+394
-0
lines changed

src/test/java/g0501_0600/s0558_logical_or_of_two_binary_grids_represented_as_quad_trees/SolutionTest.java

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,53 @@ void intersect() {
2626
new Solution().intersect(node1, node2).toString(),
2727
equalTo("[0,0][1,1][1,1][1,1][1,0]"));
2828
}
29+
30+
@Test
31+
void intersect2() {
32+
Node n1 = new Node(true, true);
33+
Node n2 = new Node(true, true);
34+
assertThat(new Solution().intersect(n1, n2), equalTo(n1));
35+
}
36+
37+
@Test
38+
void intersect3() {
39+
// n1 is leaf true → OR result is true → return n1 (true)
40+
Node n1 = new Node(true, true);
41+
Node n2 = new Node(false, false); // non-leaf
42+
assertThat(new Solution().intersect(n1, n2), equalTo(n1));
43+
}
44+
45+
@Test
46+
void intersect4() {
47+
Node n1 = new Node(false, false); // non-leaf
48+
Node n2 = new Node(true, true);
49+
assertThat(new Solution().intersect(n1, n2), equalTo(n2));
50+
}
51+
52+
@Test
53+
void intersect5() {
54+
Node n1 = new Node(true, false);
55+
Node n2 = new Node(true, true);
56+
assertThat(new Solution().intersect(n1, n2), equalTo(n2));
57+
}
58+
59+
@Test
60+
void intersect6() {
61+
Node a = new Node(true, true);
62+
Node n1 = new Node(false, false);
63+
n1.topLeft = a;
64+
n1.topRight = a;
65+
n1.bottomLeft = a;
66+
n1.bottomRight = a;
67+
68+
Node n2 = new Node(false, false);
69+
n2.topLeft = new Node(true, true);
70+
n2.topRight = new Node(true, true);
71+
n2.bottomLeft = new Node(true, true);
72+
n2.bottomRight = new Node(true, true);
73+
74+
Node result = new Solution().intersect(n1, n2);
75+
assertThat(result.isLeaf, equalTo(true));
76+
assertThat(result.val, equalTo(true));
77+
}
2978
}

src/test/java/g0701_0800/s0715_range_module/RangeModuleTest.java

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,88 @@ void solutionTest() {
1515
assertThat(rangeModule.queryRange(13, 15), equalTo(false));
1616
assertThat(rangeModule.queryRange(16, 17), equalTo(true));
1717
}
18+
19+
@Test
20+
void solutionTest2() {
21+
RangeModule rm = new RangeModule();
22+
rm.addRange(5, 10);
23+
rm.addRange(10, 15);
24+
assertThat(rm.queryRange(6, 14), equalTo(true));
25+
}
26+
27+
@Test
28+
void solutionTest3() {
29+
RangeModule rm = new RangeModule();
30+
rm.addRange(1, 5);
31+
rm.addRange(3, 7);
32+
rm.addRange(6, 10);
33+
assertThat(rm.queryRange(2, 9), equalTo(true));
34+
assertThat(rm.queryRange(0, 2), equalTo(false));
35+
}
36+
37+
@Test
38+
void solutionTest4() {
39+
RangeModule rm = new RangeModule();
40+
rm.addRange(0, 10);
41+
rm.removeRange(3, 7);
42+
assertThat(rm.queryRange(1, 3), equalTo(true));
43+
assertThat(rm.queryRange(7, 9), equalTo(true));
44+
assertThat(rm.queryRange(4, 6), equalTo(false));
45+
}
46+
47+
@Test
48+
void solutionTest5() {
49+
RangeModule rm = new RangeModule();
50+
rm.addRange(5, 8);
51+
rm.removeRange(0, 20);
52+
assertThat(rm.queryRange(5, 7), equalTo(false));
53+
}
54+
55+
@Test
56+
void solutionTest6() {
57+
RangeModule rm = new RangeModule();
58+
rm.addRange(10, 20);
59+
rm.removeRange(5, 12);
60+
assertThat(rm.queryRange(10, 12), equalTo(false));
61+
assertThat(rm.queryRange(12, 15), equalTo(true));
62+
}
63+
64+
@Test
65+
void solutionTest7() {
66+
RangeModule rm = new RangeModule();
67+
rm.addRange(10, 20);
68+
rm.removeRange(18, 30);
69+
assertThat(rm.queryRange(17, 18), equalTo(true));
70+
assertThat(rm.queryRange(18, 19), equalTo(false));
71+
}
72+
73+
@Test
74+
void solutionTest8() {
75+
RangeModule rm = new RangeModule();
76+
rm.removeRange(5, 10);
77+
assertThat(rm.queryRange(5, 6), equalTo(false));
78+
}
79+
80+
@Test
81+
void solutionTest9() {
82+
RangeModule rm = new RangeModule();
83+
rm.addRange(5, 7);
84+
rm.addRange(10, 12);
85+
assertThat(rm.queryRange(6, 7), equalTo(true));
86+
assertThat(rm.queryRange(8, 9), equalTo(false));
87+
assertThat(rm.queryRange(11, 12), equalTo(true));
88+
}
89+
90+
@Test
91+
void solutionTest10() {
92+
RangeModule rm = new RangeModule();
93+
rm.addRange(1, 5);
94+
rm.addRange(10, 15);
95+
rm.removeRange(3, 12);
96+
97+
assertThat(rm.queryRange(2, 3), equalTo(true));
98+
assertThat(rm.queryRange(3, 4), equalTo(false));
99+
assertThat(rm.queryRange(12, 14), equalTo(true));
100+
}
101+
18102
}

src/test/java/g1501_1600/s1520_maximum_number_of_non_overlapping_substrings/SolutionTest.java

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import static org.hamcrest.MatcherAssert.assertThat;
55

66
import java.util.Arrays;
7+
import java.util.Collections;
8+
79
import org.junit.jupiter.api.Test;
810

911
class SolutionTest {
@@ -20,4 +22,63 @@ void maxNumOfSubstrings2() {
2022
new Solution().maxNumOfSubstrings("abbaccd"),
2123
equalTo(Arrays.asList("bb", "cc", "d")));
2224
}
25+
26+
@Test
27+
void maxNumOfSubstrings3() {
28+
assertThat(
29+
new Solution().maxNumOfSubstrings("a"),
30+
equalTo(Arrays.asList("a")));
31+
}
32+
33+
@Test
34+
void maxNumOfSubstrings4() {
35+
assertThat(
36+
new Solution().maxNumOfSubstrings("abc"),
37+
equalTo(Arrays.asList("a", "b", "c")));
38+
}
39+
40+
@Test
41+
void maxNumOfSubstrings5() {
42+
// entire string must be returned because every char overlaps
43+
assertThat(
44+
new Solution().maxNumOfSubstrings("abac"),
45+
equalTo(Arrays.asList("b", "c")));
46+
}
47+
48+
@Test
49+
void maxNumOfSubstrings6() {
50+
// bba contains a full nest, but algorithm should choose minimal valid substrings
51+
assertThat(
52+
new Solution().maxNumOfSubstrings("bba"),
53+
equalTo(Arrays.asList("bb", "a")));
54+
}
55+
56+
@Test
57+
void maxNumOfSubstrings7() {
58+
assertThat(
59+
new Solution().maxNumOfSubstrings("abcabc"),
60+
equalTo(Arrays.asList("abcabc"))); // whole string forced
61+
}
62+
63+
@Test
64+
void maxNumOfSubstrings8() {
65+
assertThat(
66+
new Solution().maxNumOfSubstrings("aaaa"),
67+
equalTo(Arrays.asList("aaaa")));
68+
}
69+
70+
@Test
71+
void maxNumOfSubstrings9_emptyString() {
72+
assertThat(
73+
new Solution().maxNumOfSubstrings(""),
74+
equalTo(Collections.emptyList()));
75+
}
76+
77+
@Test
78+
void maxNumOfSubstrings10_complexRandom() {
79+
assertThat(
80+
new Solution().maxNumOfSubstrings("cabcccbaa"),
81+
equalTo(Arrays.asList("cabcccbaa")));
82+
}
83+
2384
}

src/test/java/g2501_2600/s2540_minimum_common_value/SolutionTest.java

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,67 @@ void getCommon2() {
1717
new Solution().getCommon(new int[] {1, 2, 3, 6}, new int[] {2, 3, 4, 5}),
1818
equalTo(2));
1919
}
20+
21+
@Test
22+
void getCommon3() {
23+
assertThat(
24+
new Solution().getCommon(new int[] {1, 2, 3}, new int[] {4, 5, 6}),
25+
equalTo(-1));
26+
}
27+
28+
@Test
29+
void getCommon4() {
30+
assertThat(
31+
new Solution().getCommon(new int[] {1, 3, 5, 7}, new int[] {0, 2, 4, 7}),
32+
equalTo(7));
33+
}
34+
35+
@Test
36+
void getCommon5() {
37+
assertThat(
38+
new Solution().getCommon(new int[] {2, 3, 4}, new int[] {2, 5, 6}),
39+
equalTo(2));
40+
}
41+
42+
@Test
43+
void getCommon6() {
44+
assertThat(
45+
new Solution().getCommon(new int[] {5}, new int[] {5}),
46+
equalTo(5));
47+
}
48+
49+
@Test
50+
void getCommon7() {
51+
assertThat(
52+
new Solution().getCommon(new int[] {5}, new int[] {6}),
53+
equalTo(-1));
54+
}
55+
56+
@Test
57+
void getCommon8() {
58+
assertThat(
59+
new Solution().getCommon(new int[] {1, 2, 3, 4}, new int[] {2, 3, 4}),
60+
equalTo(2));
61+
}
62+
63+
@Test
64+
void getCommon9() {
65+
assertThat(
66+
new Solution().getCommon(new int[] {1, 2}, new int[] {100, 200}),
67+
equalTo(-1));
68+
}
69+
70+
@Test
71+
void getCommon10() {
72+
assertThat(
73+
new Solution().getCommon(new int[] {50, 60}, new int[] {1, 2, 3}),
74+
equalTo(-1));
75+
}
76+
77+
@Test
78+
void getCommon11() {
79+
assertThat(
80+
new Solution().getCommon(new int[] {1, 2, 5}, new int[] {3, 4, 6}),
81+
equalTo(-1));
82+
}
2083
}

src/test/java/g2901_3000/s2905_find_indices_with_index_and_value_difference_ii/SolutionTest.java

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,57 @@ void findIndices3() {
2323
assertThat(
2424
new Solution().findIndices(new int[] {1, 2, 3}, 2, 4), equalTo(new int[] {-1, -1}));
2525
}
26+
27+
@Test
28+
void findIndices4() {
29+
int[] big = new int[100000];
30+
assertThat(
31+
new Solution().findIndices(big, 1, 1_000_000_000),
32+
equalTo(new int[] {49998, 50000}));
33+
}
34+
35+
@Test
36+
void findIndices5() {
37+
int[] big = new int[100001];
38+
assertThat(
39+
new Solution().findIndices(big, 2, 100000),
40+
equalTo(new int[] {-1, -1}));
41+
}
42+
43+
@Test
44+
void findIndices6() {
45+
int[] big = new int[100001];
46+
assertThat(
47+
new Solution().findIndices(big, 5, 1_000_000_000),
48+
equalTo(new int[] {-1, -1}));
49+
}
50+
51+
@Test
52+
void findIndices7() {
53+
assertThat(
54+
new Solution().findIndices(new int[] {1, 1, 10}, 1, 5),
55+
equalTo(new int[] {0, 2}));
56+
}
57+
58+
@Test
59+
void findIndices8() {
60+
assertThat(
61+
new Solution().findIndices(new int[] {7, 7, 7}, 3, 1),
62+
equalTo(new int[] {-1, -1}));
63+
}
64+
65+
@Test
66+
void findIndices9() {
67+
assertThat(
68+
new Solution().findIndices(new int[] {9, 3, 5}, 0, 0),
69+
equalTo(new int[] {0, 0}));
70+
}
71+
72+
@Test
73+
void findIndices10() {
74+
assertThat(
75+
new Solution().findIndices(new int[] {3, 10, 3}, 1, 7),
76+
equalTo(new int[] {0, 1}));
77+
}
78+
2679
}

0 commit comments

Comments
 (0)