mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-12-19 07:00:35 +08:00
refactor: Enhance docs, code, add tests in KrishnaMurthyNumber (#6742)
* refactor: Enhance docs, code, add tests in `KrishnaMurthyNumber` * Lint
This commit is contained in:
@@ -6,57 +6,115 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* Unit tests for the KrishnamurthyNumber class.
|
||||
* Unit tests for the {@link KrishnamurthyNumber} class.
|
||||
*/
|
||||
public class KrishnamurthyNumberTest {
|
||||
class KrishnamurthyNumberTest {
|
||||
|
||||
/**
|
||||
* Test the isKrishnamurthy method with a known Krishnamurthy number.
|
||||
* Test with known Krishnamurthy number 145.
|
||||
* 1! + 4! + 5! = 1 + 24 + 120 = 145
|
||||
*/
|
||||
@Test
|
||||
public void testIsKrishnamurthyTrue() {
|
||||
void testIsKrishnamurthyWith145() {
|
||||
assertTrue(KrishnamurthyNumber.isKrishnamurthy(145));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the isKrishnamurthy method with a number that is not a Krishnamurthy number.
|
||||
* Test with a number that is not a Krishnamurthy number.
|
||||
*/
|
||||
@Test
|
||||
public void testIsKrishnamurthyFalse() {
|
||||
void testIsKrishnamurthyWithNonKrishnamurthyNumber() {
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(123));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the isKrishnamurthy method with zero.
|
||||
* Test with zero, which is not a Krishnamurthy number.
|
||||
*/
|
||||
@Test
|
||||
public void testIsKrishnamurthyZero() {
|
||||
void testIsKrishnamurthyWithZero() {
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(0));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the isKrishnamurthy method with a negative number.
|
||||
* Test with negative numbers, which cannot be Krishnamurthy numbers.
|
||||
*/
|
||||
@Test
|
||||
public void testIsKrishnamurthyNegative() {
|
||||
void testIsKrishnamurthyWithNegativeNumbers() {
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(-1));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(-145));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(-100));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the isKrishnamurthy method with a single-digit Krishnamurthy number.
|
||||
* Test with single-digit Krishnamurthy numbers.
|
||||
* 1! = 1 and 2! = 2, so both 1 and 2 are Krishnamurthy numbers.
|
||||
*/
|
||||
@Test
|
||||
public void testIsKrishnamurthySingleDigitTrue() {
|
||||
void testIsKrishnamurthyWithSingleDigitKrishnamurthyNumbers() {
|
||||
assertTrue(KrishnamurthyNumber.isKrishnamurthy(1));
|
||||
assertTrue(KrishnamurthyNumber.isKrishnamurthy(2));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the isKrishnamurthy method with a single-digit number that is not a Krishnamurthy number.
|
||||
* Test with single-digit numbers that are not Krishnamurthy numbers.
|
||||
*/
|
||||
@Test
|
||||
public void testIsKrishnamurthySingleDigitFalse() {
|
||||
void testIsKrishnamurthyWithSingleDigitNonKrishnamurthyNumbers() {
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(3));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(4));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(5));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(6));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(7));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(8));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(9));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test with the largest Krishnamurthy number: 40585.
|
||||
* 4! + 0! + 5! + 8! + 5! = 24 + 1 + 120 + 40320 + 120 = 40585
|
||||
*/
|
||||
@Test
|
||||
void testIsKrishnamurthyWithLargestKrishnamurthyNumber() {
|
||||
assertTrue(KrishnamurthyNumber.isKrishnamurthy(40585));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test with various non-Krishnamurthy numbers.
|
||||
*/
|
||||
@Test
|
||||
void testIsKrishnamurthyWithVariousNonKrishnamurthyNumbers() {
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(10));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(50));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(100));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(144));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(146));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(150));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(200));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(999));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(1000));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(40584));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(40586));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test with numbers close to known Krishnamurthy numbers.
|
||||
*/
|
||||
@Test
|
||||
void testIsKrishnamurthyWithNumbersCloseToKrishnamurthy() {
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(144));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(146));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(40584));
|
||||
assertFalse(KrishnamurthyNumber.isKrishnamurthy(40586));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test with all known Krishnamurthy numbers in base 10.
|
||||
*/
|
||||
@Test
|
||||
void testAllKnownKrishnamurthyNumbers() {
|
||||
assertTrue(KrishnamurthyNumber.isKrishnamurthy(1));
|
||||
assertTrue(KrishnamurthyNumber.isKrishnamurthy(2));
|
||||
assertTrue(KrishnamurthyNumber.isKrishnamurthy(145));
|
||||
assertTrue(KrishnamurthyNumber.isKrishnamurthy(40585));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user