From 5e44f2d2aed6df678fa3e3aca123564ab862a5d3 Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Sun, 13 Oct 2024 09:11:56 +0530 Subject: [PATCH 1/9] feat: Add `IPConverter` new algorithm with Junit tests --- .../conversions/IPConverter.java | 32 +++++++++++++++++++ .../conversions/IPConverterTest.java | 20 ++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 src/main/java/com/thealgorithms/conversions/IPConverter.java create mode 100644 src/test/java/com/thealgorithms/conversions/IPConverterTest.java diff --git a/src/main/java/com/thealgorithms/conversions/IPConverter.java b/src/main/java/com/thealgorithms/conversions/IPConverter.java new file mode 100644 index 000000000000..a8ab44dff8c7 --- /dev/null +++ b/src/main/java/com/thealgorithms/conversions/IPConverter.java @@ -0,0 +1,32 @@ +package com.thealgorithms.conversions; + +/** + * Converts an IPv4 address to its binary equivalent and vice-versa. + * IP to Binary: Converts an IPv4 address to its binary equivalent. + * Example: 127.3.4.5 -> 01111111.00000011.00000100.00000101 + * + * Binary to IP: Converts a binary equivalent to an IPv4 address. + * Example: 01111111.00000011.00000100.00000101 -> 127.3.4.5 + * + * @author Hardvan + */ +public final class IPConverter { + private IPConverter() { + } + + public static String ipToBinary(String ip) { + StringBuilder binary = new StringBuilder(); + for (String octet : ip.split("\\.")) { + binary.append(String.format("%08d", Integer.parseInt(Integer.toBinaryString(Integer.parseInt(octet))))).append("."); + } + return binary.substring(0, binary.length() - 1); + } + + public static String binaryToIP(String binary) { + StringBuilder ip = new StringBuilder(); + for (String octet : binary.split("\\.")) { + ip.append(Integer.parseInt(octet, 2)).append("."); + } + return ip.substring(0, ip.length() - 1); + } +} diff --git a/src/test/java/com/thealgorithms/conversions/IPConverterTest.java b/src/test/java/com/thealgorithms/conversions/IPConverterTest.java new file mode 100644 index 000000000000..44ff69a53e90 --- /dev/null +++ b/src/test/java/com/thealgorithms/conversions/IPConverterTest.java @@ -0,0 +1,20 @@ +package com.thealgorithms.conversions; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +public class IPConverterTest { + + @Test + public void testIpToBinary() { + assertEquals("11000000.10101000.00000001.00000001", IPConverter.ipToBinary("192.168.1.1")); + assertEquals("01111111.00000011.00000100.00000101", IPConverter.ipToBinary("127.3.4.5")); + } + + @Test + public void testBinaryToIP() { + assertEquals("192.168.1.1", IPConverter.binaryToIP("11000000.10101000.00000001.00000001")); + assertEquals("127.3.4.5", IPConverter.binaryToIP("01111111.00000011.00000100.00000101")); + } +} From 559d5f9c5f9250aa06b7600188d9f7b84e28d41e Mon Sep 17 00:00:00 2001 From: Hardvan Date: Sun, 13 Oct 2024 03:42:15 +0000 Subject: [PATCH 2/9] Update directory --- DIRECTORY.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/DIRECTORY.md b/DIRECTORY.md index 30fa2cbee199..aa79b4e02743 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -25,9 +25,11 @@ * bitmanipulation * [BinaryPalindromeCheck](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/bitmanipulation/BinaryPalindromeCheck.java) * [BitSwap](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/bitmanipulation/BitSwap.java) + * [BooleanAlgebraGates](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/bitmanipulation/BooleanAlgebraGates.java) * [ClearLeftmostSetBit](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/bitmanipulation/ClearLeftmostSetBit.java) * [CountLeadingZeros](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/bitmanipulation/CountLeadingZeros.java) * [CountSetBits](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java) + * [FindNthBit](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/bitmanipulation/FindNthBit.java) * [GrayCodeConversion](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/bitmanipulation/GrayCodeConversion.java) * [HammingDistance](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/bitmanipulation/HammingDistance.java) * [HigherLowerPowerOfTwo](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/bitmanipulation/HigherLowerPowerOfTwo.java) @@ -54,6 +56,7 @@ * [CompositeLFSR](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/ciphers/a5/CompositeLFSR.java) * [LFSR](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/ciphers/a5/LFSR.java) * [Utils](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/ciphers/a5/Utils.java) + * [ADFGVXCipher](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/ciphers/ADFGVXCipher.java) * [AES](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/ciphers/AES.java) * [AESEncryption](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/ciphers/AESEncryption.java) * [AffineCipher](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/ciphers/AffineCipher.java) @@ -89,6 +92,7 @@ * [HexToOct](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/HexToOct.java) * [IntegerToEnglish](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/IntegerToEnglish.java) * [IntegerToRoman](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/IntegerToRoman.java) + * [IPConverter](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/IPConverter.java) * [OctalToBinary](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/OctalToBinary.java) * [OctalToDecimal](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/OctalToDecimal.java) * [OctalToHexadecimal](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/OctalToHexadecimal.java) @@ -133,6 +137,7 @@ * [FordFulkerson](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/graphs/FordFulkerson.java) * [Graphs](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/graphs/Graphs.java) * [HamiltonianCycle](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/graphs/HamiltonianCycle.java) + * [JohnsonsAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/graphs/JohnsonsAlgorithm.java) * [KahnsAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/graphs/KahnsAlgorithm.java) * [Kosaraju](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/graphs/Kosaraju.java) * [Kruskal](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/graphs/Kruskal.java) @@ -340,6 +345,7 @@ * [EulersFunction](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/maths/EulersFunction.java) * [Factorial](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/maths/Factorial.java) * [FactorialRecursion](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/maths/FactorialRecursion.java) + * [FastExponentiation](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/maths/FastExponentiation.java) * [FastInverseSqrt](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/maths/FastInverseSqrt.java) * [FFT](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/maths/FFT.java) * [FFTBluestein](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/maths/FFTBluestein.java) @@ -656,9 +662,11 @@ * bitmanipulation * [BinaryPalindromeCheckTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/bitmanipulation/BinaryPalindromeCheckTest.java) * [BitSwapTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/bitmanipulation/BitSwapTest.java) + * [BooleanAlgebraGatesTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/bitmanipulation/BooleanAlgebraGatesTest.java) * [ClearLeftmostSetBitTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/bitmanipulation/ClearLeftmostSetBitTest.java) * [CountLeadingZerosTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/bitmanipulation/CountLeadingZerosTest.java) * [CountSetBitsTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/bitmanipulation/CountSetBitsTest.java) + * [FindNthBitTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/bitmanipulation/FindNthBitTest.java) * [GrayCodeConversionTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/bitmanipulation/GrayCodeConversionTest.java) * [HammingDistanceTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/bitmanipulation/HammingDistanceTest.java) * [HigherLowerPowerOfTwoTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/bitmanipulation/HigherLowerPowerOfTwoTest.java) @@ -682,6 +690,7 @@ * [A5CipherTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/a5/A5CipherTest.java) * [A5KeyStreamGeneratorTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/a5/A5KeyStreamGeneratorTest.java) * [LFSRTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/a5/LFSRTest.java) + * [ADFGVXCipherTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/ADFGVXCipherTest.java) * [AESEncryptionTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/AESEncryptionTest.java) * [AffineCipherTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/AffineCipherTest.java) * [AtbashTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/AtbashTest.java) @@ -713,6 +722,7 @@ * [HexToOctTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/HexToOctTest.java) * [IntegerToEnglishTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/IntegerToEnglishTest.java) * [IntegerToRomanTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/IntegerToRomanTest.java) + * [IPConverterTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/IPConverterTest.java) * [OctalToBinaryTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/OctalToBinaryTest.java) * [OctalToDecimalTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/OctalToDecimalTest.java) * [OctalToHexadecimalTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/OctalToHexadecimalTest.java) @@ -750,6 +760,7 @@ * [FloydWarshallTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/datastructures/graphs/FloydWarshallTest.java) * [FordFulkersonTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/datastructures/graphs/FordFulkersonTest.java) * [HamiltonianCycleTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/datastructures/graphs/HamiltonianCycleTest.java) + * [JohnsonsAlgorithmTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/datastructures/graphs/JohnsonsAlgorithmTest.java) * [KosarajuTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/datastructures/graphs/KosarajuTest.java) * [TarjansAlgorithmTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/datastructures/graphs/TarjansAlgorithmTest.java) * [WelshPowellTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/datastructures/graphs/WelshPowellTest.java) @@ -902,6 +913,7 @@ * [EulersFunctionTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/EulersFunctionTest.java) * [FactorialRecursionTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/FactorialRecursionTest.java) * [FactorialTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/FactorialTest.java) + * [FastExponentiationTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/FastExponentiationTest.java) * [FastInverseSqrtTests](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/FastInverseSqrtTests.java) * [FFTTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/FFTTest.java) * [FibonacciJavaStreamsTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/FibonacciJavaStreamsTest.java) From a5902cc5690450c446ae2cbcc409e39d8d79223c Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Sun, 13 Oct 2024 09:22:30 +0530 Subject: [PATCH 3/9] Fix --- .../com/thealgorithms/conversions/IPConverter.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/conversions/IPConverter.java b/src/main/java/com/thealgorithms/conversions/IPConverter.java index a8ab44dff8c7..c27b310dafa1 100644 --- a/src/main/java/com/thealgorithms/conversions/IPConverter.java +++ b/src/main/java/com/thealgorithms/conversions/IPConverter.java @@ -14,14 +14,24 @@ public final class IPConverter { private IPConverter() { } + /** + * Converts an IPv4 address to its binary equivalent. + * @param ip The IPv4 address to convert. + * @return The binary equivalent of the IPv4 address. + */ public static String ipToBinary(String ip) { StringBuilder binary = new StringBuilder(); for (String octet : ip.split("\\.")) { - binary.append(String.format("%08d", Integer.parseInt(Integer.toBinaryString(Integer.parseInt(octet))))).append("."); + binary.append(String.format("%8s", Integer.toBinaryString(Integer.parseInt(octet))).replace(' ', '0')).append("."); } return binary.substring(0, binary.length() - 1); } + /** + * Converts a binary equivalent to an IPv4 address. + * @param binary The binary equivalent to convert. + * @return The IPv4 address of the binary equivalent. + */ public static String binaryToIP(String binary) { StringBuilder ip = new StringBuilder(); for (String octet : binary.split("\\.")) { From bdfa5f18ef9b5b9217da3c42521f6bfde7fce0cf Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Sun, 13 Oct 2024 09:27:01 +0530 Subject: [PATCH 4/9] Fix --- .../thealgorithms/conversions/IPConverter.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/conversions/IPConverter.java b/src/main/java/com/thealgorithms/conversions/IPConverter.java index c27b310dafa1..e22a8479e712 100644 --- a/src/main/java/com/thealgorithms/conversions/IPConverter.java +++ b/src/main/java/com/thealgorithms/conversions/IPConverter.java @@ -22,11 +22,27 @@ private IPConverter() { public static String ipToBinary(String ip) { StringBuilder binary = new StringBuilder(); for (String octet : ip.split("\\.")) { - binary.append(String.format("%8s", Integer.toBinaryString(Integer.parseInt(octet))).replace(' ', '0')).append("."); + binary.append(octetToBinary(Integer.parseInt(octet))).append("."); } return binary.substring(0, binary.length() - 1); } + /** + * Converts a single octet to its 8-bit binary representation. + * @param octet The octet to convert (0-255). + * @return The 8-bit binary representation as a String. + */ + private static String octetToBinary(int octet) { + char[] binary = {'0', '0', '0', '0', '0', '0', '0', '0'}; + for (int i = 7; i >= 0; i--) { + if (octet % 2 == 1) { + binary[i] = '1'; + } + octet /= 2; + } + return new String(binary); + } + /** * Converts a binary equivalent to an IPv4 address. * @param binary The binary equivalent to convert. From 838fa44829142d2aab204bee47d4d08a0b0283d5 Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Sun, 13 Oct 2024 09:29:23 +0530 Subject: [PATCH 5/9] Fix --- .../java/com/thealgorithms/conversions/IPConverterTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/com/thealgorithms/conversions/IPConverterTest.java b/src/test/java/com/thealgorithms/conversions/IPConverterTest.java index 44ff69a53e90..5e3cfc471165 100644 --- a/src/test/java/com/thealgorithms/conversions/IPConverterTest.java +++ b/src/test/java/com/thealgorithms/conversions/IPConverterTest.java @@ -10,11 +10,13 @@ public class IPConverterTest { public void testIpToBinary() { assertEquals("11000000.10101000.00000001.00000001", IPConverter.ipToBinary("192.168.1.1")); assertEquals("01111111.00000011.00000100.00000101", IPConverter.ipToBinary("127.3.4.5")); + assertEquals("00000000.00000000.00000000.00000000", IPConverter.ipToBinary("0.0.0.0")); } @Test public void testBinaryToIP() { assertEquals("192.168.1.1", IPConverter.binaryToIP("11000000.10101000.00000001.00000001")); assertEquals("127.3.4.5", IPConverter.binaryToIP("01111111.00000011.00000100.00000101")); + assertEquals("0.0.0.0", IPConverter.binaryToIP("00000000.00000000.00000000.00000000")); } } From 5a878b4f9f5c93258d24ec5e0f1e7d31cbe28d73 Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Sun, 13 Oct 2024 09:32:52 +0530 Subject: [PATCH 6/9] Fix --- src/main/java/com/thealgorithms/conversions/IPConverter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/thealgorithms/conversions/IPConverter.java b/src/main/java/com/thealgorithms/conversions/IPConverter.java index e22a8479e712..765cb0201dd5 100644 --- a/src/main/java/com/thealgorithms/conversions/IPConverter.java +++ b/src/main/java/com/thealgorithms/conversions/IPConverter.java @@ -35,10 +35,10 @@ public static String ipToBinary(String ip) { private static String octetToBinary(int octet) { char[] binary = {'0', '0', '0', '0', '0', '0', '0', '0'}; for (int i = 7; i >= 0; i--) { - if (octet % 2 == 1) { + if ((octet & 1) == 1) { binary[i] = '1'; } - octet /= 2; + octet >>>= 1; } return new String(binary); } From 73df2f884aa93e52964470707402ec70fb23e428 Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Sun, 13 Oct 2024 09:36:23 +0530 Subject: [PATCH 7/9] Fix --- .../conversions/IPConverterTest.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/thealgorithms/conversions/IPConverterTest.java b/src/test/java/com/thealgorithms/conversions/IPConverterTest.java index 5e3cfc471165..ae4d35de0843 100644 --- a/src/test/java/com/thealgorithms/conversions/IPConverterTest.java +++ b/src/test/java/com/thealgorithms/conversions/IPConverterTest.java @@ -6,17 +6,24 @@ public class IPConverterTest { + private static final String IP_1 = "192.168.1.1"; + private static final String IP_1_BINARY = "11000000.10101000.00000001.00000001"; + private static final String IP_2 = "127.3.4.5"; + private static final String IP_2_BINARY = "01111111.00000011.00000100.00000101"; + private static final String IP_3 = "0.0.0.0"; + private static final String IP_3_BINARY = "00000000.00000000.00000000.00000000"; + @Test public void testIpToBinary() { - assertEquals("11000000.10101000.00000001.00000001", IPConverter.ipToBinary("192.168.1.1")); - assertEquals("01111111.00000011.00000100.00000101", IPConverter.ipToBinary("127.3.4.5")); - assertEquals("00000000.00000000.00000000.00000000", IPConverter.ipToBinary("0.0.0.0")); + assertEquals(IP_1_BINARY, IPConverter.ipToBinary(IP_1)); + assertEquals(IP_2_BINARY, IPConverter.ipToBinary(IP_2)); + assertEquals(IP_3_BINARY, IPConverter.ipToBinary(IP_3)); } @Test public void testBinaryToIP() { - assertEquals("192.168.1.1", IPConverter.binaryToIP("11000000.10101000.00000001.00000001")); - assertEquals("127.3.4.5", IPConverter.binaryToIP("01111111.00000011.00000100.00000101")); - assertEquals("0.0.0.0", IPConverter.binaryToIP("00000000.00000000.00000000.00000000")); + assertEquals(IP_1, IPConverter.binaryToIP(IP_1_BINARY)); + assertEquals(IP_2, IPConverter.binaryToIP(IP_2_BINARY)); + assertEquals(IP_3, IPConverter.binaryToIP(IP_3_BINARY)); } } From 5f78f9ab3990fe466c87f684623dcd919d035c0c Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Sun, 13 Oct 2024 09:56:04 +0530 Subject: [PATCH 8/9] Fix --- .../conversions/IPConverterTest.java | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/test/java/com/thealgorithms/conversions/IPConverterTest.java b/src/test/java/com/thealgorithms/conversions/IPConverterTest.java index ae4d35de0843..6e581b200b55 100644 --- a/src/test/java/com/thealgorithms/conversions/IPConverterTest.java +++ b/src/test/java/com/thealgorithms/conversions/IPConverterTest.java @@ -6,24 +6,29 @@ public class IPConverterTest { - private static final String IP_1 = "192.168.1.1"; - private static final String IP_1_BINARY = "11000000.10101000.00000001.00000001"; - private static final String IP_2 = "127.3.4.5"; - private static final String IP_2_BINARY = "01111111.00000011.00000100.00000101"; - private static final String IP_3 = "0.0.0.0"; - private static final String IP_3_BINARY = "00000000.00000000.00000000.00000000"; + private static String generateTestIP(int a, int b, int c, int d) { + return String.format("%d.%d.%d.%d", a, b, c, d); + } + + private static String generateTestBinary(int a, int b, int c, int d) { + return String.format("%8s.%8s.%8s.%8s", + Integer.toBinaryString(a), + Integer.toBinaryString(b), + Integer.toBinaryString(c), + Integer.toBinaryString(d)).replace(' ', '0'); + } @Test public void testIpToBinary() { - assertEquals(IP_1_BINARY, IPConverter.ipToBinary(IP_1)); - assertEquals(IP_2_BINARY, IPConverter.ipToBinary(IP_2)); - assertEquals(IP_3_BINARY, IPConverter.ipToBinary(IP_3)); + assertEquals(generateTestBinary(192, 168, 1, 1), IPConverter.ipToBinary(generateTestIP(192, 168, 1, 1))); + assertEquals(generateTestBinary(127, 3, 4, 5), IPConverter.ipToBinary(generateTestIP(127, 3, 4, 5))); + assertEquals(generateTestBinary(0, 0, 0, 0), IPConverter.ipToBinary(generateTestIP(0, 0, 0, 0))); } @Test public void testBinaryToIP() { - assertEquals(IP_1, IPConverter.binaryToIP(IP_1_BINARY)); - assertEquals(IP_2, IPConverter.binaryToIP(IP_2_BINARY)); - assertEquals(IP_3, IPConverter.binaryToIP(IP_3_BINARY)); + assertEquals(generateTestIP(192, 168, 1, 1), IPConverter.binaryToIP(generateTestBinary(192, 168, 1, 1))); + assertEquals(generateTestIP(127, 3, 4, 5), IPConverter.binaryToIP(generateTestBinary(127, 3, 4, 5))); + assertEquals(generateTestIP(0, 0, 0, 0), IPConverter.binaryToIP(generateTestBinary(0, 0, 0, 0))); } } From bed2d6a9b19fe316101f78d75fc6dfed24cc6ecb Mon Sep 17 00:00:00 2001 From: Hardik Pawar Date: Sun, 13 Oct 2024 09:57:30 +0530 Subject: [PATCH 9/9] Fix --- .../java/com/thealgorithms/conversions/IPConverterTest.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/test/java/com/thealgorithms/conversions/IPConverterTest.java b/src/test/java/com/thealgorithms/conversions/IPConverterTest.java index 6e581b200b55..78c226a9237b 100644 --- a/src/test/java/com/thealgorithms/conversions/IPConverterTest.java +++ b/src/test/java/com/thealgorithms/conversions/IPConverterTest.java @@ -11,11 +11,7 @@ private static String generateTestIP(int a, int b, int c, int d) { } private static String generateTestBinary(int a, int b, int c, int d) { - return String.format("%8s.%8s.%8s.%8s", - Integer.toBinaryString(a), - Integer.toBinaryString(b), - Integer.toBinaryString(c), - Integer.toBinaryString(d)).replace(' ', '0'); + return String.format("%8s.%8s.%8s.%8s", Integer.toBinaryString(a), Integer.toBinaryString(b), Integer.toBinaryString(c), Integer.toBinaryString(d)).replace(' ', '0'); } @Test