From 63e76d2f27298114fd79c9aad0af00a5c6ab5ee0 Mon Sep 17 00:00:00 2001 From: Sebastian Rabuini Date: Sun, 21 Aug 2016 19:52:28 -0300 Subject: [PATCH] Fix tests and example to pass --- exercises/list-ops/example.rb | 10 +++++----- exercises/list-ops/list_ops_test.rb | 26 +++++++++++++++----------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/exercises/list-ops/example.rb b/exercises/list-ops/example.rb index 0b7b5db94e..aa71e8c725 100644 --- a/exercises/list-ops/example.rb +++ b/exercises/list-ops/example.rb @@ -1,5 +1,4 @@ class ListOps - VERSION = 1 ## Do not use the functions map, concat, count, length, etc. ## and other built in ruby methods to solve these ## @@ -33,7 +32,7 @@ def self.concatter(arr1, arr2) def self.mapper(arr) answer = [] arr.each do |element| - answer << (element + 1) + answer << yield(element) if block_given? end answer end @@ -41,9 +40,7 @@ def self.mapper(arr) def self.filterer(arr) answer = [] arr.each do |element| - if element % 2 == 1 - answer << element - end + answer << element if block_given? && yield(element) end answer end @@ -63,5 +60,8 @@ def self.factorial_reducer(arr) end total end +end +module BookKeeping + VERSION = 2 end diff --git a/exercises/list-ops/list_ops_test.rb b/exercises/list-ops/list_ops_test.rb index 7c91a97a69..84cb0ebd3a 100755 --- a/exercises/list-ops/list_ops_test.rb +++ b/exercises/list-ops/list_ops_test.rb @@ -29,54 +29,58 @@ def test_reverse_normal def test_reverse_gigantic skip - assert (1_000_000..1).to_a, ListOps.reverser((1..1_000_000).to_a) + expected = (1..1_000_000).to_a.reverse + assert_equal expected, ListOps.reverser((1..1_000_000).to_a) end def test_concat_empty skip - assert [], ListOps.concatter([], []) + assert_equal [], ListOps.concatter([], []) end def test_concat_normal skip - assert [12, 34, 56, 78], ListOps.concatter([12, 34], [56, 78]) + assert_equal [12, 34, 56, 78], ListOps.concatter([12, 34], [56, 78]) end def test_concat_gigantic skip input1 = (1..1_000_000).to_a input2 = (1_000_001..2_000_000).to_a - assert (1..2_000_000).to_a, ListOps.concatter(input1, input2) + assert_equal (1..2_000_000).to_a, ListOps.concatter(input1, input2) end def test_mapper_empty skip - assert [], ListOps.mapper([]) + assert_equal [], ListOps.mapper([]) end def test_mapper_normal skip - assert [2, 3, 4, 5, 6], ListOps.mapper([1, 2, 3, 4, 5]) + assert_equal [2, 3, 4, 5, 6], ListOps.mapper([1, 2, 3, 4, 5]) { |n| n + 1 } end def test_mapper_gigantic skip - assert (2..1_000_001).to_a, ListOps.mapper((1..1_000_000).to_a) + result = ListOps.mapper((1..1_000_000).to_a) { |n| n + 1 } + assert_equal (2..1_000_001).to_a, result end def test_filterer_empty skip - assert [], ListOps.filterer([]) + assert_equal [], ListOps.filterer([]) end def test_filterer_normal skip - assert [1, 3, 5, 7, 9], ListOps.filterer([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) + result = ListOps.filterer([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], &:odd?) + assert_equal [1, 3, 5, 7, 9], result end def test_filterer_gigantic skip - assert (1..10_000).to_a.select(&:even?), ListOps.filterer((1..10_000).to_a) + result = ListOps.filterer((1..10_000).to_a, &:even?) + assert_equal (1..10_000).to_a.select(&:even?), result end def test_sum_reducer_empty @@ -102,6 +106,6 @@ def test_factorial_reducer_normal def test_bookkeeping skip - assert_equal 1, ListOps::VERSION + assert_equal 2, BookKeeping::VERSION end end