From 86d52816cb2542902e2f11dfdec98eff0574865d Mon Sep 17 00:00:00 2001 From: DuongBaNhat Date: Mon, 12 Sep 2022 15:56:54 +0700 Subject: [PATCH 1/4] Add file test --- .../recursion/RecursiveDigitSumTest.java | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSumTest.java diff --git a/src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSumTest.java b/src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSumTest.java new file mode 100644 index 00000000..cc8f9954 --- /dev/null +++ b/src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSumTest.java @@ -0,0 +1,127 @@ +package recursion; + +import static org.junit.jupiter.api.Assertions.assertThrows; + +import javax.annotation.processing.Generated; + +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +@Generated(value = "org.junit-tools-1.1.0") +public class RecursiveDigitSumTest { + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + System.out.println("BeforeClass"); + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + System.out.println("AfterClass"); + } + + @Test + public void testSuperDigitWithNull() throws Exception { + // TC1 + int k = 0; + String n = null; + String expected = "by input exception [" + n + "]"; + Exception result = assertThrows(Exception.class, + () -> RecursiveDigitSum.superDigit(n, k)); + + Assert.assertEquals(expected, result.getMessage()); + } + + @Test + public void testSuperDigitWithEmpty() throws Exception { + // TC2 + int k = 1; + String n = ""; + int expected = 0; + int result = RecursiveDigitSum.superDigit(n, k); + + Assert.assertEquals(expected, result); + } + + @Test + public void testSuperDigitWithNegative1() throws Exception { + // TC3 + int k = -1; + String n = "1"; + String expected = "by input exception [" + k + "]"; + Exception result = assertThrows(Exception.class, + () -> RecursiveDigitSum.superDigit(n, k)); + + Assert.assertEquals(expected, result.getMessage()); + } + + @Test + public void testSuperDigit1() throws Exception { + // TC4 + int k = 0; + String n = "1"; + int expected = 1; + int result = RecursiveDigitSum.superDigit(n, k); + + Assert.assertEquals(expected, result); + } + + @Test + public void testSuperDigitMax1() throws Exception { + // TC5 + int k = 999999999; + String n = "1"; + int expected = 9; + int result = RecursiveDigitSum.superDigit(n, k); + + Assert.assertEquals(expected, result); + } + + @Test + public void testSuperDigit3() throws Exception { + // TC6 + int k = 0; + String n = "12"; + int expected = 3; + int result = RecursiveDigitSum.superDigit(n, k); + + Assert.assertEquals(expected, result); + } + + @Test + public void testSuperDigit4() throws Exception { + // TC7 + int k = 1; + String n = "12"; + int expected = 3; + int result = RecursiveDigitSum.superDigit(n, k); + + Assert.assertEquals(expected, result); + } + + @Test + public void testSuperDigitMax2() throws Exception { + // TC8 + int k = 1; + String n = "999999999"; + int expected = 9; + int result = RecursiveDigitSum.superDigit(n, k); + + Assert.assertEquals(expected, result); + } + + @Test + public void testSuperDigitWithNegative2() throws Exception { + // TC9 + int k = 1; + String n = "-a"; + String expected = "by input exception [" + n + "]"; + Exception result = assertThrows(Exception.class, + () -> RecursiveDigitSum.superDigit(n, k)); + + Assert.assertEquals(expected, result.getMessage()); + } + +} \ No newline at end of file From b12a25d0fe7fe456fd5f2291fe49017699150eef Mon Sep 17 00:00:00 2001 From: DuongBaNhat Date: Mon, 12 Sep 2022 16:06:37 +0700 Subject: [PATCH 2/4] Check n == null --- .../com/hackerrank/algorithms/recursion/RecursiveDigitSum.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSum.java b/src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSum.java index cd9cae21..397f5535 100644 --- a/src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSum.java +++ b/src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSum.java @@ -22,6 +22,7 @@ public class RecursiveDigitSum { * @return recursive sum of the digits */ private static int superDigit(String n, int k) { + if(n == null) throw new Exception("by input exception [" + n + "]"); if (n.length() == 1 && k == 0) { return Integer.parseInt(n); } From 1d8b3ae01f49ee557e98d79c5cc628a53f5333ef Mon Sep 17 00:00:00 2001 From: DuongBaNhat Date: Mon, 12 Sep 2022 16:11:31 +0700 Subject: [PATCH 3/4] Check parseInt --- .../hackerrank/algorithms/recursion/RecursiveDigitSum.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSum.java b/src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSum.java index 397f5535..811f2dbc 100644 --- a/src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSum.java +++ b/src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSum.java @@ -24,7 +24,11 @@ public class RecursiveDigitSum { private static int superDigit(String n, int k) { if(n == null) throw new Exception("by input exception [" + n + "]"); if (n.length() == 1 && k == 0) { - return Integer.parseInt(n); + try { + return Integer.parseInt(n); + }catch (Exception e) { + throw new Exception("by input exception [" + n + "]"); + } } Long sum = 0L; From 91ca25be0fc732d00b080550416d81b74c2e36d4 Mon Sep 17 00:00:00 2001 From: DuongBaNhat Date: Mon, 12 Sep 2022 16:14:42 +0700 Subject: [PATCH 4/4] Check parseLong --- .../hackerrank/algorithms/recursion/RecursiveDigitSum.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSum.java b/src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSum.java index 811f2dbc..2d2da955 100644 --- a/src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSum.java +++ b/src/main/java/com/hackerrank/algorithms/recursion/RecursiveDigitSum.java @@ -34,7 +34,11 @@ private static int superDigit(String n, int k) { Long sum = 0L; char[] num = n.toCharArray(); for (int i = 0; i < num.length; i++) { - sum += Long.parseLong(String.valueOf(num[i])); + try { + sum += Long.parseLong(String.valueOf(num[i])); + } catch(Exception ex) { + throw new Exception("by input exception [" + n + "]"); + } } if (k != 0) sum *= k; pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy