Skip to content

Commit 75fd11a

Browse files
committed
test: Add Unit Test for LargestPrimeDivisor
1 parent a70c225 commit 75fd11a

5 files changed

Lines changed: 139 additions & 18 deletions

File tree

company/Company.iml

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,21 @@
33
<component name="NewModuleRootManager" inherit-compiler-output="true">
44
<exclude-output />
55
<content url="file://$MODULE_DIR$">
6-
<sourceFolder url="file://$MODULE_DIR$/Airbnb" isTestSource="false" />
7-
<sourceFolder url="file://$MODULE_DIR$/Amazon" isTestSource="false" />
8-
<sourceFolder url="file://$MODULE_DIR$/Facebook" isTestSource="false" />
9-
<sourceFolder url="file://$MODULE_DIR$/Google" isTestSource="false" />
10-
<sourceFolder url="file://$MODULE_DIR$/LinkedIn" isTestSource="false" />
11-
<sourceFolder url="file://$MODULE_DIR$/Twitter" isTestSource="false" />
12-
<sourceFolder url="file://$MODULE_DIR$/Uber" isTestSource="false" />
6+
<sourceFolder url="file://$MODULE_DIR$/adobe" isTestSource="false" />
7+
<sourceFolder url="file://$MODULE_DIR$/airbnb" isTestSource="false" />
8+
<sourceFolder url="file://$MODULE_DIR$/amazon" isTestSource="false" />
9+
<sourceFolder url="file://$MODULE_DIR$/apple" isTestSource="false" />
10+
<sourceFolder url="file://$MODULE_DIR$/bloomberg" isTestSource="false" />
11+
<sourceFolder url="file://$MODULE_DIR$/facebook" isTestSource="false" />
12+
<sourceFolder url="file://$MODULE_DIR$/google" isTestSource="false" />
13+
<sourceFolder url="file://$MODULE_DIR$/linkedin" isTestSource="false" />
14+
<sourceFolder url="file://$MODULE_DIR$/microsoft" isTestSource="false" />
15+
<sourceFolder url="file://$MODULE_DIR$/palantir" isTestSource="false" />
16+
<sourceFolder url="file://$MODULE_DIR$/snapchat" isTestSource="false" />
17+
<sourceFolder url="file://$MODULE_DIR$/twitter" isTestSource="false" />
18+
<sourceFolder url="file://$MODULE_DIR$/uber" isTestSource="false" />
19+
<sourceFolder url="file://$MODULE_DIR$/yahoo" isTestSource="false" />
20+
<sourceFolder url="file://$MODULE_DIR$/yelp" isTestSource="false" />
1321
</content>
1422
<orderEntry type="inheritedJdk" />
1523
<orderEntry type="sourceFolder" forTests="false" />

interviews.iml

Lines changed: 0 additions & 9 deletions
This file was deleted.

leetcode/LeetCode.iml

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,31 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<module version="4">
3-
<component name="NewModuleRootManager" inherit-compiler-output="false">
2+
<module type="JAVA_MODULE" version="4">
3+
<component name="NewModuleRootManager" inherit-compiler-output="true">
4+
<exclude-output />
5+
<content url="file://$MODULE_DIR$">
6+
<sourceFolder url="file://$MODULE_DIR$/array" isTestSource="false" />
7+
<sourceFolder url="file://$MODULE_DIR$/backtracking" isTestSource="false" />
8+
<sourceFolder url="file://$MODULE_DIR$/binary-search" isTestSource="false" />
9+
<sourceFolder url="file://$MODULE_DIR$/bit-manipulation" isTestSource="false" />
10+
<sourceFolder url="file://$MODULE_DIR$/brainteaser" isTestSource="false" />
11+
<sourceFolder url="file://$MODULE_DIR$/breadth-first-search" isTestSource="false" />
12+
<sourceFolder url="file://$MODULE_DIR$/depth-first-search" isTestSource="false" />
13+
<sourceFolder url="file://$MODULE_DIR$/design" isTestSource="false" />
14+
<sourceFolder url="file://$MODULE_DIR$/divide-and-conquer" isTestSource="false" />
15+
<sourceFolder url="file://$MODULE_DIR$/dynamic-programming" isTestSource="false" />
16+
<sourceFolder url="file://$MODULE_DIR$/greedy" isTestSource="false" />
17+
<sourceFolder url="file://$MODULE_DIR$/hash-table" isTestSource="false" />
18+
<sourceFolder url="file://$MODULE_DIR$/linked-list" isTestSource="false" />
19+
<sourceFolder url="file://$MODULE_DIR$/math" isTestSource="false" />
20+
<sourceFolder url="file://$MODULE_DIR$/queue" isTestSource="false" />
21+
<sourceFolder url="file://$MODULE_DIR$/sort" isTestSource="false" />
22+
<sourceFolder url="file://$MODULE_DIR$/stack" isTestSource="false" />
23+
<sourceFolder url="file://$MODULE_DIR$/string" isTestSource="false" />
24+
<sourceFolder url="file://$MODULE_DIR$/tree" isTestSource="false" />
25+
<sourceFolder url="file://$MODULE_DIR$/trie" isTestSource="false" />
26+
<sourceFolder url="file://$MODULE_DIR$/two-pointers" isTestSource="false" />
27+
</content>
28+
<orderEntry type="inheritedJdk" />
429
<orderEntry type="sourceFolder" forTests="false" />
530
</component>
631
</module>

