diff --git a/lib/array_equals.rb b/lib/array_equals.rb index 58e8369..ee8b8a4 100644 --- a/lib/array_equals.rb +++ b/lib/array_equals.rb @@ -1,5 +1,16 @@ # Determines if the two input arrays have the same count of elements # and the same integer values in the same exact order -def array_equals(array1, array2) - raise NotImplementedError -end +def array_equals(arr1, arr2) + if (arr1 == [] && arr2 == [] || arr1 == nil && arr2 == nil) + return true + elsif arr1 == nil || arr2 == nil || arr1.length != arr2.length + return false + else + arr1.length.times do |num| + if arr1[num] != arr2[num] + return false + end + end + return true + end +end \ No newline at end of file diff --git a/test/array_equals_test.rb b/test/array_equals_test.rb index f745cf7..575e60d 100644 --- a/test/array_equals_test.rb +++ b/test/array_equals_test.rb @@ -7,65 +7,65 @@ it "arrays are equal" do array1 = [10, 20, 30, 40, 50, 60] array2 = [10, 20, 30, 40, 50, 60] - + array_equals(array1, array2).must_equal true end - + it "arrays not equal: first six elements are same" do array1 = [10, 20, 30, 40, 50, 60] array2 = [10, 20, 30, 40, 50, 60, 70] - + array_equals(array1, array2).must_equal false end - + it "arrays not equal: same count of elements" do array1 = [10, 20, 30, 40, 50, 60] array2 = [20, 3, 50, 10, 68, 74] - + array_equals(array1, array2).must_equal false end end - + describe "edge cases" do it "arrays are empty: equal" do array1 = [] array2 = [] - + array_equals(array1, array2).must_equal true end - + it "only first array is empty: not equal" do array1 = [] array2 = [50, 30] - + array_equals(array1, array2).must_equal false end - + it "only second array is empty: not equal" do array1 = [20] array2 = [] - + array_equals(array1, array2).must_equal false end - + it "arrays are nil: equal" do array1 = nil array2 = nil - + array_equals(array1, array2).must_equal true end - + it "only first array is nil: not equal" do array1 = nil array2 = [10, 20] - + array_equals(array1, array2).must_equal false end - + it "only second array is nil: not equal" do array1 = [20] array2 = nil - + array_equals(array1, array2).must_equal false end end