diff --git a/lib/array_equals.rb b/lib/array_equals.rb index 58e8369..b397d29 100644 --- a/lib/array_equals.rb +++ b/lib/array_equals.rb @@ -1,5 +1,22 @@ -# 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(first_array, second_array) + + if second_array.nil? && first_array.nil? + return true + elsif first_array.nil? || second_array.nil? + return false + end + + if first_array.length != second_array.length + return false + end + + flag = 0 + first_array.each.each_with_index do |value, index| + if value != second_array[index] + flag += 1 + end + end + + flag > 0 ? false : true +end \ No newline at end of file diff --git a/test/array_equals_test.rb b/test/array_equals_test.rb index f745cf7..804501f 100644 --- a/test/array_equals_test.rb +++ b/test/array_equals_test.rb @@ -1,71 +1,72 @@ require 'minitest/autorun' require 'minitest/reporters' require_relative '../lib/array_equals' +require 'minitest/pride' describe "array equals" do describe "basic tests" do 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