pom.xml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
5+
<groupId>com.interviews</groupId>
6+
<artifactId>interviews</artifactId>
7+
<version>1.0-SNAPSHOT</version>
8+
<name>Interviews Project</name>
9+
10+
<!-- Java version -->
11+
<properties>
12+
<maven.compiler.source>17</maven.compiler.source>
13+
<maven.compiler.target>17</maven.compiler.target>
14+
</properties>
15+
16+
<!-- Dependencies -->
17+
<dependencies>
18+
<!-- JUnit 5 -->
19+
<dependency>
20+
<groupId>org.junit.jupiter</groupId>
21+
<artifactId>junit-jupiter</artifactId>
22+
<version>5.8.2</version>
23+
<scope>test</scope>
24+
</dependency>
25+
</dependencies>
26+
27+
<!-- Build configuration to use custom source directories -->
28+
<build>
29+
<sourceDirectory>${project.basedir}/uva</sourceDirectory>
30+
<testSourceDirectory>${project.basedir}/test</testSourceDirectory>
31+
<plugins>
32+
<!-- Compiler plugin -->
33+
<plugin>
34+
<groupId>org.apache.maven.plugins</groupId>
35+
<artifactId>maven-compiler-plugin</artifactId>
36+
<version>3.8.1</version>
37+
</plugin>
38+
39+
<!-- Surefire plugin for running tests -->
40+
<plugin>
41+
<groupId>org.apache.maven.plugins</groupId>
42+
<artifactId>maven-surefire-plugin</artifactId>
43+
<version>3.0.0-M5</version>
44+
</plugin>
45+
</plugins>
46+
</build>
47+
</project>

test/LargestPrimeDivisorTest.java

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import org.junit.jupiter.api.Test;
2+
import java.io.ByteArrayInputStream;
3+
import java.io.ByteArrayOutputStream;
4+
import java.io.PrintStream;
5+
6+
import static org.junit.jupiter.api.Assertions.assertEquals;
7+
8+
public class LargestPrimeDivisorTest {
9+
10+
private String runLargestPrimeDivisor(String input) {
11+
ByteArrayInputStream in = new ByteArrayInputStream(input.getBytes());
12+
ByteArrayOutputStream out = new ByteArrayOutputStream();
13+
14+
System.setIn(in);
15+
System.setOut(new PrintStream(out));
16+
17+
// Gọi hàm main
18+
LargestPrimeDivisor.main(new String[]{});
19+
20+
return out.toString().trim();
21+
}
22+
23+
@Test
24+
public void testSmallNumbers() {
25+
String input = "2\n6\n100\n0\n";
26+
String expectedOutput = "-1\n3\n5";
27+
assertEquals(expectedOutput, runLargestPrimeDivisor(input));
28+
}
29+
30+
@Test
31+
public void testPrimeNumber() {
32+
String input = "17\n0\n";
33+
String expectedOutput = "-1";
34+
assertEquals(expectedOutput, runLargestPrimeDivisor(input));
35+
}
36+
37+
@Test
38+
public void testLargeNumber() {
39+
String input = "13195\n0\n";
40+
String expectedOutput = "29"; // Ước số nguyên tố lớn nhất của 13195 là 29
41+
assertEquals(expectedOutput, runLargestPrimeDivisor(input));
42+
}
43+
44+
@Test
45+
public void testNegativeNumbers() {
46+
String input = "-100\n0\n";
47+
String expectedOutput = "5";
48+
assertEquals(expectedOutput, runLargestPrimeDivisor(input));
49+
}
50+
}

0 commit comments

Comments
 (0)