diff --git a/.classpath b/.classpath new file mode 100644 index 000000000000..b0b94ea1fda6 --- /dev/null +++ b/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.gitignore b/.gitignore index b1dfd9119628..5eacf654118f 100644 --- a/.gitignore +++ b/.gitignore @@ -33,4 +33,5 @@ local.properties .DS_Store gradle.properties -.vscode \ No newline at end of file +.vscode +/codemr/ diff --git a/.project b/.project new file mode 100644 index 000000000000..8f5875de7687 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + java-algorithms + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/lib/hamcrest-all-1.3.jar b/lib/hamcrest-all-1.3.jar new file mode 100644 index 000000000000..6f62ba00c7be Binary files /dev/null and b/lib/hamcrest-all-1.3.jar differ diff --git a/lib/junit-4.12.jar b/lib/junit-4.12.jar new file mode 100644 index 000000000000..3a7fc266c3e3 Binary files /dev/null and b/lib/junit-4.12.jar differ diff --git a/lib/junit-dataprovider-1.13.1.jar b/lib/junit-dataprovider-1.13.1.jar new file mode 100644 index 000000000000..34d08fd5a006 Binary files /dev/null and b/lib/junit-dataprovider-1.13.1.jar differ diff --git a/Conversions/AnyBaseToAnyBase.java b/src/main/java/Conversions/AnyBaseToAnyBase.java similarity index 100% rename from Conversions/AnyBaseToAnyBase.java rename to src/main/java/Conversions/AnyBaseToAnyBase.java diff --git a/Conversions/AnyBaseToDecimal.java b/src/main/java/Conversions/AnyBaseToDecimal.java similarity index 100% rename from Conversions/AnyBaseToDecimal.java rename to src/main/java/Conversions/AnyBaseToDecimal.java diff --git a/Conversions/AnytoAny.java b/src/main/java/Conversions/AnytoAny.java similarity index 100% rename from Conversions/AnytoAny.java rename to src/main/java/Conversions/AnytoAny.java diff --git a/Conversions/BinaryToDecimal.java b/src/main/java/Conversions/BinaryToDecimal.java similarity index 100% rename from Conversions/BinaryToDecimal.java rename to src/main/java/Conversions/BinaryToDecimal.java diff --git a/Conversions/BinaryToHexadecimal.java b/src/main/java/Conversions/BinaryToHexadecimal.java similarity index 100% rename from Conversions/BinaryToHexadecimal.java rename to src/main/java/Conversions/BinaryToHexadecimal.java diff --git a/Conversions/BinaryToOctal.java b/src/main/java/Conversions/BinaryToOctal.java similarity index 100% rename from Conversions/BinaryToOctal.java rename to src/main/java/Conversions/BinaryToOctal.java diff --git a/Conversions/DecimalToAnyBase.java b/src/main/java/Conversions/DecimalToAnyBase.java similarity index 100% rename from Conversions/DecimalToAnyBase.java rename to src/main/java/Conversions/DecimalToAnyBase.java diff --git a/Conversions/DecimalToBinary.java b/src/main/java/Conversions/DecimalToBinary.java similarity index 100% rename from Conversions/DecimalToBinary.java rename to src/main/java/Conversions/DecimalToBinary.java diff --git a/Conversions/DecimalToHexaDecimal.java b/src/main/java/Conversions/DecimalToHexaDecimal.java similarity index 100% rename from Conversions/DecimalToHexaDecimal.java rename to src/main/java/Conversions/DecimalToHexaDecimal.java diff --git a/Conversions/DecimalToOctal.java b/src/main/java/Conversions/DecimalToOctal.java similarity index 100% rename from Conversions/DecimalToOctal.java rename to src/main/java/Conversions/DecimalToOctal.java diff --git a/Conversions/HexToOct.java b/src/main/java/Conversions/HexToOct.java similarity index 100% rename from Conversions/HexToOct.java rename to src/main/java/Conversions/HexToOct.java diff --git a/Conversions/HexaDecimalToBinary.java b/src/main/java/Conversions/HexaDecimalToBinary.java similarity index 100% rename from Conversions/HexaDecimalToBinary.java rename to src/main/java/Conversions/HexaDecimalToBinary.java diff --git a/Conversions/HexaDecimalToDecimal.java b/src/main/java/Conversions/HexaDecimalToDecimal.java similarity index 100% rename from Conversions/HexaDecimalToDecimal.java rename to src/main/java/Conversions/HexaDecimalToDecimal.java diff --git a/Conversions/OctalToDecimal.java b/src/main/java/Conversions/OctalToDecimal.java similarity index 81% rename from Conversions/OctalToDecimal.java rename to src/main/java/Conversions/OctalToDecimal.java index 3b8c996bc200..120e7c37d8c4 100644 --- a/Conversions/OctalToDecimal.java +++ b/src/main/java/Conversions/OctalToDecimal.java @@ -17,6 +17,7 @@ public class OctalToDecimal { * Command line arguments */ public static void main(String args[]) { + Scanner sc = new Scanner(System.in); System.out.print("Octal Input: "); String inputOctal = sc.nextLine(); @@ -24,6 +25,7 @@ public static void main(String args[]) { if (result != -1) System.out.println("Result convertOctalToDecimal : " + result); sc.close(); + } /** @@ -35,15 +37,9 @@ public static void main(String args[]) { */ public static int convertOctalToDecimal(String inputOctal) { - try { + // Actual conversion of Octal to Decimal: Integer outputDecimal = Integer.parseInt(inputOctal, 8); return outputDecimal; - } catch (NumberFormatException ne) { - // Printing a warning message if the input is not a valid octal - // number: - System.out.println("Invalid Input, Expecting octal number 0-7"); - return -1; - } } } \ No newline at end of file diff --git a/Conversions/OctalToHexadecimal.java b/src/main/java/Conversions/OctalToHexadecimal.java similarity index 100% rename from Conversions/OctalToHexadecimal.java rename to src/main/java/Conversions/OctalToHexadecimal.java diff --git a/Conversions/RomanToInteger.java b/src/main/java/Conversions/RomanToInteger.java similarity index 100% rename from Conversions/RomanToInteger.java rename to src/main/java/Conversions/RomanToInteger.java diff --git a/DataStructures/Bags/Bag.java b/src/main/java/DataStructures/Bags/Bag.java similarity index 100% rename from DataStructures/Bags/Bag.java rename to src/main/java/DataStructures/Bags/Bag.java diff --git a/DataStructures/Buffers/CircularBuffer.java b/src/main/java/DataStructures/Buffers/CircularBuffer.java similarity index 100% rename from DataStructures/Buffers/CircularBuffer.java rename to src/main/java/DataStructures/Buffers/CircularBuffer.java diff --git a/DataStructures/Graphs/BellmanFord.java b/src/main/java/DataStructures/Graphs/BellmanFord.java similarity index 99% rename from DataStructures/Graphs/BellmanFord.java rename to src/main/java/DataStructures/Graphs/BellmanFord.java index 717cb2803031..61785acec06d 100644 --- a/DataStructures/Graphs/BellmanFord.java +++ b/src/main/java/DataStructures/Graphs/BellmanFord.java @@ -1,3 +1,5 @@ +package DataStructures.Graphs; + import java.util.*; class BellmanFord /*Implementation of Bellman ford to detect negative cycles. Graph accepts inputs in form of edges which have diff --git a/DataStructures/Graphs/ConnectedComponent.java b/src/main/java/DataStructures/Graphs/ConnectedComponent.java similarity index 96% rename from DataStructures/Graphs/ConnectedComponent.java rename to src/main/java/DataStructures/Graphs/ConnectedComponent.java index 7029a8d811f2..cdec722289f9 100644 --- a/DataStructures/Graphs/ConnectedComponent.java +++ b/src/main/java/DataStructures/Graphs/ConnectedComponent.java @@ -1,5 +1,7 @@ package DataStructures.Graphs; + + import java.util.ArrayList; import java.util.HashSet; import java.util.Set; diff --git a/DataStructures/Graphs/Cycles.java b/src/main/java/DataStructures/Graphs/Cycles.java similarity index 100% rename from DataStructures/Graphs/Cycles.java rename to src/main/java/DataStructures/Graphs/Cycles.java diff --git a/DataStructures/Graphs/FloydWarshall.java b/src/main/java/DataStructures/Graphs/FloydWarshall.java similarity index 100% rename from DataStructures/Graphs/FloydWarshall.java rename to src/main/java/DataStructures/Graphs/FloydWarshall.java diff --git a/DataStructures/Graphs/Graphs.java b/src/main/java/DataStructures/Graphs/Graphs.java similarity index 100% rename from DataStructures/Graphs/Graphs.java rename to src/main/java/DataStructures/Graphs/Graphs.java diff --git a/DataStructures/Graphs/MatrixGraphs.java b/src/main/java/DataStructures/Graphs/MatrixGraphs.java similarity index 100% rename from DataStructures/Graphs/MatrixGraphs.java rename to src/main/java/DataStructures/Graphs/MatrixGraphs.java diff --git a/DataStructures/Graphs/PrimMST.java b/src/main/java/DataStructures/Graphs/PrimMST.java similarity index 100% rename from DataStructures/Graphs/PrimMST.java rename to src/main/java/DataStructures/Graphs/PrimMST.java diff --git a/DataStructures/HashMap/Hashing/HashMap.java b/src/main/java/DataStructures/HashMap/Hashing/HashMap.java similarity index 100% rename from DataStructures/HashMap/Hashing/HashMap.java rename to src/main/java/DataStructures/HashMap/Hashing/HashMap.java diff --git a/DataStructures/HashMap/Hashing/LinkedList.java b/src/main/java/DataStructures/HashMap/Hashing/LinkedList.java similarity index 100% rename from DataStructures/HashMap/Hashing/LinkedList.java rename to src/main/java/DataStructures/HashMap/Hashing/LinkedList.java diff --git a/DataStructures/HashMap/Hashing/Main.java b/src/main/java/DataStructures/HashMap/Hashing/Main.java similarity index 100% rename from DataStructures/HashMap/Hashing/Main.java rename to src/main/java/DataStructures/HashMap/Hashing/Main.java diff --git a/DataStructures/HashMap/Hashing/Node.java b/src/main/java/DataStructures/HashMap/Hashing/Node.java similarity index 100% rename from DataStructures/HashMap/Hashing/Node.java rename to src/main/java/DataStructures/HashMap/Hashing/Node.java diff --git a/DataStructures/Heaps/EmptyHeapException.java b/src/main/java/DataStructures/Heaps/EmptyHeapException.java similarity index 100% rename from DataStructures/Heaps/EmptyHeapException.java rename to src/main/java/DataStructures/Heaps/EmptyHeapException.java diff --git a/DataStructures/Heaps/Heap.java b/src/main/java/DataStructures/Heaps/Heap.java similarity index 100% rename from DataStructures/Heaps/Heap.java rename to src/main/java/DataStructures/Heaps/Heap.java diff --git a/DataStructures/Heaps/HeapElement.java b/src/main/java/DataStructures/Heaps/HeapElement.java similarity index 100% rename from DataStructures/Heaps/HeapElement.java rename to src/main/java/DataStructures/Heaps/HeapElement.java diff --git a/DataStructures/Heaps/MaxHeap.java b/src/main/java/DataStructures/Heaps/MaxHeap.java similarity index 100% rename from DataStructures/Heaps/MaxHeap.java rename to src/main/java/DataStructures/Heaps/MaxHeap.java diff --git a/DataStructures/Heaps/MinHeap.java b/src/main/java/DataStructures/Heaps/MinHeap.java similarity index 100% rename from DataStructures/Heaps/MinHeap.java rename to src/main/java/DataStructures/Heaps/MinHeap.java diff --git a/DataStructures/Heaps/MinPriorityQueue.java b/src/main/java/DataStructures/Heaps/MinPriorityQueue.java similarity index 100% rename from DataStructures/Heaps/MinPriorityQueue.java rename to src/main/java/DataStructures/Heaps/MinPriorityQueue.java diff --git a/DataStructures/Lists/CircleLinkedList.java b/src/main/java/DataStructures/Lists/CircleLinkedList.java similarity index 100% rename from DataStructures/Lists/CircleLinkedList.java rename to src/main/java/DataStructures/Lists/CircleLinkedList.java diff --git a/DataStructures/Lists/CursorLinkedList.java b/src/main/java/DataStructures/Lists/CursorLinkedList.java similarity index 100% rename from DataStructures/Lists/CursorLinkedList.java rename to src/main/java/DataStructures/Lists/CursorLinkedList.java diff --git a/DataStructures/Lists/DoublyLinkedList.java b/src/main/java/DataStructures/Lists/DoublyLinkedList.java similarity index 100% rename from DataStructures/Lists/DoublyLinkedList.java rename to src/main/java/DataStructures/Lists/DoublyLinkedList.java diff --git a/DataStructures/Lists/Merge_K_SortedLinkedlist.java b/src/main/java/DataStructures/Lists/Merge_K_SortedLinkedlist.java similarity index 100% rename from DataStructures/Lists/Merge_K_SortedLinkedlist.java rename to src/main/java/DataStructures/Lists/Merge_K_SortedLinkedlist.java diff --git a/DataStructures/Lists/SinglyLinkedList.java b/src/main/java/DataStructures/Lists/SinglyLinkedList.java similarity index 100% rename from DataStructures/Lists/SinglyLinkedList.java rename to src/main/java/DataStructures/Lists/SinglyLinkedList.java diff --git a/DataStructures/Matrix/Matrix.java b/src/main/java/DataStructures/Matrix/Matrix.java similarity index 100% rename from DataStructures/Matrix/Matrix.java rename to src/main/java/DataStructures/Matrix/Matrix.java diff --git a/DataStructures/Queues/GenericArrayListQueue.java b/src/main/java/DataStructures/Queues/GenericArrayListQueue.java similarity index 100% rename from DataStructures/Queues/GenericArrayListQueue.java rename to src/main/java/DataStructures/Queues/GenericArrayListQueue.java diff --git a/DataStructures/Queues/PriorityQueues.java b/src/main/java/DataStructures/Queues/PriorityQueues.java similarity index 100% rename from DataStructures/Queues/PriorityQueues.java rename to src/main/java/DataStructures/Queues/PriorityQueues.java diff --git a/DataStructures/Queues/Queues.java b/src/main/java/DataStructures/Queues/Queues.java similarity index 100% rename from DataStructures/Queues/Queues.java rename to src/main/java/DataStructures/Queues/Queues.java diff --git a/DataStructures/Stacks/BalancedBrackets.java b/src/main/java/DataStructures/Stacks/BalancedBrackets.java similarity index 98% rename from DataStructures/Stacks/BalancedBrackets.java rename to src/main/java/DataStructures/Stacks/BalancedBrackets.java index 1a8673d6fbf3..886151a7364c 100644 --- a/DataStructures/Stacks/BalancedBrackets.java +++ b/src/main/java/DataStructures/Stacks/BalancedBrackets.java @@ -1,4 +1,4 @@ -package data_structures.Stacks; +package DataStructures.Stacks; import java.util.Scanner; import java.util.Stack; diff --git a/DataStructures/Stacks/NodeStack.java b/src/main/java/DataStructures/Stacks/NodeStack.java similarity index 99% rename from DataStructures/Stacks/NodeStack.java rename to src/main/java/DataStructures/Stacks/NodeStack.java index c598bb8fcba1..51f19d1d0b58 100644 --- a/DataStructures/Stacks/NodeStack.java +++ b/src/main/java/DataStructures/Stacks/NodeStack.java @@ -1,3 +1,5 @@ +package DataStructures.Stacks; + /** * Implementation of a stack using nodes. * Unlimited size, no arraylist. diff --git a/DataStructures/Stacks/StackArray.java b/src/main/java/DataStructures/Stacks/StackArray.java similarity index 99% rename from DataStructures/Stacks/StackArray.java rename to src/main/java/DataStructures/Stacks/StackArray.java index 6e580918fabc..20e3eb9bf98d 100644 --- a/DataStructures/Stacks/StackArray.java +++ b/src/main/java/DataStructures/Stacks/StackArray.java @@ -1,3 +1,5 @@ +package DataStructures.Stacks; + /** * This class implements a Stack using a regular array. *

diff --git a/DataStructures/Stacks/StackArrayList.java b/src/main/java/DataStructures/Stacks/StackArrayList.java similarity index 98% rename from DataStructures/Stacks/StackArrayList.java rename to src/main/java/DataStructures/Stacks/StackArrayList.java index afc804440403..666b9ea99055 100644 --- a/DataStructures/Stacks/StackArrayList.java +++ b/src/main/java/DataStructures/Stacks/StackArrayList.java @@ -1,3 +1,5 @@ +package DataStructures.Stacks; + import java.util.ArrayList; /** diff --git a/DataStructures/Stacks/StackOfLinkedList.java b/src/main/java/DataStructures/Stacks/StackOfLinkedList.java similarity index 99% rename from DataStructures/Stacks/StackOfLinkedList.java rename to src/main/java/DataStructures/Stacks/StackOfLinkedList.java index 093442112df5..e884f73ad37d 100644 --- a/DataStructures/Stacks/StackOfLinkedList.java +++ b/src/main/java/DataStructures/Stacks/StackOfLinkedList.java @@ -1,5 +1,7 @@ package DataStructures.Stacks; + + /** * @author Varun Upadhyay (https://github.com/varunu28) */ diff --git a/DataStructures/Trees/AVLTree.java b/src/main/java/DataStructures/Trees/AVLTree.java similarity index 100% rename from DataStructures/Trees/AVLTree.java rename to src/main/java/DataStructures/Trees/AVLTree.java diff --git a/DataStructures/Trees/BinaryTree.java b/src/main/java/DataStructures/Trees/BinaryTree.java similarity index 100% rename from DataStructures/Trees/BinaryTree.java rename to src/main/java/DataStructures/Trees/BinaryTree.java diff --git a/DataStructures/Trees/GenericTree.Java b/src/main/java/DataStructures/Trees/GenericTree.Java similarity index 100% rename from DataStructures/Trees/GenericTree.Java rename to src/main/java/DataStructures/Trees/GenericTree.Java diff --git a/DataStructures/Trees/LevelOrderTraversal.java b/src/main/java/DataStructures/Trees/LevelOrderTraversal.java similarity index 100% rename from DataStructures/Trees/LevelOrderTraversal.java rename to src/main/java/DataStructures/Trees/LevelOrderTraversal.java diff --git a/DataStructures/Trees/LevelOrderTraversalQueue.java b/src/main/java/DataStructures/Trees/LevelOrderTraversalQueue.java similarity index 100% rename from DataStructures/Trees/LevelOrderTraversalQueue.java rename to src/main/java/DataStructures/Trees/LevelOrderTraversalQueue.java diff --git a/DataStructures/Trees/PrintTopViewofTree.java b/src/main/java/DataStructures/Trees/PrintTopViewofTree.java similarity index 100% rename from DataStructures/Trees/PrintTopViewofTree.java rename to src/main/java/DataStructures/Trees/PrintTopViewofTree.java diff --git a/DataStructures/Trees/RedBlackBST.java b/src/main/java/DataStructures/Trees/RedBlackBST.java similarity index 100% rename from DataStructures/Trees/RedBlackBST.java rename to src/main/java/DataStructures/Trees/RedBlackBST.java diff --git a/DataStructures/Trees/TreeTraversal.java b/src/main/java/DataStructures/Trees/TreeTraversal.java similarity index 100% rename from DataStructures/Trees/TreeTraversal.java rename to src/main/java/DataStructures/Trees/TreeTraversal.java diff --git a/DataStructures/Trees/TrieImp.java b/src/main/java/DataStructures/Trees/TrieImp.java similarity index 100% rename from DataStructures/Trees/TrieImp.java rename to src/main/java/DataStructures/Trees/TrieImp.java diff --git a/DataStructures/Trees/ValidBSTOrNot.java b/src/main/java/DataStructures/Trees/ValidBSTOrNot.java similarity index 100% rename from DataStructures/Trees/ValidBSTOrNot.java rename to src/main/java/DataStructures/Trees/ValidBSTOrNot.java diff --git a/DynamicProgramming/CoinChange.java b/src/main/java/DynamicProgramming/CoinChange.java similarity index 97% rename from DynamicProgramming/CoinChange.java rename to src/main/java/DynamicProgramming/CoinChange.java index 7e4e6181ccc9..f96ab97549e1 100644 --- a/DynamicProgramming/CoinChange.java +++ b/src/main/java/DynamicProgramming/CoinChange.java @@ -8,8 +8,8 @@ public class CoinChange { // Driver Program public static void main(String[] args) { - int amount = 12; - int[] coins = {2, 4, 5}; + int amount = 3; + int[] coins = {2,5,6}; System.out.println("Number of combinations of getting change for " + amount + " is: " + change(coins, amount)); System.out.println("Minimum number of coins required for amount :" + amount + " is: " + minimumCoins(coins, amount)); diff --git a/DynamicProgramming/EditDistance.java b/src/main/java/DynamicProgramming/EditDistance.java similarity index 100% rename from DynamicProgramming/EditDistance.java rename to src/main/java/DynamicProgramming/EditDistance.java diff --git a/DynamicProgramming/EggDropping.java b/src/main/java/DynamicProgramming/EggDropping.java similarity index 100% rename from DynamicProgramming/EggDropping.java rename to src/main/java/DynamicProgramming/EggDropping.java diff --git a/DynamicProgramming/Fibonacci.java b/src/main/java/DynamicProgramming/Fibonacci.java similarity index 100% rename from DynamicProgramming/Fibonacci.java rename to src/main/java/DynamicProgramming/Fibonacci.java diff --git a/DynamicProgramming/FordFulkerson.java b/src/main/java/DynamicProgramming/FordFulkerson.java similarity index 100% rename from DynamicProgramming/FordFulkerson.java rename to src/main/java/DynamicProgramming/FordFulkerson.java diff --git a/DynamicProgramming/KadaneAlgorithm.java b/src/main/java/DynamicProgramming/KadaneAlgorithm.java similarity index 100% rename from DynamicProgramming/KadaneAlgorithm.java rename to src/main/java/DynamicProgramming/KadaneAlgorithm.java diff --git a/DynamicProgramming/Knapsack.java b/src/main/java/DynamicProgramming/Knapsack.java similarity index 93% rename from DynamicProgramming/Knapsack.java rename to src/main/java/DynamicProgramming/Knapsack.java index 025d3cd2b2e2..3b21af4d46c1 100644 --- a/DynamicProgramming/Knapsack.java +++ b/src/main/java/DynamicProgramming/Knapsack.java @@ -6,7 +6,7 @@ public class Knapsack { - private static int knapSack(int W, int wt[], int val[], int n) { + public static int knapSack(int W, int wt[], int val[], int n) { int i, w; int rv[][] = new int[n + 1][W + 1]; //rv means return value diff --git a/DynamicProgramming/LevenshteinDistance.java b/src/main/java/DynamicProgramming/LevenshteinDistance.java similarity index 96% rename from DynamicProgramming/LevenshteinDistance.java rename to src/main/java/DynamicProgramming/LevenshteinDistance.java index c4d53143f80b..efe8eb1e75f4 100644 --- a/DynamicProgramming/LevenshteinDistance.java +++ b/src/main/java/DynamicProgramming/LevenshteinDistance.java @@ -16,7 +16,7 @@ private static int minimum(int a, int b, int c) { } } - private static int calculate_distance(String a, String b) { + public static int calculate_distance(String a, String b) { int len_a = a.length() + 1; int len_b = b.length() + 1; int[][] distance_mat = new int[len_a][len_b]; diff --git a/DynamicProgramming/LongestCommonSubsequence.java b/src/main/java/DynamicProgramming/LongestCommonSubsequence.java similarity index 100% rename from DynamicProgramming/LongestCommonSubsequence.java rename to src/main/java/DynamicProgramming/LongestCommonSubsequence.java diff --git a/DynamicProgramming/LongestIncreasingSubsequence.java b/src/main/java/DynamicProgramming/LongestIncreasingSubsequence.java similarity index 83% rename from DynamicProgramming/LongestIncreasingSubsequence.java rename to src/main/java/DynamicProgramming/LongestIncreasingSubsequence.java index 2b07e040db13..e1045af112a0 100644 --- a/DynamicProgramming/LongestIncreasingSubsequence.java +++ b/src/main/java/DynamicProgramming/LongestIncreasingSubsequence.java @@ -15,11 +15,20 @@ public static void main(String[] args) { for (int i = 0; i < n; i++) { ar[i] = sc.nextInt(); } - + //int ar[] = {50, 3, 10, 7, 40, 80}; System.out.println(LIS(ar)); + + /*int[] ar = {3,10,20,0,0}; + int l = -1; + int r = 3; + int key = 11; + + System.out.println(upperBound(ar, l, r, key));*/ + + } - private static int upperBound(int[] ar, int l, int r, int key) { + public static int upperBound(int[] ar, int l, int r, int key) { while (l < r - 1) { int m = (l + r) / 2; if (ar[m] >= key) @@ -31,7 +40,7 @@ private static int upperBound(int[] ar, int l, int r, int key) { return r; } - private static int LIS(int[] array) { + public static int LIS(int[] array) { int N = array.length; if (N == 0) return 0; diff --git a/DynamicProgramming/LongestValidParentheses.java b/src/main/java/DynamicProgramming/LongestValidParentheses.java similarity index 100% rename from DynamicProgramming/LongestValidParentheses.java rename to src/main/java/DynamicProgramming/LongestValidParentheses.java diff --git a/DynamicProgramming/MatrixChainMultiplication.java b/src/main/java/DynamicProgramming/MatrixChainMultiplication.java similarity index 100% rename from DynamicProgramming/MatrixChainMultiplication.java rename to src/main/java/DynamicProgramming/MatrixChainMultiplication.java diff --git a/DynamicProgramming/RodCutting.java b/src/main/java/DynamicProgramming/RodCutting.java similarity index 100% rename from DynamicProgramming/RodCutting.java rename to src/main/java/DynamicProgramming/RodCutting.java diff --git a/MinimizingLateness/MinimizingLateness.java b/src/main/java/MinimizingLateness/MinimizingLateness.java similarity index 100% rename from MinimizingLateness/MinimizingLateness.java rename to src/main/java/MinimizingLateness/MinimizingLateness.java diff --git a/MinimizingLateness/data06_lateness.txt b/src/main/java/MinimizingLateness/data06_lateness.txt similarity index 100% rename from MinimizingLateness/data06_lateness.txt rename to src/main/java/MinimizingLateness/data06_lateness.txt diff --git a/Misc/MedianOfRunningArray.java b/src/main/java/Misc/MedianOfRunningArray.java similarity index 100% rename from Misc/MedianOfRunningArray.java rename to src/main/java/Misc/MedianOfRunningArray.java diff --git a/Misc/PalindromePrime.java b/src/main/java/Misc/PalindromePrime.java similarity index 100% rename from Misc/PalindromePrime.java rename to src/main/java/Misc/PalindromePrime.java diff --git a/Misc/heap_sort.java b/src/main/java/Misc/heap_sort.java similarity index 100% rename from Misc/heap_sort.java rename to src/main/java/Misc/heap_sort.java diff --git a/Others/Abecedarian.java b/src/main/java/Others/Abecedarian.java similarity index 100% rename from Others/Abecedarian.java rename to src/main/java/Others/Abecedarian.java diff --git a/Others/Armstrong.java b/src/main/java/Others/Armstrong.java similarity index 100% rename from Others/Armstrong.java rename to src/main/java/Others/Armstrong.java diff --git a/Others/BrianKernighanAlgorithm.java b/src/main/java/Others/BrianKernighanAlgorithm.java similarity index 100% rename from Others/BrianKernighanAlgorithm.java rename to src/main/java/Others/BrianKernighanAlgorithm.java diff --git a/Others/CRC32.java b/src/main/java/Others/CRC32.java similarity index 100% rename from Others/CRC32.java rename to src/main/java/Others/CRC32.java diff --git a/Others/CRCAlgorithm.java b/src/main/java/Others/CRCAlgorithm.java similarity index 100% rename from Others/CRCAlgorithm.java rename to src/main/java/Others/CRCAlgorithm.java diff --git a/Others/CountChar.java b/src/main/java/Others/CountChar.java similarity index 100% rename from Others/CountChar.java rename to src/main/java/Others/CountChar.java diff --git a/Others/CountWords.java b/src/main/java/Others/CountWords.java similarity index 100% rename from Others/CountWords.java rename to src/main/java/Others/CountWords.java diff --git a/Others/Dijkshtra.java b/src/main/java/Others/Dijkshtra.java similarity index 100% rename from Others/Dijkshtra.java rename to src/main/java/Others/Dijkshtra.java diff --git a/Others/Dijkstra.java b/src/main/java/Others/Dijkstra.java similarity index 100% rename from Others/Dijkstra.java rename to src/main/java/Others/Dijkstra.java diff --git a/Others/EulersFunction.java b/src/main/java/Others/EulersFunction.java similarity index 77% rename from Others/EulersFunction.java rename to src/main/java/Others/EulersFunction.java index 0f848442bc92..5fad314aef35 100644 --- a/Others/EulersFunction.java +++ b/src/main/java/Others/EulersFunction.java @@ -11,7 +11,9 @@ public static int getEuler(int n) { int result = n; for (int i = 2; i * i <= n; i++) { if (n % i == 0) { - while (n % i == 0) n /= i; + while (n % i == 0) { + n /= i; + } result -= result / i; } } @@ -20,8 +22,8 @@ public static int getEuler(int n) { } public static void main(String[] args) { - for (int i = 1; i < 100; i++) { - System.out.println(getEuler(i)); - } + //for (int i = 1; i < 100; i++) { + System.out.println(getEuler(10)); + //} } } diff --git a/Others/Factorial.java b/src/main/java/Others/Factorial.java similarity index 100% rename from Others/Factorial.java rename to src/main/java/Others/Factorial.java diff --git a/Others/FibToN.java b/src/main/java/Others/FibToN.java similarity index 100% rename from Others/FibToN.java rename to src/main/java/Others/FibToN.java diff --git a/Others/FloydTriangle.java b/src/main/java/Others/FloydTriangle.java similarity index 100% rename from Others/FloydTriangle.java rename to src/main/java/Others/FloydTriangle.java diff --git a/Others/GCD.java b/src/main/java/Others/GCD.java similarity index 100% rename from Others/GCD.java rename to src/main/java/Others/GCD.java diff --git a/Others/GuassLegendre.java b/src/main/java/Others/GuassLegendre.java similarity index 100% rename from Others/GuassLegendre.java rename to src/main/java/Others/GuassLegendre.java diff --git a/Others/InsertDeleteInArray.java b/src/main/java/Others/InsertDeleteInArray.java similarity index 100% rename from Others/InsertDeleteInArray.java rename to src/main/java/Others/InsertDeleteInArray.java diff --git a/Others/KMP.java b/src/main/java/Others/KMP.java similarity index 100% rename from Others/KMP.java rename to src/main/java/Others/KMP.java diff --git a/Others/Krishnamurthy.java b/src/main/java/Others/Krishnamurthy.java similarity index 100% rename from Others/Krishnamurthy.java rename to src/main/java/Others/Krishnamurthy.java diff --git a/Others/LinearCongruentialGenerator.java b/src/main/java/Others/LinearCongruentialGenerator.java similarity index 100% rename from Others/LinearCongruentialGenerator.java rename to src/main/java/Others/LinearCongruentialGenerator.java diff --git a/Others/LowestBasePalindrome.java b/src/main/java/Others/LowestBasePalindrome.java similarity index 100% rename from Others/LowestBasePalindrome.java rename to src/main/java/Others/LowestBasePalindrome.java diff --git a/Others/Palindrome.java b/src/main/java/Others/Palindrome.java similarity index 100% rename from Others/Palindrome.java rename to src/main/java/Others/Palindrome.java diff --git a/Others/PasswordGen.java b/src/main/java/Others/PasswordGen.java similarity index 100% rename from Others/PasswordGen.java rename to src/main/java/Others/PasswordGen.java diff --git a/Others/PerlinNoise.java b/src/main/java/Others/PerlinNoise.java similarity index 100% rename from Others/PerlinNoise.java rename to src/main/java/Others/PerlinNoise.java diff --git a/Others/PowerOfTwoOrNot.java b/src/main/java/Others/PowerOfTwoOrNot.java similarity index 100% rename from Others/PowerOfTwoOrNot.java rename to src/main/java/Others/PowerOfTwoOrNot.java diff --git a/Others/QueueUsingTwoStacks.java b/src/main/java/Others/QueueUsingTwoStacks.java similarity index 100% rename from Others/QueueUsingTwoStacks.java rename to src/main/java/Others/QueueUsingTwoStacks.java diff --git a/Others/RemoveDuplicateFromString.java b/src/main/java/Others/RemoveDuplicateFromString.java similarity index 100% rename from Others/RemoveDuplicateFromString.java rename to src/main/java/Others/RemoveDuplicateFromString.java diff --git a/Others/ReturnSubsequence.java b/src/main/java/Others/ReturnSubsequence.java similarity index 100% rename from Others/ReturnSubsequence.java rename to src/main/java/Others/ReturnSubsequence.java diff --git a/Others/ReverseStackUsingRecursion.java b/src/main/java/Others/ReverseStackUsingRecursion.java similarity index 100% rename from Others/ReverseStackUsingRecursion.java rename to src/main/java/Others/ReverseStackUsingRecursion.java diff --git a/Others/ReverseString.java b/src/main/java/Others/ReverseString.java similarity index 100% rename from Others/ReverseString.java rename to src/main/java/Others/ReverseString.java diff --git a/Others/RootPrecision.java b/src/main/java/Others/RootPrecision.java similarity index 100% rename from Others/RootPrecision.java rename to src/main/java/Others/RootPrecision.java diff --git a/Others/SJF.java b/src/main/java/Others/SJF.java similarity index 100% rename from Others/SJF.java rename to src/main/java/Others/SJF.java diff --git a/Others/SieveOfEratosthenes.java b/src/main/java/Others/SieveOfEratosthenes.java similarity index 100% rename from Others/SieveOfEratosthenes.java rename to src/main/java/Others/SieveOfEratosthenes.java diff --git a/Others/SkylineProblem.java b/src/main/java/Others/SkylineProblem.java similarity index 100% rename from Others/SkylineProblem.java rename to src/main/java/Others/SkylineProblem.java diff --git a/Others/StackPostfixNotation.java b/src/main/java/Others/StackPostfixNotation.java similarity index 100% rename from Others/StackPostfixNotation.java rename to src/main/java/Others/StackPostfixNotation.java diff --git a/Others/TopKWords.java b/src/main/java/Others/TopKWords.java similarity index 100% rename from Others/TopKWords.java rename to src/main/java/Others/TopKWords.java diff --git a/Others/TowerOfHanoi.java b/src/main/java/Others/TowerOfHanoi.java similarity index 100% rename from Others/TowerOfHanoi.java rename to src/main/java/Others/TowerOfHanoi.java diff --git a/Searches/BinarySearch.java b/src/main/java/Searches/BinarySearch.java similarity index 100% rename from Searches/BinarySearch.java rename to src/main/java/Searches/BinarySearch.java diff --git a/Searches/InterpolationSearch.java b/src/main/java/Searches/InterpolationSearch.java similarity index 100% rename from Searches/InterpolationSearch.java rename to src/main/java/Searches/InterpolationSearch.java diff --git a/Searches/IterativeBinarySearch.java b/src/main/java/Searches/IterativeBinarySearch.java similarity index 100% rename from Searches/IterativeBinarySearch.java rename to src/main/java/Searches/IterativeBinarySearch.java diff --git a/Searches/IterativeTernarySearch.java b/src/main/java/Searches/IterativeTernarySearch.java similarity index 100% rename from Searches/IterativeTernarySearch.java rename to src/main/java/Searches/IterativeTernarySearch.java diff --git a/Searches/LinearSearch.java b/src/main/java/Searches/LinearSearch.java similarity index 100% rename from Searches/LinearSearch.java rename to src/main/java/Searches/LinearSearch.java diff --git a/Searches/SaddlebackSearch.java b/src/main/java/Searches/SaddlebackSearch.java similarity index 100% rename from Searches/SaddlebackSearch.java rename to src/main/java/Searches/SaddlebackSearch.java diff --git a/Searches/SearchAlgorithm.java b/src/main/java/Searches/SearchAlgorithm.java similarity index 100% rename from Searches/SearchAlgorithm.java rename to src/main/java/Searches/SearchAlgorithm.java diff --git a/Searches/TernarySearch.java b/src/main/java/Searches/TernarySearch.java similarity index 100% rename from Searches/TernarySearch.java rename to src/main/java/Searches/TernarySearch.java diff --git a/Sorts/BogoSort.java b/src/main/java/Sorts/BogoSort.java similarity index 100% rename from Sorts/BogoSort.java rename to src/main/java/Sorts/BogoSort.java diff --git a/Sorts/BubbleSort.java b/src/main/java/Sorts/BubbleSort.java similarity index 100% rename from Sorts/BubbleSort.java rename to src/main/java/Sorts/BubbleSort.java diff --git a/Sorts/CocktailShakerSort.java b/src/main/java/Sorts/CocktailShakerSort.java similarity index 100% rename from Sorts/CocktailShakerSort.java rename to src/main/java/Sorts/CocktailShakerSort.java diff --git a/Sorts/CombSort.java b/src/main/java/Sorts/CombSort.java similarity index 100% rename from Sorts/CombSort.java rename to src/main/java/Sorts/CombSort.java diff --git a/Sorts/CountingSort.java b/src/main/java/Sorts/CountingSort.java similarity index 100% rename from Sorts/CountingSort.java rename to src/main/java/Sorts/CountingSort.java diff --git a/Sorts/CycleSort.java b/src/main/java/Sorts/CycleSort.java similarity index 100% rename from Sorts/CycleSort.java rename to src/main/java/Sorts/CycleSort.java diff --git a/Sorts/GnomeSort.java b/src/main/java/Sorts/GnomeSort.java similarity index 100% rename from Sorts/GnomeSort.java rename to src/main/java/Sorts/GnomeSort.java diff --git a/Sorts/HeapSort.java b/src/main/java/Sorts/HeapSort.java similarity index 100% rename from Sorts/HeapSort.java rename to src/main/java/Sorts/HeapSort.java diff --git a/Sorts/InsertionSort.java b/src/main/java/Sorts/InsertionSort.java similarity index 100% rename from Sorts/InsertionSort.java rename to src/main/java/Sorts/InsertionSort.java diff --git a/Sorts/MergeSort.java b/src/main/java/Sorts/MergeSort.java similarity index 100% rename from Sorts/MergeSort.java rename to src/main/java/Sorts/MergeSort.java diff --git a/Sorts/PancakeSort.java b/src/main/java/Sorts/PancakeSort.java similarity index 100% rename from Sorts/PancakeSort.java rename to src/main/java/Sorts/PancakeSort.java diff --git a/Sorts/QuickSort.java b/src/main/java/Sorts/QuickSort.java similarity index 100% rename from Sorts/QuickSort.java rename to src/main/java/Sorts/QuickSort.java diff --git a/Sorts/RadixSort.java b/src/main/java/Sorts/RadixSort.java similarity index 100% rename from Sorts/RadixSort.java rename to src/main/java/Sorts/RadixSort.java diff --git a/Sorts/SelectionSort.java b/src/main/java/Sorts/SelectionSort.java similarity index 100% rename from Sorts/SelectionSort.java rename to src/main/java/Sorts/SelectionSort.java diff --git a/Sorts/ShellSort.java b/src/main/java/Sorts/ShellSort.java similarity index 100% rename from Sorts/ShellSort.java rename to src/main/java/Sorts/ShellSort.java diff --git a/Sorts/SortAlgorithm.java b/src/main/java/Sorts/SortAlgorithm.java similarity index 100% rename from Sorts/SortAlgorithm.java rename to src/main/java/Sorts/SortAlgorithm.java diff --git a/Sorts/SortUtils.java b/src/main/java/Sorts/SortUtils.java similarity index 100% rename from Sorts/SortUtils.java rename to src/main/java/Sorts/SortUtils.java diff --git a/ciphers/AES.java b/src/main/java/ciphers/AES.java similarity index 100% rename from ciphers/AES.java rename to src/main/java/ciphers/AES.java diff --git a/ciphers/AESEncryption.java b/src/main/java/ciphers/AESEncryption.java similarity index 100% rename from ciphers/AESEncryption.java rename to src/main/java/ciphers/AESEncryption.java diff --git a/ciphers/Caesar.java b/src/main/java/ciphers/Caesar.java similarity index 100% rename from ciphers/Caesar.java rename to src/main/java/ciphers/Caesar.java diff --git a/ciphers/ColumnarTranspositionCipher.java b/src/main/java/ciphers/ColumnarTranspositionCipher.java similarity index 100% rename from ciphers/ColumnarTranspositionCipher.java rename to src/main/java/ciphers/ColumnarTranspositionCipher.java diff --git a/ciphers/RSA.java b/src/main/java/ciphers/RSA.java similarity index 100% rename from ciphers/RSA.java rename to src/main/java/ciphers/RSA.java diff --git a/ciphers/Vigenere.java b/src/main/java/ciphers/Vigenere.java similarity index 100% rename from ciphers/Vigenere.java rename to src/main/java/ciphers/Vigenere.java diff --git a/divideconquer/ClosestPair.java b/src/main/java/divideconquer/ClosestPair.java similarity index 100% rename from divideconquer/ClosestPair.java rename to src/main/java/divideconquer/ClosestPair.java diff --git a/divideconquer/SkylineAlgorithm.java b/src/main/java/divideconquer/SkylineAlgorithm.java similarity index 100% rename from divideconquer/SkylineAlgorithm.java rename to src/main/java/divideconquer/SkylineAlgorithm.java diff --git a/src/test/java/Conversions/OctalToDecimalTest.java b/src/test/java/Conversions/OctalToDecimalTest.java new file mode 100644 index 000000000000..94d43637d2a9 --- /dev/null +++ b/src/test/java/Conversions/OctalToDecimalTest.java @@ -0,0 +1,72 @@ +package Conversions; + +import org.junit.Assert; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; + +import com.tngtech.java.junit.dataprovider.DataProvider; +import com.tngtech.java.junit.dataprovider.DataProviderRunner; +import com.tngtech.java.junit.dataprovider.UseDataProvider; + +@RunWith(DataProviderRunner.class) +public class OctalToDecimalTest { + + @Rule + public ExpectedException thrown= ExpectedException.none(); + + //DataProvider for the black box test which will not cause exceptions + @DataProvider + public static Object[][] dataProviderOctalToDecimalNoException() { + + return new Object[][] { + {"-77",-63}, + {"-76",-62}, + {"-7",-7}, + {"-6",-6}, + {"-1",-1}, + {"-0",0}, + {"1",1}, + {"6",6}, + {"7",7}, + {"76",62}, + {"77",63}, + }; + } + + //Unit test for the black box test which will not cause exceptions + @Test + @UseDataProvider("dataProviderOctalToDecimalNoException") + public void OctalToDecimalNoExceptionTest(String octal, int expected) { + + Assert.assertEquals(expected, OctalToDecimal.convertOctalToDecimal(octal)); + + } + + //DataProvider for the black box test which will cause exceptions number format exception + @DataProvider + public static Object[][] dataProviderOctalToDecimalWithException() { + + return new Object[][] { + {"-7A"}, + {"-78"}, + {"-A"}, + {"-8"}, + {"8"}, + {"A"}, + {"78"}, + {"7A"}, + }; + } + + //Unit test for the black box test which will cause exceptions number format exception + @Test + @UseDataProvider("dataProviderOctalToDecimalWithException") + public void OctalToDecimalWithExceptionTest(String octal) { + thrown.expect(NumberFormatException.class); + OctalToDecimal.convertOctalToDecimal(octal); + + } + +} diff --git a/src/test/java/Conversions/RomanToIntegerTest.java b/src/test/java/Conversions/RomanToIntegerTest.java new file mode 100644 index 000000000000..fcfbce88ae29 --- /dev/null +++ b/src/test/java/Conversions/RomanToIntegerTest.java @@ -0,0 +1,86 @@ +package Conversions; + +import org.junit.Assert; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; + +import com.tngtech.java.junit.dataprovider.DataProvider; +import com.tngtech.java.junit.dataprovider.DataProviderRunner; +import com.tngtech.java.junit.dataprovider.UseDataProvider; + +@RunWith(DataProviderRunner.class) +public class RomanToIntegerTest { + @Rule + public ExpectedException thrown= ExpectedException.none(); + + //DataProvider for the black box test which will not cause exceptions + @DataProvider + public static Object[][] dataProviderRomanToIntegerNoException() { + + return new Object[][] { + {"I",1}, + {"II",2}, + {"IV",4}, + {"V",5}, + {"VI",6}, + {"VII",7}, + {"IX",9}, + {"X",10}, + {"XI",11}, + {"XII",12}, + {"IL",49}, + {"L",50}, + {"LI",51}, + {"LII",52}, + {"IC",99}, + {"C",100}, + {"CI",101}, + {"CII",102}, + {"ID",499}, + {"D",500}, + {"DI",501}, + {"DII",502}, + {"IM",999}, + {"M",1000}, + {"MI",1001}, + {"MII",1002}, + }; + } + + //Unit test for the black box test which will not cause exceptions + @Test + @UseDataProvider("dataProviderRomanToIntegerNoException") + public void romanToIntNoExceptionTest(String A, int expected) { + + Assert.assertEquals(expected, RomanToInteger.romanToInt(A)); + + } + + //DataProvider for the black box test which will cause exceptions number format exception + @DataProvider + public static Object[][] dataProviderRomanToIntegerlWithException() { + + return new Object[][] { + {"0"}, + {"H"}, + {"J"}, + {"U"}, + {"W"}, + {"K"}, + {"B"}, + {"E"}, + {"N"}, + }; + } + + //Unit test for the black box test which will cause exceptions number format exception + @Test + @UseDataProvider("dataProviderRomanToIntegerlWithException") + public void romanToIntWithExceptionTest(String A) { + thrown.expect(NullPointerException.class); + RomanToInteger.romanToInt(A); + + } +} diff --git a/src/test/java/DynamicProgramming/CoinChangeTest.java b/src/test/java/DynamicProgramming/CoinChangeTest.java new file mode 100644 index 000000000000..488e64c17bf6 --- /dev/null +++ b/src/test/java/DynamicProgramming/CoinChangeTest.java @@ -0,0 +1,56 @@ +package DynamicProgramming; + +import org.junit.Assert; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; +import com.tngtech.java.junit.dataprovider.DataProvider; +import com.tngtech.java.junit.dataprovider.DataProviderRunner; +import com.tngtech.java.junit.dataprovider.UseDataProvider; + + +@RunWith(DataProviderRunner.class) +public class CoinChangeTest { + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + //DataProvider for the control flow test method minimumCoins + @DataProvider + public static Object[][] dataProviderCoinChangeFunction() { + return new Object[][] { + {3, new int[] {2,5,6}, 0}, + {10000, new int[] {1000, 2000, 3000, 4000}, 3}, + {1, new int[] {}, 0 }, + {1000, new int[] {1, 1, 1, 1, 1, 0, 0, 0, 0 ,0}, 1000}, + {2147483646, new int[] {2147483645, 2147483646, 2147483647}, 1} + }; + } + + //Unit test for the control flow test method minimumCoins + @Test + @UseDataProvider("dataProviderCoinChangeFunction") + public void coinChangeTest(int amount, int[] coins, int expected) { + + Assert.assertEquals(expected, CoinChange.minimumCoins(coins, amount)); + } + + //DataProvider for the black box test which will cause exceptions on input formats + @DataProvider + public static Object[][] dataProviderCoinChangelWithException() { + + return new Object[][] { + {0, new int[] {-1,0,1}} + }; + } + + //Unit test for the black box test which will cause exceptions number format exception + @Test + @UseDataProvider("dataProviderCoinChangelWithException") + public void coinChangeTestWithExceptionTest(int amount, int[] coins) { + thrown.expect(IllegalArgumentException.class); + CoinChange.minimumCoins(coins, amount); + + } +} diff --git a/src/test/java/DynamicProgramming/KnapsackTest.java b/src/test/java/DynamicProgramming/KnapsackTest.java new file mode 100644 index 000000000000..98c6c8c638b2 --- /dev/null +++ b/src/test/java/DynamicProgramming/KnapsackTest.java @@ -0,0 +1,65 @@ +package DynamicProgramming; + +import org.junit.Assert; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; + +import com.tngtech.java.junit.dataprovider.DataProvider; +import com.tngtech.java.junit.dataprovider.DataProviderRunner; +import com.tngtech.java.junit.dataprovider.UseDataProvider; + +@RunWith(DataProviderRunner.class) +public class KnapsackTest { + + @Rule + public ExpectedException thrown= ExpectedException.none(); + + //DataProvider for the data flow test method knapsack + @DataProvider + public static Object[][] dataProviderKnapsack() { + int[] wt1 = {}; + int[] wt2 = {10,20,30}; + int[] wt3 = {10,10,30}; + int[] wt4 = {10,20,30}; + + int[] val1 = {}; + int[] val2 = {7,9,11}; + int[] val3 = {7,9,11}; + int[] val4 = {7,9,11}; + + return new Object[][] { + {50,wt1,val1,0,0}, + {10,wt2,val2,3,7}, + {10,wt3,val3,3,9}, + {20,wt4,val4,3,9}, + }; + } + + //Unit test for the data flow test method knapsack + @Test + @UseDataProvider("dataProviderKnapsack") + public void knapsackTest(int W, int wt[], int val[], int n,int expected) { + + Assert.assertEquals(expected, Knapsack.knapSack(W, wt, val, n)); + + } + + //Unit test for the data flow test method knapsack - case that throws exception. + @Test + public void knapsackTestException() { + + int W = -1; + int wt[] = {10,20,30}; + int val[] = {7,9,11}; + int n = 3; + + thrown.expect(ArrayIndexOutOfBoundsException.class); + + Knapsack.knapSack(W, wt, val, n); + + } + + +} diff --git a/src/test/java/DynamicProgramming/LongestIncreasingSubsequenceTest.java b/src/test/java/DynamicProgramming/LongestIncreasingSubsequenceTest.java new file mode 100644 index 000000000000..9231d597751c --- /dev/null +++ b/src/test/java/DynamicProgramming/LongestIncreasingSubsequenceTest.java @@ -0,0 +1,63 @@ +package DynamicProgramming; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; + +import com.tngtech.java.junit.dataprovider.DataProvider; +import com.tngtech.java.junit.dataprovider.DataProviderRunner; +import com.tngtech.java.junit.dataprovider.UseDataProvider; + +@RunWith(DataProviderRunner.class) +public class LongestIncreasingSubsequenceTest { + + //DataProvider for the control flow test method LIS + @DataProvider + public static Object[][] dataProviderLIS() { + int[] ar1 = {}; + int[] ar2 = {5}; + int[] ar3 = {3,2,1}; + int[] ar4 = {1,2,3}; + int[] ar5 = {1,2,1,4,1}; + + return new Object[][] { + {ar1,0}, + {ar2,1}, + {ar3,1}, + {ar4,3}, + {ar5,3}, + }; + } + + //Unit test for the control flow test method LIS + @Test + @UseDataProvider("dataProviderLIS") + public void LISTest(int[] array, int expected) { + + Assert.assertEquals(expected, LongestIncreasingSubsequence.LIS(array)); + + } + + //DataProvider for the data flow test method upperBound + @DataProvider + public static Object[][] dataProviderUpperBound() { + int[] ar = {3,10,20,0,0}; + + + return new Object[][] { + {ar,2,2,21,2}, + {ar,-1,3,11,2}, + {ar,-1,3,21,3}, + }; + } + + //Unit test for the data flow test method upperBound + @Test + @UseDataProvider("dataProviderUpperBound") + public void upperBoundTest(int[] ar, int l, int r, int key, int expected) { + + Assert.assertEquals(expected, LongestIncreasingSubsequence.upperBound(ar,l,r,key)); + + } + +} diff --git a/src/test/java/Others/ArmstrongTest.java b/src/test/java/Others/ArmstrongTest.java new file mode 100644 index 000000000000..fcf84448b40e --- /dev/null +++ b/src/test/java/Others/ArmstrongTest.java @@ -0,0 +1,31 @@ +package Others; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import com.tngtech.java.junit.dataprovider.DataProvider; +import com.tngtech.java.junit.dataprovider.DataProviderRunner; +import com.tngtech.java.junit.dataprovider.UseDataProvider; + +@RunWith(DataProviderRunner.class) +public class ArmstrongTest { + + //DataProvider for the control flow test method checkIfANumberIsAmstrongOrNot + @DataProvider + public static Object[][] dataProviderArmstrongFunction() { + return new Object[][] { + {0, true}, + {1, true}, + {-1, false}, + {2, false} + }; + } + + //Unit test for the control flow test method checkIfANumberIsAmstrongOrNot + @Test + @UseDataProvider("dataProviderArmstrongFunction") + public void isArmstrongTest(int number, boolean expected) { + + Assert.assertEquals(expected, Armstrong.checkIfANumberIsAmstrongOrNot(number)); + } +} diff --git a/src/test/java/Others/EulersFunctionTest.java b/src/test/java/Others/EulersFunctionTest.java new file mode 100644 index 000000000000..a13a0e9e04a4 --- /dev/null +++ b/src/test/java/Others/EulersFunctionTest.java @@ -0,0 +1,35 @@ +package Others; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; + +import com.tngtech.java.junit.dataprovider.DataProvider; +import com.tngtech.java.junit.dataprovider.DataProviderRunner; +import com.tngtech.java.junit.dataprovider.UseDataProvider; + +import DynamicProgramming.LevenshteinDistance; + +@RunWith(DataProviderRunner.class) +public class EulersFunctionTest { + + //DataProvider for the control flow test method EulersFunction + @DataProvider + public static Object[][] dataProviderEulersFunction() { + return new Object[][] { + {1,1}, + {2,1}, + {5,4}, + {4,2}, + {20,8} + }; + } + + //Unit test for the control flow test method EulersFunction + @Test + @UseDataProvider("dataProviderEulersFunction") + public void eulerTest(int n, int expected) { + + Assert.assertEquals(expected, EulersFunction.getEuler(n)); + } +} diff --git a/src/test/java/Others/GCDTest.java b/src/test/java/Others/GCDTest.java new file mode 100644 index 000000000000..0ae5afb810ab --- /dev/null +++ b/src/test/java/Others/GCDTest.java @@ -0,0 +1,35 @@ +package Others; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; + +import com.tngtech.java.junit.dataprovider.DataProvider; +import com.tngtech.java.junit.dataprovider.DataProviderRunner; +import com.tngtech.java.junit.dataprovider.UseDataProvider; + +@RunWith(DataProviderRunner.class) +public class GCDTest { + + //DataProvider for the control flow test method GCD + @DataProvider + public static Object[][] dataProviderGCD() { + + return new Object[][] { + {0,5,5}, + {5,0,5}, + {4,2,2}, + {3,6,3}, + }; + } + + //Unit test for the control flow test method LIS + @Test + @UseDataProvider("dataProviderGCD") + public void gcdTest(int num1, int num2, int expected) { + + Assert.assertEquals(expected, GCD.gcd(num1, num2)); + + } + +}