From eecec0f706018071f4a347260f320d52c1e69798 Mon Sep 17 00:00:00 2001 From: Taranjeet Singh Kalsi Date: Wed, 26 Oct 2022 14:08:24 +0530 Subject: [PATCH] Add test case for LetterCombinationsOfPhoneNumber (#3662) --- ...a => LetterCombinationsOfPhoneNumber.java} | 11 ++--- .../LetterCombinationsOfPhoneNumberTest.java | 46 +++++++++++++++++++ 2 files changed, 49 insertions(+), 8 deletions(-) rename src/main/java/com/thealgorithms/strings/{List_all_Possible_Words_From_Phone_Digits.java => LetterCombinationsOfPhoneNumber.java} (87%) create mode 100644 src/test/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumberTest.java diff --git a/src/main/java/com/thealgorithms/strings/List_all_Possible_Words_From_Phone_Digits.java b/src/main/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumber.java similarity index 87% rename from src/main/java/com/thealgorithms/strings/List_all_Possible_Words_From_Phone_Digits.java rename to src/main/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumber.java index 7cb3b4aac..59ba954ef 100644 --- a/src/main/java/com/thealgorithms/strings/List_all_Possible_Words_From_Phone_Digits.java +++ b/src/main/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumber.java @@ -2,16 +2,11 @@ package com.thealgorithms.strings; import java.util.*; -public class List_all_Possible_Words_From_Phone_Digits { +public class LetterCombinationsOfPhoneNumber { static Character[][] numberToCharMap; - private static List printWords( - int[] numbers, - int len, - int numIndex, - String s - ) { + protected static List printWords(int[] numbers, int len, int numIndex, String s) { if (len == numIndex) { return new ArrayList<>(Collections.singleton(s)); } @@ -33,7 +28,7 @@ public class List_all_Possible_Words_From_Phone_Digits { stringList.stream().forEach(System.out::println); } - private static void generateNumberToCharMap() { + protected static void generateNumberToCharMap() { numberToCharMap = new Character[10][5]; numberToCharMap[0] = new Character[] { '\0' }; numberToCharMap[1] = new Character[] { '\0' }; diff --git a/src/test/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumberTest.java b/src/test/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumberTest.java new file mode 100644 index 000000000..08d94250c --- /dev/null +++ b/src/test/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumberTest.java @@ -0,0 +1,46 @@ +package com.thealgorithms.strings; + +import java.util.*; +import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; + +public class LetterCombinationsOfPhoneNumberTest { + + @Test + public void letterCombinationsOfPhoneNumber() { + LetterCombinationsOfPhoneNumber ob = new LetterCombinationsOfPhoneNumber(); + ob.generateNumberToCharMap(); + + // ** Test 1 ** + // Input: digits = "" + // Output: [] + int[] numbers1 = {}; + List output1 = Arrays.asList(""); + assertTrue(ob.printWords(numbers1, numbers1.length, 0, "").equals(output1)); + + // ** Test 2 ** + // Input: digits = "2" + // Output: ["a","b","c"] + int[] numbers2 = { 2 }; + List output2 = Arrays.asList("a", "b", "c"); + assertTrue(ob.printWords(numbers2, numbers2.length, 0, "").equals(output2)); + + // ** Test 3 ** + // Input: digits = "23" + // Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"] + int[] numbers3 = { 2, 3 }; + List output3 = Arrays.asList("ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"); + assertTrue(ob.printWords(numbers3, numbers3.length, 0, "").equals(output3)); + + // ** Test 4 ** + // Input: digits = "234" + // Output: ["adg", "adh", "adi", "aeg", "aeh", "aei", "afg", "afh", "afi", + // "bdg", "bdh", "bdi", "beg", "beh", "bei", "bfg", "bfh", "bfi", "cdg", "cdh", + // "cdi", "ceg", "ceh", "cei", "cfg", "cfh", "cfi"] + int[] numbers4 = { 2, 3, 4 }; + List output4 = Arrays.asList("adg", "adh", "adi", "aeg", "aeh", "aei", "afg", "afh", "afi", "bdg", + "bdh", "bdi", "beg", "beh", "bei", "bfg", "bfh", "bfi", "cdg", "cdh", "cdi", "ceg", "ceh", "cei", "cfg", + "cfh", "cfi"); + assertTrue(ob.printWords(numbers4, numbers4.length, 0, "").equals(output4)); + } +}