|
| 1 | +package ntw |
| 2 | + |
| 3 | +import ( |
| 4 | + "fmt" |
| 5 | + "testing" |
| 6 | + |
| 7 | + "github.com/stretchr/testify/assert" |
| 8 | +) |
| 9 | + |
| 10 | +func TestIntegerToUkUa(t *testing.T) { |
| 11 | + t.Parallel() |
| 12 | + |
| 13 | + tests := map[int]string{ |
| 14 | + -1: "мінус один", |
| 15 | + 0: "нуль", |
| 16 | + 1: "один", |
| 17 | + 9: "дев'ять", |
| 18 | + 10: "десять", |
| 19 | + 11: "одинадцять", |
| 20 | + 19: "дев'ятнадцять", |
| 21 | + 20: "двадцять", |
| 22 | + 21: "двадцять один", |
| 23 | + 80: "вісімдесят", |
| 24 | + 90: "дев'яносто", |
| 25 | + 99: "дев'яносто дев'ять", |
| 26 | + 100: "сто", |
| 27 | + 101: "сто один", |
| 28 | + 111: "сто одинадцять", |
| 29 | + 120: "сто двадцять", |
| 30 | + 121: "сто двадцять один", |
| 31 | + 900: "дев'ятсот", |
| 32 | + 909: "дев'ятсот дев'ять", |
| 33 | + 919: "дев'ятсот дев'ятнадцять", |
| 34 | + 990: "дев'ятсот дев'яносто", |
| 35 | + 999: "дев'ятсот дев'яносто дев'ять", |
| 36 | + 1000: "одна тисяча", |
| 37 | + 2000: "дві тисячі", |
| 38 | + 4000: "чотири тисячі", |
| 39 | + 5000: "п'ять тисяч", |
| 40 | + 11000: "одинадцять тисяч", |
| 41 | + 21000: "двадцять одна тисяча", |
| 42 | + 999000: "дев'ятсот дев'яносто дев'ять тисяч", |
| 43 | + 999999: "дев'ятсот дев'яносто дев'ять тисяч дев'ятсот дев'яносто дев'ять", |
| 44 | + 1000000: "один мільйон", |
| 45 | + 2000000: "два мільйона", |
| 46 | + 4000000: "чотири мільйона", |
| 47 | + 5000000: "п'ять мільйонів", |
| 48 | + 100100100: "сто мільйонів сто тисяч сто", |
| 49 | + 500500500: "п'ятсот мільйонів п'ятсот тисяч п'ятсот", |
| 50 | + 606606606: "шістсот шість мільйонів шістсот шість тисяч шістсот шість", |
| 51 | + 999000000: "дев'ятсот дев'яносто дев'ять мільйонів", |
| 52 | + 999000999: "дев'ятсот дев'яносто дев'ять мільйонів дев'ятсот дев'яносто дев'ять", |
| 53 | + 999999000: "дев'ятсот дев'яносто дев'ять мільйонів дев'ятсот дев'яносто дев'ять тисяч", |
| 54 | + 999999999: "дев'ятсот дев'яносто дев'ять мільйонів дев'ятсот дев'яносто дев'ять тисяч дев'ятсот дев'яносто дев'ять", |
| 55 | + 1174315110: "один мільярд сто сімдесят чотири мільйона триста п'ятнадцять тисяч сто десять", |
| 56 | + 1174315119: "один мільярд сто сімдесят чотири мільйона триста п'ятнадцять тисяч сто дев'ятнадцять", |
| 57 | + 15174315119: "п'ятнадцять мільярдів сто сімдесят чотири мільйона триста п'ятнадцять тисяч сто дев'ятнадцять", |
| 58 | + 35174315119: "тридцять п'ять мільярдів сто сімдесят чотири мільйона триста п'ятнадцять тисяч сто дев'ятнадцять", |
| 59 | + 935174315119: "дев'ятсот тридцять п'ять мільярдів сто сімдесят чотири мільйона триста п'ятнадцять тисяч сто дев'ятнадцять", |
| 60 | + 2935174315119: "два трильйона дев'ятсот тридцять п'ять мільярдів сто сімдесят чотири мільйона триста п'ятнадцять тисяч сто дев'ятнадцять", |
| 61 | + 3911760: "три мільйона дев'ятсот одинадцять тисяч сімсот шістдесят", |
| 62 | + 27: "двадцять сім", |
| 63 | + 95000001000: "дев'яносто п'ять мільярдів одна тисяча", |
| 64 | + 57482: "п'ятдесят сім тисяч чотириста вісімдесят два", |
| 65 | + 5: "п'ять", |
| 66 | + 16: "шістнадцять", |
| 67 | + 30: "тридцять", |
| 68 | + 53: "п'ятдесят три", |
| 69 | + 123: "сто двадцять три", |
| 70 | + 204: "двісті чотири", |
| 71 | + 300: "триста", |
| 72 | + 1400: "одна тисяча чотириста", |
| 73 | + 83756: "вісімдесят три тисячі сімсот п'ятдесят шість", |
| 74 | + 293111: "двісті дев'яносто три тисячі сто одинадцять", |
| 75 | + 32001950: "тридцять два мільйона одна тисяча дев'ятсот п'ятдесят", |
| 76 | + 2018: "дві тисячі вісімнадцять", |
| 77 | + 126682: "сто двадцять шість тисяч шістсот вісімдесят два", |
| 78 | + } |
| 79 | + |
| 80 | + for input, expectedOutput := range tests { |
| 81 | + name := fmt.Sprintf("%d", input) |
| 82 | + t.Run(name, func(t *testing.T) { |
| 83 | + assert.Equal(t, expectedOutput, IntegerToUkUa(input)) |
| 84 | + }) |
| 85 | + } |
| 86 | +} |
0 commit comments