Created
February 26, 2018 22:35
-
-
Save dengsauve/a48abca0962e0ada5ded232ccd907730 to your computer and use it in GitHub Desktop.
Ruby Integer to Roman Number TDD, test builder file using assignment (requires 'to_words' gem).
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'to_words' | |
require_relative 'roman.rb' | |
100.times do |n| | |
# make the test def | |
puts "def test_#{n}s" if n % 10 == 0 | |
# print the assertions | |
puts "\tassert_equal( \"#{n.to_roman}\", #{n}.to_roman, \"#{n.to_words.upcase}\")" | |
puts "end\n\n" if (n + 1) % 10 == 0 | |
end | |
puts "def test_100" | |
puts "\tassert_equal( \"C\", 100.to_roman, \"#{100.to_words.upcase}\")" | |
puts "end" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require_relative 'roman.rb' | |
require 'test/unit' | |
class RomanTest < Test::Unit::TestCase | |
def test_0s | |
assert_equal('nulla', 0.to_roman, 'ZERO') | |
assert_equal('I', 1.to_roman, 'ONE') | |
assert_equal('II', 2.to_roman, 'TWO') | |
assert_equal('III', 3.to_roman, 'THREE') | |
assert_equal('IV', 4.to_roman, 'FOUR') | |
assert_equal('V', 5.to_roman, 'FIVE') | |
assert_equal('VI', 6.to_roman, 'SIX') | |
assert_equal('VII', 7.to_roman, 'SEVEN') | |
assert_equal('VIII', 8.to_roman, 'EIGHT') | |
assert_equal('IX', 9.to_roman, 'NINE') | |
end | |
def test_10s | |
assert_equal('X', 10.to_roman, 'TEN') | |
assert_equal('XI', 11.to_roman, 'ELEVEN') | |
assert_equal('XII', 12.to_roman, 'TWELVE') | |
assert_equal('XIII', 13.to_roman, 'THIRTEEN') | |
assert_equal('XIV', 14.to_roman, 'FOURTEEN') | |
assert_equal('XV', 15.to_roman, 'FIFTEEN') | |
assert_equal('XVI', 16.to_roman, 'SIXTEEN') | |
assert_equal('XVII', 17.to_roman, 'SEVENTEEN') | |
assert_equal('XVIII', 18.to_roman, 'EIGHTEEN') | |
assert_equal('XIX', 19.to_roman, 'NINETEEN') | |
end | |
def test_20s | |
assert_equal('XX', 20.to_roman, 'TWENTY') | |
assert_equal('XXI', 21.to_roman, 'TWENTY ONE') | |
assert_equal('XXII', 22.to_roman, 'TWENTY TWO') | |
assert_equal('XXIII', 23.to_roman, 'TWENTY THREE') | |
assert_equal('XXIV', 24.to_roman, 'TWENTY FOUR') | |
assert_equal('XXV', 25.to_roman, 'TWENTY FIVE') | |
assert_equal('XXVI', 26.to_roman, 'TWENTY SIX') | |
assert_equal('XXVII', 27.to_roman, 'TWENTY SEVEN') | |
assert_equal('XXVIII', 28.to_roman, 'TWENTY EIGHT') | |
assert_equal('XXIX', 29.to_roman, 'TWENTY NINE') | |
end | |
def test_30s | |
assert_equal('XXX', 30.to_roman, 'THIRTY') | |
assert_equal('XXXI', 31.to_roman, 'THIRTY ONE') | |
assert_equal('XXXII', 32.to_roman, 'THIRTY TWO') | |
assert_equal('XXXIII', 33.to_roman, 'THIRTY THREE') | |
assert_equal('XXXIV', 34.to_roman, 'THIRTY FOUR') | |
assert_equal('XXXV', 35.to_roman, 'THIRTY FIVE') | |
assert_equal('XXXVI', 36.to_roman, 'THIRTY SIX') | |
assert_equal('XXXVII', 37.to_roman, 'THIRTY SEVEN') | |
assert_equal('XXXVIII', 38.to_roman, 'THIRTY EIGHT') | |
assert_equal('XXXIX', 39.to_roman, 'THIRTY NINE') | |
end | |
def test_40s | |
assert_equal('XL', 40.to_roman, 'FORTY') | |
assert_equal('XLI', 41.to_roman, 'FORTY ONE') | |
assert_equal('XLII', 42.to_roman, 'FORTY TWO') | |
assert_equal('XLIII', 43.to_roman, 'FORTY THREE') | |
assert_equal('XLIV', 44.to_roman, 'FORTY FOUR') | |
assert_equal('XLV', 45.to_roman, 'FORTY FIVE') | |
assert_equal('XLVI', 46.to_roman, 'FORTY SIX') | |
assert_equal('XLVII', 47.to_roman, 'FORTY SEVEN') | |
assert_equal('XLVIII', 48.to_roman, 'FORTY EIGHT') | |
assert_equal('XLIX', 49.to_roman, 'FORTY NINE') | |
end | |
def test_50s | |
assert_equal('XL', 50.to_roman, 'FIFTY') | |
assert_equal('XLI', 51.to_roman, 'FIFTY ONE') | |
assert_equal('XLII', 52.to_roman, 'FIFTY TWO') | |
assert_equal('XLIII', 53.to_roman, 'FIFTY THREE') | |
assert_equal('XLIV', 54.to_roman, 'FIFTY FOUR') | |
assert_equal('XLV', 55.to_roman, 'FIFTY FIVE') | |
assert_equal('XLVI', 56.to_roman, 'FIFTY SIX') | |
assert_equal('XLVII', 57.to_roman, 'FIFTY SEVEN') | |
assert_equal('XLVIII', 58.to_roman, 'FIFTY EIGHT') | |
assert_equal('XLIX', 59.to_roman, 'FIFTY NINE') | |
end | |
def test_60s | |
assert_equal('XLX', 60.to_roman, 'SIXTY') | |
assert_equal('XLXI', 61.to_roman, 'SIXTY ONE') | |
assert_equal('XLXII', 62.to_roman, 'SIXTY TWO') | |
assert_equal('XLXIII', 63.to_roman, 'SIXTY THREE') | |
assert_equal('XLXIV', 64.to_roman, 'SIXTY FOUR') | |
assert_equal('XLXV', 65.to_roman, 'SIXTY FIVE') | |
assert_equal('XLXVI', 66.to_roman, 'SIXTY SIX') | |
assert_equal('XLXVII', 67.to_roman, 'SIXTY SEVEN') | |
assert_equal('XLXVIII', 68.to_roman, 'SIXTY EIGHT') | |
assert_equal('XLXIX', 69.to_roman, 'SIXTY NINE') | |
end | |
def test_70s | |
assert_equal('XLXX', 70.to_roman, 'SEVENTY') | |
assert_equal('XLXXI', 71.to_roman, 'SEVENTY ONE') | |
assert_equal('XLXXII', 72.to_roman, 'SEVENTY TWO') | |
assert_equal('XLXXIII', 73.to_roman, 'SEVENTY THREE') | |
assert_equal('XLXXIV', 74.to_roman, 'SEVENTY FOUR') | |
assert_equal('XLXXV', 75.to_roman, 'SEVENTY FIVE') | |
assert_equal('XLXXVI', 76.to_roman, 'SEVENTY SIX') | |
assert_equal('XLXXVII', 77.to_roman, 'SEVENTY SEVEN') | |
assert_equal('XLXXVIII', 78.to_roman, 'SEVENTY EIGHT') | |
assert_equal('XLXXIX', 79.to_roman, 'SEVENTY NINE') | |
end | |
def test_80s | |
assert_equal('XLXXX', 80.to_roman, 'EIGHTY') | |
assert_equal('XLXXXI', 81.to_roman, 'EIGHTY ONE') | |
assert_equal('XLXXXII', 82.to_roman, 'EIGHTY TWO') | |
assert_equal('XLXXXIII', 83.to_roman, 'EIGHTY THREE') | |
assert_equal('XLXXXIV', 84.to_roman, 'EIGHTY FOUR') | |
assert_equal('XLXXXV', 85.to_roman, 'EIGHTY FIVE') | |
assert_equal('XLXXXVI', 86.to_roman, 'EIGHTY SIX') | |
assert_equal('XLXXXVII', 87.to_roman, 'EIGHTY SEVEN') | |
assert_equal('XLXXXVIII', 88.to_roman, 'EIGHTY EIGHT') | |
assert_equal('XLXXXIX', 89.to_roman, 'EIGHTY NINE') | |
end | |
def test_90s | |
assert_equal('XC', 90.to_roman, 'NINETY') | |
assert_equal('XCI', 91.to_roman, 'NINETY ONE') | |
assert_equal('XCII', 92.to_roman, 'NINETY TWO') | |
assert_equal('XCIII', 93.to_roman, 'NINETY THREE') | |
assert_equal('XCIV', 94.to_roman, 'NINETY FOUR') | |
assert_equal('XCV', 95.to_roman, 'NINETY FIVE') | |
assert_equal('XCVI', 96.to_roman, 'NINETY SIX') | |
assert_equal('XCVII', 97.to_roman, 'NINETY SEVEN') | |
assert_equal('XCVIII', 98.to_roman, 'NINETY EIGHT') | |
assert_equal('XCIX', 99.to_roman, 'NINETY NINE') | |
end | |
def test_100 | |
assert_equal('C', 100.to_roman, 'ONE HUNDRED') | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment