From 2016fb13483be5142cbf1ff986743f2a9938d15a Mon Sep 17 00:00:00 2001 From: aldotele Date: Sat, 19 Mar 2022 11:14:42 +0100 Subject: [PATCH 1/2] [FIX+TEST] handle errors, adds test --- .../thealgorithms/strings/Alphabetical.java | 3 ++ .../strings/AlphabeticalTest.java | 35 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/test/java/com/thealgorithms/strings/AlphabeticalTest.java diff --git a/src/main/java/com/thealgorithms/strings/Alphabetical.java b/src/main/java/com/thealgorithms/strings/Alphabetical.java index fde17c883917..d1c82a95589c 100644 --- a/src/main/java/com/thealgorithms/strings/Alphabetical.java +++ b/src/main/java/com/thealgorithms/strings/Alphabetical.java @@ -23,6 +23,9 @@ public static void main(String[] args) { * {@code false} */ public static boolean isAlphabetical(String s) { + if (s == null || s.isEmpty()) { + throw new IllegalArgumentException("parameter cannot be null or empty."); + } s = s.toLowerCase(); for (int i = 0; i < s.length() - 1; ++i) { if (!Character.isLetter(s.charAt(i)) || !(s.charAt(i) <= s.charAt(i + 1))) { diff --git a/src/test/java/com/thealgorithms/strings/AlphabeticalTest.java b/src/test/java/com/thealgorithms/strings/AlphabeticalTest.java new file mode 100644 index 000000000000..9e49568f12fc --- /dev/null +++ b/src/test/java/com/thealgorithms/strings/AlphabeticalTest.java @@ -0,0 +1,35 @@ +package com.thealgorithms.strings; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + + +public class AlphabeticalTest { + @Test + public void isAlphabetical() { + // expected to be true + String input1 = "abcdefghijklmno"; + String input2 = "abcdxxxyzzzz"; + String input3 = "fpw"; + + // expected to be false + String input4 = "123a"; + String input5 = "abcABC"; + String input6 = "abcdefghikjlmno"; + + assertTrue(Alphabetical.isAlphabetical(input1)); + assertTrue(Alphabetical.isAlphabetical(input2)); + assertTrue(Alphabetical.isAlphabetical(input3)); + + assertFalse(Alphabetical.isAlphabetical(input4)); + assertFalse(Alphabetical.isAlphabetical(input5)); + assertFalse(Alphabetical.isAlphabetical(input6)); + + Throwable exc1 = assertThrows(IllegalArgumentException.class, () -> Alphabetical.isAlphabetical("")); + Throwable exc2 = assertThrows(IllegalArgumentException.class, () -> Alphabetical.isAlphabetical(null)); + assertEquals("parameter cannot be null or empty.", exc1.getMessage()); + assertEquals("parameter cannot be null or empty.", exc2.getMessage()); + } + +} From 351daf3a0d6ce53609502c65a5affcd03ea49c72 Mon Sep 17 00:00:00 2001 From: aldotele Date: Sat, 19 Mar 2022 12:00:02 +0100 Subject: [PATCH 2/2] [FIX] removes error handling for NPE --- src/main/java/com/thealgorithms/strings/Alphabetical.java | 3 --- .../java/com/thealgorithms/strings/AlphabeticalTest.java | 5 ----- 2 files changed, 8 deletions(-) diff --git a/src/main/java/com/thealgorithms/strings/Alphabetical.java b/src/main/java/com/thealgorithms/strings/Alphabetical.java index d1c82a95589c..fde17c883917 100644 --- a/src/main/java/com/thealgorithms/strings/Alphabetical.java +++ b/src/main/java/com/thealgorithms/strings/Alphabetical.java @@ -23,9 +23,6 @@ public static void main(String[] args) { * {@code false} */ public static boolean isAlphabetical(String s) { - if (s == null || s.isEmpty()) { - throw new IllegalArgumentException("parameter cannot be null or empty."); - } s = s.toLowerCase(); for (int i = 0; i < s.length() - 1; ++i) { if (!Character.isLetter(s.charAt(i)) || !(s.charAt(i) <= s.charAt(i + 1))) { diff --git a/src/test/java/com/thealgorithms/strings/AlphabeticalTest.java b/src/test/java/com/thealgorithms/strings/AlphabeticalTest.java index 9e49568f12fc..a7316b83f65b 100644 --- a/src/test/java/com/thealgorithms/strings/AlphabeticalTest.java +++ b/src/test/java/com/thealgorithms/strings/AlphabeticalTest.java @@ -25,11 +25,6 @@ public void isAlphabetical() { assertFalse(Alphabetical.isAlphabetical(input4)); assertFalse(Alphabetical.isAlphabetical(input5)); assertFalse(Alphabetical.isAlphabetical(input6)); - - Throwable exc1 = assertThrows(IllegalArgumentException.class, () -> Alphabetical.isAlphabetical("")); - Throwable exc2 = assertThrows(IllegalArgumentException.class, () -> Alphabetical.isAlphabetical(null)); - assertEquals("parameter cannot be null or empty.", exc1.getMessage()); - assertEquals("parameter cannot be null or empty.", exc2.getMessage()); } } 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