Решение на Втора задача от Мария Дулева
Обратно към всички решения
Към профила на Мария Дулева
Резултати
- 4 точки от тестове
- 0 бонус точки
- 4 точки общо
- 15 успешни тест(а)
- 9 неуспешни тест(а)
Код
Лог от изпълнението
..F.....F.......FFFFFF.F
Failures:
1) NumberSet can store complex numbers
Failure/Error: numbers << number
RangeError:
can't convert 0.3+2i into Rational
# /tmp/d20141028-18133-19us0em/solution.rb:24:in `to_r'
# /tmp/d20141028-18133-19us0em/solution.rb:24:in `<<'
# /tmp/d20141028-18133-19us0em/spec.rb:170:in `can_store'
# /tmp/d20141028-18133-19us0em/spec.rb:11:in `block (2 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'
2) NumberSet can filter by complex type
Failure/Error: numbers << number
RangeError:
can't convert 0.3+2i into Rational
# /tmp/d20141028-18133-19us0em/solution.rb:24:in `to_r'
# /tmp/d20141028-18133-19us0em/solution.rb:24:in `<<'
# /tmp/d20141028-18133-19us0em/spec.rb:177:in `block in can_filter'
# /tmp/d20141028-18133-19us0em/spec.rb:176:in `each'
# /tmp/d20141028-18133-19us0em/spec.rb:176:in `can_filter'
# /tmp/d20141028-18133-19us0em/spec.rb:43:in `block (2 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'
3) NumberSet can combine two filters with "and" rule
Failure/Error: filter = SignFilter.new(:non_negative) & Filter.new { |number| number != 0 }
NoMethodError:
undefined method `&' for #<SignFilter:0xb95e2a2c @filter_sign=:non_negative>
# /tmp/d20141028-18133-19us0em/spec.rb:91:in `block (2 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'
4) NumberSet can combine two filters with "or" rule
Failure/Error: filter = Filter.new { |number| number % 2 == 0 } | Filter.new { |number| number > 5 }
NoMethodError:
undefined method `|' for #<Filter:0xb95e1f28>
# /tmp/d20141028-18133-19us0em/spec.rb:98:in `block (2 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'
5) NumberSet can combine multiple filters with "and" rule
Failure/Error: filter = non_negative & non_zero & mod_3_is_zero
NoMethodError:
undefined method `&' for #<SignFilter:0xb95e1424 @filter_sign=:non_negative>
# /tmp/d20141028-18133-19us0em/spec.rb:108:in `block (2 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'
6) NumberSet can combine multiple filters with "or" rule
Failure/Error: filter = even | negative | more_than_100
NoMethodError:
undefined method `|' for #<Filter:0xb95e0858 @block=#<Proc:0xb95e08a8>>
# /tmp/d20141028-18133-19us0em/spec.rb:118:in `block (2 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'
7) NumberSet can combine multiple filters with "and" and "or" rules
Failure/Error: filter = even & negative | mod_3_is_zero
NoMethodError:
undefined method `&' for #<Filter:0xb954bb54 @block=#<Proc:0xb95e08a8>>
# /tmp/d20141028-18133-19us0em/spec.rb:128:in `block (2 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'
8) NumberSet can combine multiple filters with "and", "or" and parenthesis
Failure/Error: filter = even & (negative | mod_3_is_zero)
NoMethodError:
undefined method `|' for #<SignFilter:0xb954b078 @filter_sign=:negative>
# /tmp/d20141028-18133-19us0em/spec.rb:138:in `block (2 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'
9) NumberSet returns enumerable of set's contents if no block is given to each
Failure/Error: expect(numbers.each.to_a.size).to eq [1, 3, 5].size
LocalJumpError:
no block given (yield)
# /tmp/d20141028-18133-19us0em/solution.rb:12:in `block in each'
# /tmp/d20141028-18133-19us0em/solution.rb:11:in `each'
# /tmp/d20141028-18133-19us0em/solution.rb:11:in `each'
# /tmp/d20141028-18133-19us0em/spec.rb:164:in `block (2 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
# ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'
Finished in 0.02128 seconds
24 examples, 9 failures
Failed examples:
rspec /tmp/d20141028-18133-19us0em/spec.rb:10 # NumberSet can store complex numbers
rspec /tmp/d20141028-18133-19us0em/spec.rb:42 # NumberSet can filter by complex type
rspec /tmp/d20141028-18133-19us0em/spec.rb:90 # NumberSet can combine two filters with "and" rule
rspec /tmp/d20141028-18133-19us0em/spec.rb:97 # NumberSet can combine two filters with "or" rule
rspec /tmp/d20141028-18133-19us0em/spec.rb:104 # NumberSet can combine multiple filters with "and" rule
rspec /tmp/d20141028-18133-19us0em/spec.rb:114 # NumberSet can combine multiple filters with "or" rule
rspec /tmp/d20141028-18133-19us0em/spec.rb:124 # NumberSet can combine multiple filters with "and" and "or" rules
rspec /tmp/d20141028-18133-19us0em/spec.rb:134 # NumberSet can combine multiple filters with "and", "or" and parenthesis
rspec /tmp/d20141028-18133-19us0em/spec.rb:159 # NumberSet returns enumerable of set's contents if no block is given to each
История (2 версии и 3 коментара)
Мария обнови решението на 26.10.2014 19:54 (преди около 10 години)
Мария обнови решението на 27.10.2014 13:20 (преди около 10 години)