From a1ebfc95158e0f6462aa355c994443a058b7a01e Mon Sep 17 00:00:00 2001 From: Natalie Tapias Date: Thu, 22 Aug 2019 12:28:15 -0700 Subject: [PATCH 1/5] Have thought about a way to determine the length of two parameters array1 and array2. Need to test and refine this method. --- lib/array_equals.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/array_equals.rb b/lib/array_equals.rb index 58e8369..1b876ce 100644 --- a/lib/array_equals.rb +++ b/lib/array_equals.rb @@ -1,5 +1,26 @@ # 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) + + array1_length = 0 + until array1[i] == nil + array1_length += 1 + end + + if array1_length == 0 + # this means that this is an empty array + end + + array2_length = 0 + until array[i] == nil + array2_length += 1 + end + + + + # if x + # return true + # else + # return false raise NotImplementedError end From 5072123013b452f7b7532cdcfff0810d1f4c16e0 Mon Sep 17 00:00:00 2001 From: Natalie Tapias Date: Sun, 25 Aug 2019 22:14:32 -0700 Subject: [PATCH 2/5] All tests passing. --- lib/array_equals.rb | 34 +++++++++++++++++----------------- test/array_equals_test.rb | 35 ++++++++++++++++++----------------- 2 files changed, 35 insertions(+), 34 deletions(-) diff --git a/lib/array_equals.rb b/lib/array_equals.rb index 1b876ce..9f61176 100644 --- a/lib/array_equals.rb +++ b/lib/array_equals.rb @@ -1,26 +1,26 @@ # 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) - - array1_length = 0 - until array1[i] == nil - array1_length += 1 +def array_equals(first_array, second_array) + if (first_array == nil && second_array != nil) || (second_array == nil && first_array != nil) + return false + elsif second_array == nil && first_array == nil + return true end - if array1_length == 0 - # this means that this is an empty array - end - array2_length = 0 - until array[i] == nil - array2_length += 1 - end + incrementer = 0 + first_array.each_with_index do |integer, i| + if integer == second_array[i] + incrementer += 1 + end + end - # if x - # return true - # else - # return false - raise NotImplementedError + if incrementer == second_array.length && incrementer == first_array.length + return true + else + return false + end end + 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 From e7e4c1d4ba4697f1d021d1a3db2849d59a4615c6 Mon Sep 17 00:00:00 2001 From: Natalie Tapias Date: Sun, 1 Sep 2019 07:58:31 -0700 Subject: [PATCH 3/5] Reorganizing complex conditionsal in array_equals.rb --- lib/array_equals.rb | 53 ++++++++++++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 17 deletions(-) diff --git a/lib/array_equals.rb b/lib/array_equals.rb index 9f61176..ab72ec8 100644 --- a/lib/array_equals.rb +++ b/lib/array_equals.rb @@ -1,26 +1,45 @@ -# 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(first_array, second_array) - if (first_array == nil && second_array != nil) || (second_array == nil && first_array != nil) - return false - elsif second_array == nil && first_array == nil + + if first_array.nil? && second_array.nil? return true + elsif first_array.nil? || second_array.nil? + return false + elsif first_array.length != second_array.length + return false end - - - - incrementer = 0 - first_array.each_with_index do |integer, i| - if integer == second_array[i] - incrementer += 1 + flag = 0 + first_array.each.each_with_index do |index, value| + if value != second_array[index] + flag += 1 end end - if incrementer == second_array.length && incrementer == first_array.length - return true - else - return false - end + flag > 0 ? true : false + + end +# if (first_array == nil && second_array != nil) || (second_array == nil && first_array != nil) +# return false +# elsif second_array == nil && first_array == nil +# return true +# end + + + + +# incrementer = 0 +# first_array.each_with_index do |integer, i| +# if integer == second_array[i] +# incrementer += 1 +# end +# end + +# if incrementer == second_array.length && incrementer == first_array.length +# return true +# else +# return false +# end +# end From 8f554fe9ec34732baabc22230c35c48529b05f6f Mon Sep 17 00:00:00 2001 From: Natalie Tapias Date: Sun, 1 Sep 2019 08:12:25 -0700 Subject: [PATCH 4/5] Made use of each_with_index enumerable to compare two different arrays. --- lib/array_equals.rb | 41 +++++++++-------------------------------- 1 file changed, 9 insertions(+), 32 deletions(-) diff --git a/lib/array_equals.rb b/lib/array_equals.rb index ab72ec8..75d0dcb 100644 --- a/lib/array_equals.rb +++ b/lib/array_equals.rb @@ -1,45 +1,22 @@ def array_equals(first_array, second_array) - if first_array.nil? && second_array.nil? - return true - elsif first_array.nil? || second_array.nil? + if (first_array.nil? && !second_array.nil?) || (second_array.nil? && !first_array.nil?) return false - elsif first_array.length != second_array.length + elsif second_array.nil? && first_array.nil? + return true + end + + if first_array.length != second_array.length return false end flag = 0 - first_array.each.each_with_index do |index, value| + first_array.each.each_with_index do |value, index| if value != second_array[index] flag += 1 end end - flag > 0 ? true : false - - -end -# if (first_array == nil && second_array != nil) || (second_array == nil && first_array != nil) -# return false -# elsif second_array == nil && first_array == nil -# return true -# end - - - - -# incrementer = 0 -# first_array.each_with_index do |integer, i| -# if integer == second_array[i] -# incrementer += 1 -# end -# end - -# if incrementer == second_array.length && incrementer == first_array.length -# return true -# else -# return false -# end -# end - + flag > 0 ? false : true +end \ No newline at end of file From 966e4429b7cf9d5edf74cdd7d7672219c0f875ea Mon Sep 17 00:00:00 2001 From: Natalie Tapias Date: Sun, 1 Sep 2019 08:47:07 -0700 Subject: [PATCH 5/5] Consensed some extended logic for readability. --- lib/array_equals.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/array_equals.rb b/lib/array_equals.rb index 75d0dcb..b397d29 100644 --- a/lib/array_equals.rb +++ b/lib/array_equals.rb @@ -1,10 +1,10 @@ def array_equals(first_array, second_array) - if (first_array.nil? && !second_array.nil?) || (second_array.nil? && !first_array.nil?) - return false - elsif second_array.nil? && first_array.nil? + 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