def can_correctly_convert_numbers_31_to_40(): assert convert(31) == 'XXXI' assert convert(32) == 'XXXII' assert convert(33) == 'XXXIII' assert convert(34) == 'XXXIV' assert convert(35) == 'XXXV' assert convert(36) == 'XXXVI' assert convert(37) == 'XXXVII' assert convert(38) == 'XXXVIII' assert convert(39) == 'XXXIX' assert convert(40) == 'XL'
def can_correctly_convert_numbers_11_to_20(): assert convert(11) == 'XI' assert convert(12) == 'XII' assert convert(13) == 'XIII' assert convert(14) == 'XIV' assert convert(15) == 'XV' assert convert(16) == 'XVI' assert convert(17) == 'XVII' assert convert(18) == 'XVIII' assert convert(19) == 'XIX' assert convert(20) == 'XX'
def can_correctly_convert_numbers_21_to_30(): assert convert(21) == 'XXI' assert convert(22) == 'XXII' assert convert(23) == 'XXIII' assert convert(24) == 'XXIV' assert convert(25) == 'XXV' assert convert(26) == 'XXVI' assert convert(27) == 'XXVII' assert convert(28) == 'XXVIII' assert convert(29) == 'XXIX' assert convert(30) == 'XXX'
def can_correctly_convert_numbers_1_to_10(): assert convert(1) == 'I' assert convert(2) == 'II' assert convert(3) == 'III' assert convert(4) == 'IV' assert convert(5) == 'V' assert convert(6) == 'VI' assert convert(7) == 'VII' assert convert(8) == 'VIII' assert convert(9) == 'IX' assert convert(10) == 'X'
def returns_I_II_or_III_if_remainder_of_division_by_5_is_1_to_3(): """ Test that our program ends in I, II, or III if the remainder when dividing by 5 is 1, 2, or 3, respectively. """ assert convert(1)[-1:] == "I" assert convert(2)[-2:] == "II" assert convert(3)[-3:] == "III" assert convert(6)[-1:] == "I" assert convert(7)[-2:] == "II" assert convert(8)[-3:] == "III" assert convert(11)[-1:] == "I" assert convert(12)[-2:] == "II" assert convert(13)[-3:] == "III"
def return_V_or_X_if_num_mod_5_is_0(): assert convert( 5)[-1] == "V" assert convert(10)[-1] == "X" assert convert(15)[-1] == "V" assert convert(20)[-1] == "X" assert convert(25)[-1] == "V" assert convert(30)[-1] == "X"
def returns_IX_if_num_mod_5_is_4_and_num_plus_1_divisible_by_10(): assert convert(4)[-2:] != "IX" assert convert(9)[-2:] == "IX" assert convert(14)[-2:] != "IX" assert convert(19)[-2:] == "IX" assert convert(124)[-2:] != "IX" assert convert(129)[-2:] == "IX"
def can_convert_2_to_II(): assert convert(2) == "II"
def can_convert_1_to_I(): assert convert(1) == "I"
def can_correctly_convert_all_the_numbers(): assert convert(50) == 'L' assert convert(90) == 'XC' assert convert(100) == 'C' assert convert(110) == 'CX' assert convert(140) == 'CXL' assert convert(150) == 'CL' assert convert(190) == 'CXC' assert convert(400) == 'CD' assert convert(500) == 'D' assert convert(900) == 'CM' assert convert(1000) == 'M' assert convert(2949) == 'MMCMXLIX' assert convert(4321) == 'MMMMCCCXXI'