Content-Length: 6942 | pFad | http://github.com/rampatra/Algorithms-and-Data-Structures-in-Java/pull/30.patch
thub.com
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;
--- a PPN by Garber Painting Akron. With Image Size Reduction included!Fetched URL: http://github.com/rampatra/Algorithms-and-Data-Structures-in-Java/pull/30.patch
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy