Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 20ce6de

Browse files
author
dev1
committed
Add JUnit for AnagramsInString, BuySellStocks, CountAndSay, MajorityElement, SearchInsertPosition
1 parent 957d03b commit 20ce6de

5 files changed

+223
-0
lines changed

src/test/AnagramsInStringTest.java

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package com.leetcode.arrays;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import org.junit.jupiter.api.Test;
5+
import java.util.Arrays;
6+
import java.util.List;
7+
8+
public class AnagramsInStringTest {
9+
10+
@Test
11+
public void testFindAllAnagramsInTextWithMultipleAnagrams() {
12+
String text = "cbaebabacd";
13+
String pattern = "abc";
14+
List<Integer> expected = Arrays.asList(0, 6);
15+
assertEquals(expected, AnagramsInString.findAllAnagramsInText(text, pattern),
16+
"Phải trả về các vị trí bắt đầu của tất cả các anagram của chuỗi mẫu trong văn bản.");
17+
}
18+
19+
@Test
20+
public void testFindAllAnagramsInTextWithNoAnagrams() {
21+
String text = "abcdefg";
22+
String pattern = "xyz";
23+
List<Integer> expected = Arrays.asList();
24+
assertEquals(expected, AnagramsInString.findAllAnagramsInText(text, pattern),
25+
"Phải trả về danh sách trống khi không tìm thấy anagram nào.");
26+
}
27+
28+
@Test
29+
public void testFindAllAnagramsInTextWhenPatternLargerThanText() {
30+
String text = "ab";
31+
String pattern = "abc";
32+
List<Integer> expected = Arrays.asList();
33+
assertEquals(expected, AnagramsInString.findAllAnagramsInText(text, pattern),
34+
"Phải trả về danh sách trống khi chuỗi mẫu lớn hơn văn bản.");
35+
}
36+
37+
@Test
38+
public void testFindAllAnagramsInTextWithExactMatch() {
39+
String text = "abab";
40+
String pattern = "abab";
41+
List<Integer> expected = Arrays.asList(0);
42+
assertEquals(expected, AnagramsInString.findAllAnagramsInText(text, pattern),
43+
"Phải trả về vị trí bắt đầu khi chuỗi mẫu khớp hoàn hảo với văn bản.");
44+
}
45+
46+
@Test
47+
public void testFindAllAnagramsInTextNaiveWithMultipleAnagrams() {
48+
String text = "cbaebabacd";
49+
String pattern = "abc";
50+
List<Integer> expected = Arrays.asList(0, 6);
51+
assertEquals(expected, AnagramsInString.findAllAnagramsInTextNaive(text, pattern),
52+
"Phải trả về các vị trí bắt đầu của tất cả các anagram của chuỗi mẫu trong văn bản.");
53+
}
54+
55+
@Test
56+
public void testFindAllAnagramsInTextNaiveWithNoAnagrams() {
57+
String text = "abcdefg";
58+
String pattern = "xyz";
59+
List<Integer> expected = Arrays.asList();
60+
assertEquals(expected, AnagramsInString.findAllAnagramsInTextNaive(text, pattern),
61+
"Phải trả về danh sách trống khi không tìm thấy anagram nào.");
62+
}
63+
64+
@Test
65+
public void testFindAllAnagramsInTextNaiveWhenPatternLargerThanText() {
66+
String text = "ab";
67+
String pattern = "abc";
68+
List<Integer> expected = Arrays.asList();
69+
assertEquals(expected, AnagramsInString.findAllAnagramsInTextNaive(text, pattern),
70+
"Phải trả về danh sách trống khi chuỗi mẫu lớn hơn văn bản.");
71+
}
72+
73+
@Test
74+
public void testFindAllAnagramsInTextNaiveWithExactMatch() {
75+
String text = "abab";
76+
String pattern = "abab";
77+
List<Integer> expected = Arrays.asList(0);
78+
assertEquals(expected, AnagramsInString.findAllAnagramsInTextNaive(text, pattern),
79+
"Phải trả về vị trí bắt đầu khi chuỗi mẫu khớp hoàn hảo với văn bản.");
80+
}
81+
}

src/test/BuySellStocksTest.java

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.leetcode.arrays;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import org.junit.jupiter.api.Test;
5+
6+
public class BuySellStocksTest {
7+
8+
@Test
9+
public void testMaxProfitSimpleCase() {
10+
assertEquals(5, BuySellStocks.maxProfit(new int[]{7, 1, 5, 3, 6, 4}),
11+
"Phải trả về lợi nhuận tối đa là 5");
12+
}
13+
14+
@Test
15+
public void testMaxProfitNoTransaction() {
16+
assertEquals(0, BuySellStocks.maxProfit(new int[]{7, 6, 4, 3, 1}),
17+
"Phải trả về lợi nhuận tối đa là 0 khi không có giao dịch nào được thực hiện");
18+
}
19+
20+
@Test
21+
public void testMaxProfitWithZeroPrice() {
22+
assertEquals(6, BuySellStocks.maxProfit(new int[]{7, 1, 5, 0, 6, 4}),
23+
"Phải trả về lợi nhuận tối đa là 6 khi có giá là 0");
24+
}
25+
26+
@Test
27+
public void testMaxProfitDescendingOrder() {
28+
assertEquals(0, BuySellStocks.maxProfit(new int[]{4, 3, 2, 1}),
29+
"Phải trả về lợi nhuận tối đa là 0 với giá giảm dần");
30+
}
31+
32+
@Test
33+
public void testMaxProfitEmptyArray() {
34+
assertEquals(0, BuySellStocks.maxProfit(new int[]{}),
35+
"Phải trả về lợi nhuận tối đa là 0 với mảng trống");
36+
}
37+
38+
@Test
39+
public void testMaxProfitSingleElement() {
40+
assertEquals(0, BuySellStocks.maxProfit(new int[]{1}),
41+
"Phải trả về lợi nhuận tối đa là 0 với mảng chỉ một phần tử");
42+
}
43+
}

src/test/CountAndSayTest.java

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.leetcode.arrays;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import org.junit.jupiter.api.Test;
5+
6+
public class CountAndSayTest {
7+
8+
@Test
9+
public void testCountAndSayBaseCase() {
10+
assertEquals("1", CountAndSay.countAndSay(1),
11+
"Phải trả về '1' khi n = 1.");
12+
}
13+
14+
@Test
15+
public void testCountAndSaySecond() {
16+
assertEquals("11", CountAndSay.countAndSay(2),
17+
"Phải trả về '11' khi n = 2.");
18+
}
19+
20+
@Test
21+
public void testCountAndSayThird() {
22+
assertEquals("21", CountAndSay.countAndSay(3),
23+
"Phải trả về '21' khi n = 3.");
24+
}
25+
26+
@Test
27+
public void testCountAndSayFourth() {
28+
assertEquals("1211", CountAndSay.countAndSay(4),
29+
"Phải trả về '1211' khi n = 4.");
30+
}
31+
32+
@Test
33+
public void testCountAndSayFifth() {
34+
assertEquals("111221", CountAndSay.countAndSay(5),
35+
"Phải trả về '111221' khi n = 5.");
36+
}
37+
}

src/test/MajorityElementTest.java

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.leetcode.arrays;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import org.junit.jupiter.api.Test;
5+
6+
public class MajorityElementTest {
7+
8+
@Test
9+
public void testMajorityElementSimple() {
10+
assertEquals(5, MajorityElement.majorityElement(new int[]{2, 2, 1, 1, 5, 5, 5}),
11+
"Phải trả về phần tử đa số 5.");
12+
}
13+
14+
@Test
15+
public void testMajorityElementAllSame() {
16+
assertEquals(1, MajorityElement.majorityElement(new int[]{1, 1, 1, 1}),
17+
"Phải trả về phần tử đa số 1 khi tất cả các phần tử giống nhau.");
18+
}
19+
20+
@Test
21+
public void testMajorityElementNoInitialMajor() {
22+
assertEquals(3, MajorityElement.majorityElement(new int[]{1, 1, 2, 3, 3, 3, 3}),
23+
"Phải trả về phần tử đa số 3 khi phần tử đa số không phải là phần tử đầu tiên.");
24+
}
25+
26+
@Test
27+
public void testMajorityElementChangeMajority() {
28+
assertEquals(1, MajorityElement.majorityElement(new int[]{3, 1, 3, 1, 1}),
29+
"Phải trả về phần tử đa số 1 khi phần tử đa số thay đổi trong quá trình duyệt.");
30+
}
31+
}
+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.leetcode.arrays;
2+
3+
import static org.junit.jupiter.api.Assertions.*;
4+
import org.junit.jupiter.api.Test;
5+
6+
class SearchInsertPositionTest {
7+
@Test
8+
public void testTargetFound() {
9+
assertEquals(2, SearchInsertPosition.searchInsert(new int[]{1,3,5,6}, 5));
10+
}
11+
12+
@Test
13+
public void testInsertPosition() {
14+
assertEquals(1, SearchInsertPosition.searchInsert(new int[]{1,3,5,6}, 2));
15+
}
16+
17+
@Test
18+
public void testInsertAtEnd() {
19+
assertEquals(4, SearchInsertPosition.searchInsert(new int[]{1,3,5,6}, 7));
20+
}
21+
22+
@Test
23+
public void testInsertAtBeginning() {
24+
assertEquals(0, SearchInsertPosition.searchInsert(new int[]{1,3,5,6}, 0));
25+
}
26+
27+
@Test
28+
public void testEmptyArray() {
29+
assertEquals(0, SearchInsertPosition.searchInsert(new int[]{}, 3));
30+
}
31+
}

0 commit comments

Comments
 (0)