diff --git a/exercises/resistor-color-duo/.meta/solutions/resistor_color_duo.rb b/exercises/resistor-color-duo/.meta/solutions/resistor_color_duo.rb index 674b310699..d80a140aea 100644 --- a/exercises/resistor-color-duo/.meta/solutions/resistor_color_duo.rb +++ b/exercises/resistor-color-duo/.meta/solutions/resistor_color_duo.rb @@ -14,6 +14,7 @@ module ResistorColorDuo def self.value(color_bands) color_bands + .first(2) .map { |color| COLORS.index(color) } .join .to_i diff --git a/exercises/resistor-color-duo/README.md b/exercises/resistor-color-duo/README.md index 0c778d7cec..054597c9a0 100644 --- a/exercises/resistor-color-duo/README.md +++ b/exercises/resistor-color-duo/README.md @@ -4,22 +4,17 @@ If you want to build something using a Raspberry Pi, you'll probably use _resist * Each resistor has a resistance value. * Resistors are small - so small in fact that if you printed the resistance value on them, it would be hard to read. -To get around this problem, manufacturers print color-coded bands onto the resistors to denote their resistance values. Each band acts as a digit of a number. For example, if they printed a brown band (value 1) followed by a green band (value 5), it would translate to the number 15. - -In this exercise, you are going to create a helpful program so that you don't have to remember the values of the bands. The program will take two colors as input, and output the correct number. - -The band colors are encoded as follows: - -- Black: 0 -- Brown: 1 -- Red: 2 -- Orange: 3 -- Yellow: 4 -- Green: 5 -- Blue: 6 -- Violet: 7 -- Grey: 8 -- White: 9 +To get around this problem, manufacturers print color-coded bands onto the resistors to denote their resistance values. Each band has a position and a numeric value. For example, if they printed a brown band (value 1) followed by a green band (value 5), it would translate to the number 15. + +In this exercise you are going to create a helpful program so that you don't have to remember the values of the bands. The program will take color names as input and output a two digit number, even if the input is more than two colors! + +The colors are mapped to the numbers from 0 to 9 in the sequence: +Black - Brown - Red - Orange - Yellow - Green - Blue - Violet - Grey - White + +From the example above: +brown-green should return 15 +brown-green-violet should return 15 too, ignoring the third color. + * * * * diff --git a/exercises/resistor-color-duo/resistor_color_duo_test.rb b/exercises/resistor-color-duo/resistor_color_duo_test.rb index ad338e9162..32832d657e 100644 --- a/exercises/resistor-color-duo/resistor_color_duo_test.rb +++ b/exercises/resistor-color-duo/resistor_color_duo_test.rb @@ -1,7 +1,7 @@ require 'minitest/autorun' require_relative 'resistor_color_duo' -# Common test data version: 2.0.0 8b44ce1 +# Common test data version: 2.1.0 00dda3a class ResistorColorDuoTest < Minitest::Test def test_brown_and_black # skip @@ -22,4 +22,9 @@ def test_orange_and_orange skip assert_equal 33, ResistorColorDuo.value(["orange", "orange"]) end + + def test_ignore_additional_colors + skip + assert_equal 51, ResistorColorDuo.value(["green", "brown", "orange"]) + end end