diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/AbstractValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/AbstractIntegerValuesTest.groovy similarity index 52% rename from src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/AbstractValuesTest.groovy rename to src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/AbstractIntegerValuesTest.groovy index a4fc3660..5a094ce5 100644 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/AbstractValuesTest.groovy +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/AbstractIntegerValuesTest.groovy @@ -1,14 +1,12 @@ package pl.allegro.finance.tradukisto.internal.languages import pl.allegro.finance.tradukisto.internal.IntegerToStringConverter -import pl.allegro.finance.tradukisto.internal.LongToStringConverter import spock.lang.Specification import spock.lang.Unroll -abstract class AbstractValuesTest extends Specification { - abstract ValuesTestData testData +abstract class AbstractIntegerValuesTest extends Specification { + abstract IntegerValuesTestData testData abstract IntegerToStringConverter intConverter - abstract LongToStringConverter longConverter private static final OBLIGATORY_INT_VALUES = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, @@ -24,19 +22,6 @@ abstract class AbstractValuesTest extends Specification { 1_000_000_000, 2_147_483_647, ] - private static final OBLIGATORY_LONG_VALUES = [ - 5_000_000_000, - 1_000_000_000_000, - 2_000_000_000_000, - 5_000_000_000_000, - 1_000_000_000_000_000, - 2_000_000_000_000_000, - 5_000_000_000_000_000, - 1_000_000_000_000_000_000, - 2_000_000_000_000_000_000, - Long.MAX_VALUE - ] - @Unroll def "should convert integer #input to #output"() { expect: @@ -47,33 +32,17 @@ abstract class AbstractValuesTest extends Specification { output << getTestData().getIntegerTranslations().values() } - @Unroll - def "should convert long #input to #output"() { - expect: - longConverter.asWords(input) == output - - where: - input << getTestData().getLongTranslations().keySet() - output << getTestData().getLongTranslations().values() - } - - static class ValuesTestData { + static class IntegerValuesTestData { private final Map integerTranslations - private final Map longTranslations - ValuesTestData(Map integerTranslations, Map longTranslations) { + IntegerValuesTestData(Map integerTranslations) { this.integerTranslations = prepareIntegerInput(integerTranslations) - this.longTranslations = prepareLongInput(longTranslations) } Map getIntegerTranslations() { return integerTranslations } - Map getLongTranslations() { - return longTranslations - } - private static prepareIntegerInput(Map intWords) { OBLIGATORY_INT_VALUES.stream() .forEach { @@ -81,13 +50,5 @@ abstract class AbstractValuesTest extends Specification { } return intWords.sort { it.key } } - - private static prepareLongInput(Map longWords) { - OBLIGATORY_LONG_VALUES.stream() - .forEach { - longWords.putIfAbsent(it, "⚠️Please specify expected output") - } - return longWords.sort { it.key } - } } } diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/AbstractLongValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/AbstractLongValuesTest.groovy new file mode 100644 index 00000000..6594f6fc --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/AbstractLongValuesTest.groovy @@ -0,0 +1,53 @@ +package pl.allegro.finance.tradukisto.internal.languages + +import pl.allegro.finance.tradukisto.internal.LongToStringConverter +import spock.lang.Specification +import spock.lang.Unroll + +abstract class AbstractLongValuesTest extends Specification { + abstract LongValuesTestData testData + abstract LongToStringConverter longConverter + + private static final OBLIGATORY_LONG_VALUES = [ + 5_000_000_000, + 1_000_000_000_000, + 2_000_000_000_000, + 5_000_000_000_000, + 1_000_000_000_000_000, + 2_000_000_000_000_000, + 5_000_000_000_000_000, + 1_000_000_000_000_000_000, + 2_000_000_000_000_000_000, + Long.MAX_VALUE + ] + + @Unroll + def "should convert long #input to #output"() { + expect: + longConverter.asWords(input) == output + + where: + input << getTestData().getLongTranslations().keySet() + output << getTestData().getLongTranslations().values() + } + + static class LongValuesTestData { + private final Map longTranslations + + LongValuesTestData(Map longTranslations) { + this.longTranslations = prepareLongInput(longTranslations) + } + + Map getLongTranslations() { + return longTranslations + } + + private static prepareLongInput(Map longWords) { + OBLIGATORY_LONG_VALUES.stream() + .forEach { + longWords.putIfAbsent(it, "⚠️Please specify expected output") + } + return longWords.sort { it.key } + } + } +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/bulgarian/BulgarianIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/bulgarian/BulgarianIntegerValuesTest.groovy new file mode 100644 index 00000000..263057ec --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/bulgarian/BulgarianIntegerValuesTest.groovy @@ -0,0 +1,106 @@ +package pl.allegro.finance.tradukisto.internal.languages.bulgarian + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.bulgarianContainer + +class BulgarianIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = bulgarianContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "нула", + 1 : "един", + 2 : "два", + 3 : "три", + 4 : "четири", + 5 : "пет", + 6 : "шест", + 7 : "седем", + 8 : "осем", + 9 : "девет", + + 11 : "единадесет", + 12 : "дванадесет", + 13 : "тринадесет", + 14 : "четиринадесет", + 15 : "петнадесет", + 16 : "шестнадесет", + 17 : "седемнадесет", + 18 : "осемнадесет", + 19 : "деветнадесет", + + 10 : "десет", + 20 : "двадесет", + 30 : "тридесет", + 40 : "четиридесет", + 50 : "петдесет", + 60 : "шестдесет", + 70 : "седемдесет", + 80 : "осемдесет", + 90 : "деветдесет", + + 21 : "двадесет един", + 37 : "тридесет седем", + 43 : "четиридесет три", + 58 : "петдесет осем", + 69 : "шестдесет девет", + 76 : "седемдесет шест", + 82 : "осемдесет два", + 95 : "деветдесет пет", + + 100 : "сто", + 200 : "двеста", + 300 : "триста", + 400 : "четиристотин", + 500 : "петстотин", + 600 : "шестстотин", + 700 : "седемстотин", + 800 : "осемстотин", + 900 : "деветстотин", + + 111 : "сто единадесет", + 272 : "двеста седемдесет два", + 387 : "триста осемдесет седем", + 448 : "четиристотин четиридесет осем", + 569 : "петстотин шестдесет девет", + 625 : "шестстотин двадесет пет", + 782 : "седемстотин осемдесет два", + 895 : "осемстотин деветдесет пет", + 999 : "деветстотин деветдесет девет", + + 1_000 : "хиляда", + 2_000 : "две хиляди", + 3_000 : "три хиляди", + 4_000 : "четири хиляди", + 5_000 : "пет хиляди", + 7_634 : "седем хиляди шестстотин тридесет четири", + 11_000 : "единадесет хиляди", + 15_000 : "петнадесет хиляди", + 21_000 : "двадесет една хиляди", + 24_190 : "двадесет четири хиляди сто деветдесет", + 653_000 : "шестстотин петдесет три хиляди", + 123_454 : "сто двадесет три хиляди четиристотин петдесет четири", + 700_000 : "седемстотин хиляди", + 999_999 : "деветстотин деветдесет девет хиляди деветстотин деветдесет девет", + + 1_000_000 : "един милион", + 2_000_000 : "два милиона", + 5_000_000 : "пет милиона", + 23_437_219 : "двадесет три милиона четиристотин тридесет седем хиляди двеста деветнадесет", + 100_000_000 : "сто милиона", + 121_000_000 : "сто двадесет един милион", + 123_456_789 : "сто двадесет три милиона четиристотин петдесет шест хиляди седемстотин осемдесет девет", + 322_089_890 : "триста двадесет два милиона осемдесет девет хиляди осемстотин деветдесет", + + 1_000_000_000: "един милиард", + 2_147_483_647: "два милиарда сто четиридесет седем милиона четиристотин осемдесет три хиляди шестстотин четиридесет седем" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/bulgarian/BulgarianValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/bulgarian/BulgarianValuesTest.groovy deleted file mode 100644 index 1bd7625c..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/bulgarian/BulgarianValuesTest.groovy +++ /dev/null @@ -1,131 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.bulgarian - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.bulgarianContainer - -class BulgarianValuesTest extends Specification { - - static intConverter = bulgarianContainer().getIntegerConverter() - static longConverter = bulgarianContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Bulgarian"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "нула" - 1 | "един" - 2 | "два" - 3 | "три" - 4 | "четири" - 5 | "пет" - 6 | "шест" - 7 | "седем" - 8 | "осем" - 9 | "девет" - - 11 | "единадесет" - 12 | "дванадесет" - 13 | "тринадесет" - 14 | "четиринадесет" - 15 | "петнадесет" - 16 | "шестнадесет" - 17 | "седемнадесет" - 18 | "осемнадесет" - 19 | "деветнадесет" - - 10 | "десет" - 20 | "двадесет" - 30 | "тридесет" - 40 | "четиридесет" - 50 | "петдесет" - 60 | "шестдесет" - 70 | "седемдесет" - 80 | "осемдесет" - 90 | "деветдесет" - - 21 | "двадесет един" - 37 | "тридесет седем" - 43 | "четиридесет три" - 58 | "петдесет осем" - 69 | "шестдесет девет" - 76 | "седемдесет шест" - 82 | "осемдесет два" - 95 | "деветдесет пет" - - 100 | "сто" - 200 | "двеста" - 300 | "триста" - 400 | "четиристотин" - 500 | "петстотин" - 600 | "шестстотин" - 700 | "седемстотин" - 800 | "осемстотин" - 900 | "деветстотин" - - 111 | "сто единадесет" - 272 | "двеста седемдесет два" - 387 | "триста осемдесет седем" - 448 | "четиристотин четиридесет осем" - 569 | "петстотин шестдесет девет" - 625 | "шестстотин двадесет пет" - 782 | "седемстотин осемдесет два" - 895 | "осемстотин деветдесет пет" - 999 | "деветстотин деветдесет девет" - - 1_000 | "хиляда" - 2_000 | "две хиляди" - 3_000 | "три хиляди" - 4_000 | "четири хиляди" - 5_000 | "пет хиляди" - 7_634 | "седем хиляди шестстотин тридесет четири" - 11_000 | "единадесет хиляди" - 15_000 | "петнадесет хиляди" - 21_000 | "двадесет една хиляди" - 24_190 | "двадесет четири хиляди сто деветдесет" - 653_000 | "шестстотин петдесет три хиляди" - 123_454 | "сто двадесет три хиляди четиристотин петдесет четири" - 700_000 | "седемстотин хиляди" - 999_999 | "деветстотин деветдесет девет хиляди деветстотин деветдесет девет" - - 1_000_000 | "един милион" - 2_000_000 | "два милиона" - 5_000_000 | "пет милиона" - 23_437_219 | "двадесет три милиона четиристотин тридесет седем хиляди двеста деветнадесет" - 100_000_000 | "сто милиона" - 121_000_000 | "сто двадесет един милион" - 123_456_789 | "сто двадесет три милиона четиристотин петдесет шест хиляди седемстотин осемдесет девет" - 322_089_890 | "триста двадесет два милиона осемдесет девет хиляди осемстотин деветдесет" - - 1_000_000_000 | "един милиард" - 2_147_483_647 | "два милиарда сто четиридесет седем милиона четиристотин осемдесет три хиляди шестстотин четиридесет седем" - } - - @Ignore("Needs Bulgarian long converter and values for trillion, quadrillion, quintillion") - @Unroll - def "should convert long #value to '#words' in Bulgarian"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "" - - 1_000_000_000_000 | "" - 2_000_000_000_000 | "" - 5_000_000_000_000 | "" - - 1_000_000_000_000_000 | "" - 2_000_000_000_000_000 | "" - 5_000_000_000_000_000 | "" - - 1_000_000_000_000_000_000 | "" - 2_000_000_000_000_000_000 | "" - Long.MAX_VALUE | "" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/croatian/CroatianIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/croatian/CroatianIntegerValuesTest.groovy new file mode 100644 index 00000000..43adc910 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/croatian/CroatianIntegerValuesTest.groovy @@ -0,0 +1,124 @@ +package pl.allegro.finance.tradukisto.internal.languages.croatian + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.croatianContainer + +class CroatianIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = croatianContainer().integerConverter + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "nula", + 1 : "jedan", + 2 : "dva", + 3 : "tri", + 4 : "četiri", + 5 : "pet", + 6 : "šest", + 7 : "sedam", + 8 : "osam", + 9 : "devet", + + 11 : "jedanaest", + 12 : "dvanaest", + 13 : "trinaest", + 14 : "četrnaest", + 15 : "petnaest", + 16 : "šesnaest", + 17 : "sedamnaest", + 18 : "osamnaest", + 19 : "devetnaest", + + 10 : "deset", + 20 : "dvadeset", + 30 : "trideset", + 40 : "četrdeset", + 50 : "pedeset", + 60 : "šezdeset", + 70 : "sedamdeset", + 80 : "osamdeset", + 90 : "devedeset", + + 21 : "dvadeset jedan", + 37 : "trideset sedam", + 43 : "četrdeset tri", + 58 : "pedeset osam", + 69 : "šezdeset devet", + 76 : "sedamdeset šest", + 82 : "osamdeset dva", + 95 : "devedeset pet", + + 100 : "sto", + 200 : "dvjesto", + 300 : "tristo", + 400 : "četiristo", + 500 : "petsto", + 600 : "šeststo", + 700 : "sedamsto", + 800 : "osamsto", + 900 : "devetsto", + + 101 : "sto jedan", + 111 : "sto jedanaest", + 272 : "dvjesto sedamdeset dva", + 387 : "tristo osamdeset sedam", + 421 : "četiristo dvadeset jedan", + 448 : "četiristo četrdeset osam", + 569 : "petsto šezdeset devet", + 625 : "šeststo dvadeset pet", + 782 : "sedamsto osamdeset dva", + 895 : "osamsto devedeset pet", + 999 : "devetsto devedeset devet", + + 1_000 : "jedna tisuća", + 2_000 : "dvije tisuće", + 3_000 : "tri tisuće", + 4_000 : "četiri tisuće", + 5_000 : "pet tisuća", + 11_000 : "jedanaest tisuća", + 12_000 : "dvanaest tisuća", + 13_000 : "trinaest tisuća", + 14_000 : "četrnaest tisuća", + 15_000 : "petnaest tisuća", + 21_000 : "dvadeset jedna tisuća", + + 7_634 : "sedam tisuća šeststo trideset četiri", + 24_190 : "dvadeset četiri tisuće sto devedeset", + 99_999 : "devedeset devet tisuća devetsto devedeset devet", + + 111_000 : "sto jedanaest tisuća", + 112_000 : "sto dvanaest tisuća", + 113_000 : "sto trinaest tisuća", + 115_000 : "sto petnaest tisuća", + 700_000 : "sedamsto tisuća", + 653_000 : "šeststo pedeset tri tisuće", + + 123_454 : "sto dvadeset tri tisuće četiristo pedeset četiri", + 999_999 : "devetsto devedeset devet tisuća devetsto devedeset devet", + + 1_000_000 : "jedan milijun", + 2_000_000 : "dva milijuna", + 5_000_000 : "pet milijuna", + 11_437_219 : "jedanaest milijuna četiristo trideset sedam tisuća dvjesto devetnaest", + 21_437_219 : "dvadeset jedan milijun četiristo trideset sedam tisuća dvjesto devetnaest", + 22_437_219 : "dvadeset dva milijuna četiristo trideset sedam tisuća dvjesto devetnaest", + 23_437_219 : "dvadeset tri milijuna četiristo trideset sedam tisuća dvjesto devetnaest", + 100_000_000 : "sto milijuna", + 121_000_000 : "sto dvadeset jedan milijun", + 121_451_789 : "sto dvadeset jedan milijun četiristo pedeset jedna tisuća sedamsto osamdeset devet", + 123_456_789 : "sto dvadeset tri milijuna četiristo pedeset šest tisuća sedamsto osamdeset devet", + 322_089_890 : "tristo dvadeset dva milijuna osamdeset devet tisuća osamsto devedeset", + + 1_000_000_000 : "jedna milijarda", + 2_141_123_731 : "dvije milijarde sto četrdeset jedan milijun sto dvadeset tri tisuće sedamsto trideset jedan", + (Integer.MAX_VALUE): "dvije milijarde sto četrdeset sedam milijuna četiristo osamdeset tri tisuće šeststo četrdeset sedam" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/croatian/CroatianLongValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/croatian/CroatianLongValuesTest.groovy new file mode 100644 index 00000000..669961af --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/croatian/CroatianLongValuesTest.groovy @@ -0,0 +1,33 @@ +package pl.allegro.finance.tradukisto.internal.languages.croatian + +import pl.allegro.finance.tradukisto.internal.languages.AbstractLongValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.croatianContainer + +class CroatianLongValuesTest extends AbstractLongValuesTest { + + def setup() { + longConverter = croatianContainer().getLongConverter() + } + + @Override + LongValuesTestData getTestData() { + testData = new LongValuesTestData(longTranslations) + } + + private static longTranslations = [ + 5_000_000_000 : "pet milijardi", + + 1_000_000_000_000 : "jedan bilijun", + 2_000_000_000_000 : "dva bilijuna", + 5_000_000_000_000 : "pet bilijuna", + + 1_000_000_000_000_000 : "jedna bilijarda", + 2_000_000_000_000_000 : "dvije bilijarde", + 5_000_000_000_000_000 : "pet bilijardi", + + 1_000_000_000_000_000_000: "jedan trilijun", + 2_000_000_000_000_000_000: "dva trilijuna", + (Long.MAX_VALUE) : "devet trilijuna dvjesto dvadeset tri bilijarde tristo sedamdeset dva bilijuna trideset šest milijardi osamsto pedeset četiri milijuna sedamsto sedamdeset pet tisuća osamsto sedam" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/croatian/CroatianValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/croatian/CroatianValuesTest.groovy deleted file mode 100644 index 7cf747b6..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/croatian/CroatianValuesTest.groovy +++ /dev/null @@ -1,146 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.croatian - -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.croatianContainer - -class CroatianValuesTest extends Specification { - - static intConverter = croatianContainer().getIntegerConverter() - static longConverter = croatianContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Croatian"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "nula" - 1 | "jedan" - 2 | "dva" - 3 | "tri" - 4 | "četiri" - 5 | "pet" - 6 | "šest" - 7 | "sedam" - 8 | "osam" - 9 | "devet" - - 11 | "jedanaest" - 12 | "dvanaest" - 13 | "trinaest" - 14 | "četrnaest" - 15 | "petnaest" - 16 | "šesnaest" - 17 | "sedamnaest" - 18 | "osamnaest" - 19 | "devetnaest" - - 10 | "deset" - 20 | "dvadeset" - 30 | "trideset" - 40 | "četrdeset" - 50 | "pedeset" - 60 | "šezdeset" - 70 | "sedamdeset" - 80 | "osamdeset" - 90 | "devedeset" - - 21 | "dvadeset jedan" - 37 | "trideset sedam" - 43 | "četrdeset tri" - 58 | "pedeset osam" - 69 | "šezdeset devet" - 76 | "sedamdeset šest" - 82 | "osamdeset dva" - 95 | "devedeset pet" - - 100 | "sto" - 200 | "dvjesto" - 300 | "tristo" - 400 | "četiristo" - 500 | "petsto" - 600 | "šeststo" - 700 | "sedamsto" - 800 | "osamsto" - 900 | "devetsto" - - 101 | "sto jedan" - 111 | "sto jedanaest" - 272 | "dvjesto sedamdeset dva" - 387 | "tristo osamdeset sedam" - 421 | "četiristo dvadeset jedan" - 448 | "četiristo četrdeset osam" - 569 | "petsto šezdeset devet" - 625 | "šeststo dvadeset pet" - 782 | "sedamsto osamdeset dva" - 895 | "osamsto devedeset pet" - 999 | "devetsto devedeset devet" - - 1_000 | "jedna tisuća" - 2_000 | "dvije tisuće" - 3_000 | "tri tisuće" - 4_000 | "četiri tisuće" - 5_000 | "pet tisuća" - 11_000 | "jedanaest tisuća" - 12_000 | "dvanaest tisuća" - 13_000 | "trinaest tisuća" - 14_000 | "četrnaest tisuća" - 15_000 | "petnaest tisuća" - 21_000 | "dvadeset jedna tisuća" - - 7_634 | "sedam tisuća šeststo trideset četiri" - 24_190 | "dvadeset četiri tisuće sto devedeset" - 99_999 | "devedeset devet tisuća devetsto devedeset devet" - - 111_000 | "sto jedanaest tisuća" - 112_000 | "sto dvanaest tisuća" - 113_000 | "sto trinaest tisuća" - 115_000 | "sto petnaest tisuća" - 700_000 | "sedamsto tisuća" - 653_000 | "šeststo pedeset tri tisuće" - - 123_454 | "sto dvadeset tri tisuće četiristo pedeset četiri" - 999_999 | "devetsto devedeset devet tisuća devetsto devedeset devet" - - 1_000_000 | "jedan milijun" - 2_000_000 | "dva milijuna" - 5_000_000 | "pet milijuna" - 11_437_219 | "jedanaest milijuna četiristo trideset sedam tisuća dvjesto devetnaest" - 21_437_219 | "dvadeset jedan milijun četiristo trideset sedam tisuća dvjesto devetnaest" - 22_437_219 | "dvadeset dva milijuna četiristo trideset sedam tisuća dvjesto devetnaest" - 23_437_219 | "dvadeset tri milijuna četiristo trideset sedam tisuća dvjesto devetnaest" - 100_000_000 | "sto milijuna" - 121_000_000 | "sto dvadeset jedan milijun" - 121_451_789 | "sto dvadeset jedan milijun četiristo pedeset jedna tisuća sedamsto osamdeset devet" - 123_456_789 | "sto dvadeset tri milijuna četiristo pedeset šest tisuća sedamsto osamdeset devet" - - 1_000_000_000 | "jedna milijarda" - 2_141_123_731 | "dvije milijarde sto četrdeset jedan milijun sto dvadeset tri tisuće sedamsto trideset jedan" - Integer.MAX_VALUE | "dvije milijarde sto četrdeset sedam milijuna četiristo osamdeset tri tisuće šeststo četrdeset sedam" - } - - @Unroll - def "should convert long #value to '#words' in Croatian"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "pet milijardi" - - 1_000_000_000_000 | "jedan bilijun" - 2_000_000_000_000 | "dva bilijuna" - 5_000_000_000_000 | "pet bilijuna" - - 1_000_000_000_000_000 | "jedna bilijarda" - 2_000_000_000_000_000 | "dvije bilijarde" - 5_000_000_000_000_000 | "pet bilijardi" - - 1_000_000_000_000_000_000 | "jedan trilijun" - 2_000_000_000_000_000_000 | "dva trilijuna" - Long.MAX_VALUE | "devet trilijuna dvjesto dvadeset tri bilijarde tristo sedamdeset dva bilijuna trideset šest milijardi osamsto pedeset četiri milijuna sedamsto sedamdeset pet tisuća osamsto sedam" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/czech/CzechIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/czech/CzechIntegerValuesTest.groovy new file mode 100644 index 00000000..5c214837 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/czech/CzechIntegerValuesTest.groovy @@ -0,0 +1,105 @@ +package pl.allegro.finance.tradukisto.internal.languages.czech + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.czechContainer + +class CzechIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = czechContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "nula", + 1 : "jedna", + 2 : "dvě", + 3 : "tři", + 4 : "čtyři", + 5 : "pět", + 6 : "šest", + 7 : "sedm", + 8 : "osm", + 9 : "devět", + + 11 : "jedenáct", + 12 : "dvanáct", + 13 : "třináct", + 14 : "čtrnáct", + 15 : "patnáct", + 16 : "šestnáct", + 17 : "sedmnáct", + 18 : "osmnáct", + 19 : "devatenáct", + + 10 : "deset", + 20 : "dvacet", + 30 : "třicet", + 40 : "čtyřicet", + 50 : "padesát", + 60 : "šedesát", + 70 : "sedmdesát", + 80 : "osmdesát", + 90 : "devadesát", + + 21 : "dvacet jedna", + 37 : "třicet sedm", + 43 : "čtyřicet tři", + 58 : "padesát osm", + 69 : "šedesát devět", + 76 : "sedmdesát šest", + 82 : "osmdesát dva", + 95 : "devadesát pět", + + 100 : "sto", + 200 : "dvě stě", + 300 : "tři sta", + 400 : "čtyři sta", + 500 : "pět set", + 600 : "šest set", + 700 : "sedm set", + 800 : "osm set", + 900 : "devět set", + + 111 : "sto jedenáct", + 272 : "dvě stě sedmdesát dva", + 387 : "tři sta osmdesát sedm", + 448 : "čtyři sta čtyřicet osm", + 569 : "pět set šedesát devět", + 625 : "šest set dvacet pět", + 782 : "sedm set osmdesát dva", + 895 : "osm set devadesát pět", + 999 : "devět set devadesát devět", + + 1_000 : "jeden tisíc", + 2_000 : "dva tisíce", + 3_000 : "tři tisíce", + 4_000 : "čtyři tisíce", + 5_000 : "pět tisíc", + 7_634 : "sedm tisíc šest set třicet čtyři", + 11_000 : "jedenáct tisíc", + 15_000 : "patnáct tisíc", + 21_000 : "dvacet jeden tisíc", + 24_190 : "dvacet čtyři tisíc sto devadesát", + 653_000 : "šest set padesát tři tisíc", + 123_454 : "sto dvacet tři tisíc čtyři sta padesát čtyři", + 700_000 : "sedm set tisíc", + 999_999 : "devět set devadesát devět tisíc devět set devadesát devět", + + 1_000_000 : "jeden milion", + 2_000_000 : "dva miliony", + 5_000_000 : "pět milionů", + 23_437_219 : "dvacet tři milionů čtyři sta třicet sedm tisíc dvě stě devatenáct", + 100_000_000 : "sto milionů", + 123_456_789 : "sto dvacet tři milionů čtyři sta padesát šest tisíc sedm set osmdesát devět", + 322_089_890 : "tři sta dvacet dva milionů osmdesát devět tisíc osm set devadesát", + + 1_000_000_000: "jedna miliarda", + 2_147_483_647: "dvě miliardy sto čtyřicet sedm milionů čtyři sta osmdesát tři tisíc šest set čtyřicet sedm" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/czech/CzechValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/czech/CzechValuesTest.groovy deleted file mode 100644 index 93e5be5a..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/czech/CzechValuesTest.groovy +++ /dev/null @@ -1,130 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.czech - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.czechContainer - -class CzechValuesTest extends Specification { - - static intConverter = czechContainer().getIntegerConverter() - static longConverter = czechContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Czech"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "nula" - 1 | "jedna" - 2 | "dvě" - 3 | "tři" - 4 | "čtyři" - 5 | "pět" - 6 | "šest" - 7 | "sedm" - 8 | "osm" - 9 | "devět" - - 11 | "jedenáct" - 12 | "dvanáct" - 13 | "třináct" - 14 | "čtrnáct" - 15 | "patnáct" - 16 | "šestnáct" - 17 | "sedmnáct" - 18 | "osmnáct" - 19 | "devatenáct" - - 10 | "deset" - 20 | "dvacet" - 30 | "třicet" - 40 | "čtyřicet" - 50 | "padesát" - 60 | "šedesát" - 70 | "sedmdesát" - 80 | "osmdesát" - 90 | "devadesát" - - 21 | "dvacet jedna" - 37 | "třicet sedm" - 43 | "čtyřicet tři" - 58 | "padesát osm" - 69 | "šedesát devět" - 76 | "sedmdesát šest" - 82 | "osmdesát dva" - 95 | "devadesát pět" - - 100 | "sto" - 200 | "dvě stě" - 300 | "tři sta" - 400 | "čtyři sta" - 500 | "pět set" - 600 | "šest set" - 700 | "sedm set" - 800 | "osm set" - 900 | "devět set" - - 111 | "sto jedenáct" - 272 | "dvě stě sedmdesát dva" - 387 | "tři sta osmdesát sedm" - 448 | "čtyři sta čtyřicet osm" - 569 | "pět set šedesát devět" - 625 | "šest set dvacet pět" - 782 | "sedm set osmdesát dva" - 895 | "osm set devadesát pět" - 999 | "devět set devadesát devět" - - 1_000 | "jeden tisíc" - 2_000 | "dva tisíce" - 3_000 | "tři tisíce" - 4_000 | "čtyři tisíce" - 5_000 | "pět tisíc" - 7_634 | "sedm tisíc šest set třicet čtyři" - 11_000 | "jedenáct tisíc" - 15_000 | "patnáct tisíc" - 21_000 | "dvacet jeden tisíc" - 24_190 | "dvacet čtyři tisíc sto devadesát" - 653_000 | "šest set padesát tři tisíc" - 123_454 | "sto dvacet tři tisíc čtyři sta padesát čtyři" - 700_000 | "sedm set tisíc" - 999_999 | "devět set devadesát devět tisíc devět set devadesát devět" - - 1_000_000 | "jeden milion" - 2_000_000 | "dva miliony" - 5_000_000 | "pět milionů" - 23_437_219 | "dvacet tři milionů čtyři sta třicet sedm tisíc dvě stě devatenáct" - 100_000_000 | "sto milionů" - 123_456_789 | "sto dvacet tři milionů čtyři sta padesát šest tisíc sedm set osmdesát devět" - 322_089_890 | "tři sta dvacet dva milionů osmdesát devět tisíc osm set devadesát" - - 1_000_000_000 | "jedna miliarda" - 2_147_483_647 | "dvě miliardy sto čtyřicet sedm milionů čtyři sta osmdesát tři tisíc šest set čtyřicet sedm" - } - - @Ignore("Needs Czech long converter and values for trillion, quadrillion, quintillion") - @Unroll - def "should convert long #value to '#words' in Czech"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "" - - 1_000_000_000_000 | "" - 2_000_000_000_000 | "" - 5_000_000_000_000 | "" - - 1_000_000_000_000_000 | "" - 2_000_000_000_000_000 | "" - 5_000_000_000_000_000 | "" - - 1_000_000_000_000_000_000 | "" - 2_000_000_000_000_000_000 | "" - Long.MAX_VALUE | "" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/dutch/DutchIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/dutch/DutchIntegerValuesTest.groovy new file mode 100644 index 00000000..c4ad0ebd --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/dutch/DutchIntegerValuesTest.groovy @@ -0,0 +1,109 @@ +package pl.allegro.finance.tradukisto.internal.languages.dutch + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.dutchContainer + +class DutchIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = dutchContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "nul", + 1 : "één", + 2 : "twee", + 3 : "drie", + 4 : "vier", + 5 : "vijf", + 6 : "zes", + 7 : "zeven", + 8 : "acht", + 9 : "negen", + + 11 : "elf", + 12 : "twaalf", + 13 : "dertien", + 14 : "veertien", + 15 : "vijftien", + 16 : "zestien", + 17 : "zeventien", + 18 : "achttien", + 19 : "negentien", + + 10 : "tien", + 20 : "twintig", + 30 : "dertig", + 40 : "veertig", + 50 : "vijftig", + 60 : "zestig", + 70 : "zeventig", + 80 : "tachtig", + 90 : "negentig", + + 21 : "éénentwintig", + 37 : "zevenendertig", + 43 : "drieënveertig", + 58 : "achtenvijftig", + 62 : "tweeënzestig", + 69 : "negenenzestig", + 76 : "zesenzeventig", + 82 : "tweeëntachtig", + 95 : "vijfennegentig", + + 100 : "honderd", + 200 : "tweehonderd", + 300 : "driehonderd", + 400 : "vierhonderd", + 500 : "vijfhonderd", + 600 : "zeshonderd", + 700 : "zevenhonderd", + 800 : "achthonderd", + 900 : "negenhonderd", + + 111 : "honderdelf", + 272 : "tweehonderdtweeënzeventig", + 387 : "driehonderdzevenentachtig", + 448 : "vierhonderdachtenveertig", + 569 : "vijfhonderdnegenenzestig", + 625 : "zeshonderdvijfentwintig", + 782 : "zevenhonderdtweeëntachtig", + 895 : "achthonderdvijfennegentig", + 999 : "negenhonderdnegenennegentig", + + 1000 : "duizend", + 1001 : "duizendéén", + 2000 : "tweeduizend", + 3000 : "drieduizend", + 4000 : "vierduizend", + 5000 : "vijfduizend", + 7634 : "zevenduizendzeshonderdvierendertig", + + 11000 : "elfduizend", + 15000 : "vijftienduizend", + 21000 : "éénentwintigduizend", + 24190 : "vierentwintigduizendhonderdnegentig", + 24191 : "vierentwintigduizendhonderdéénennegentig", + 653000 : "zeshonderddrieënvijftigduizend", + 123454 : "honderddrieëntwintigduizendvierhonderdvierenvijftig", + 700000 : "zevenhonderdduizend", + 999999 : "negenhonderdnegenennegentigduizendnegenhonderdnegenennegentig", + + 1000000 : "één miljoen", + 2000000 : "twee miljoen", + 5000000 : "vijf miljoen", + 23437219 : "drieëntwintig miljoen vierhonderdzevenendertigduizendtweehonderdnegentien", + 100000000 : "honderd miljoen", + 123456789 : "honderddrieëntwintig miljoen vierhonderdzesenvijftigduizendzevenhonderdnegenentachtig", + 322089890 : "driehonderdtweeëntwintig miljoen negenentachtigduizendachthonderdnegentig", + + 1000000000: "één miljard", + 2147483647: "twee miljard honderdzevenenveertig miljoen vierhonderddrieëntachtigduizendzeshonderdzevenenveertig" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/dutch/DutchLongValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/dutch/DutchLongValuesTest.groovy new file mode 100644 index 00000000..ca48bf61 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/dutch/DutchLongValuesTest.groovy @@ -0,0 +1,36 @@ +package pl.allegro.finance.tradukisto.internal.languages.dutch + +import pl.allegro.finance.tradukisto.internal.languages.AbstractLongValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.dutchContainer +import static pl.allegro.finance.tradukisto.internal.Container.polishContainer + +class DutchLongValuesTest extends AbstractLongValuesTest { + + def setup() { + longConverter = dutchContainer().getLongConverter() + } + + @Override + LongValuesTestData getTestData() { + testData = new LongValuesTestData(longTranslations) + } + + private static longTranslations = [ + 5_000_000_000 : "vijf miljard", + + 1_000_000_000_000 : "één biljoen", + 2_000_000_000_000 : "twee biljoen", + 5_000_000_000_000 : "vijf biljoen", + + 1_000_000_000_000_000 : "één biljard", + 2_000_000_000_000_000 : "twee biljard", + 5_000_000_000_000_000 : "vijf biljard", + + 1_000_000_000_000_000_000 : "één triljoen", + 2_000_000_000_000_000_000 : "twee triljoen", + (Long.MAX_VALUE) : "negen triljoen tweehonderddrieëntwintig biljard " + + "driehonderdtweeënzeventig biljoen zesendertig miljard " + + "achthonderdvierenvijftig miljoen zevenhonderdvijfenzeventigduizendachthonderdzeven" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/dutch/DutchValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/dutch/DutchValuesTest.groovy deleted file mode 100644 index 66a8762e..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/dutch/DutchValuesTest.groovy +++ /dev/null @@ -1,135 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.dutch - - -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.dutchContainer - -class DutchValuesTest extends Specification { - - static intConverter = dutchContainer().getIntegerConverter() - static longConverter = dutchContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Dutch"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "nul" - 1 | "één" - 2 | "twee" - 3 | "drie" - 4 | "vier" - 5 | "vijf" - 6 | "zes" - 7 | "zeven" - 8 | "acht" - 9 | "negen" - - 11 | "elf" - 12 | "twaalf" - 13 | "dertien" - 14 | "veertien" - 15 | "vijftien" - 16 | "zestien" - 17 | "zeventien" - 18 | "achttien" - 19 | "negentien" - - 10 | "tien" - 20 | "twintig" - 30 | "dertig" - 40 | "veertig" - 50 | "vijftig" - 60 | "zestig" - 70 | "zeventig" - 80 | "tachtig" - 90 | "negentig" - - 21 | "éénentwintig" - 37 | "zevenendertig" - 43 | "drieënveertig" - 58 | "achtenvijftig" - 62 | "tweeënzestig" - 69 | "negenenzestig" - 76 | "zesenzeventig" - 82 | "tweeëntachtig" - 95 | "vijfennegentig" - - 100 | "honderd" - 200 | "tweehonderd" - 300 | "driehonderd" - 400 | "vierhonderd" - 500 | "vijfhonderd" - 600 | "zeshonderd" - 700 | "zevenhonderd" - 800 | "achthonderd" - 900 | "negenhonderd" - - 111 | "honderdelf" - 272 | "tweehonderdtweeënzeventig" - 387 | "driehonderdzevenentachtig" - 448 | "vierhonderdachtenveertig" - 569 | "vijfhonderdnegenenzestig" - 625 | "zeshonderdvijfentwintig" - 782 | "zevenhonderdtweeëntachtig" - 895 | "achthonderdvijfennegentig" - 999 | "negenhonderdnegenennegentig" - - 1000 | "duizend" - 1001 | "duizendéén" - 2000 | "tweeduizend" - 3000 | "drieduizend" - 4000 | "vierduizend" - 5000 | "vijfduizend" - 7634 | "zevenduizendzeshonderdvierendertig" - - 11000 | "elfduizend" - 15000 | "vijftienduizend" - 21000 | "éénentwintigduizend" - 24190 | "vierentwintigduizendhonderdnegentig" - 24191 | "vierentwintigduizendhonderdéénennegentig" - 653000 | "zeshonderddrieënvijftigduizend" - 123454 | "honderddrieëntwintigduizendvierhonderdvierenvijftig" - 700000 | "zevenhonderdduizend" - 999999 | "negenhonderdnegenennegentigduizendnegenhonderdnegenennegentig" - - 1000000 | "één miljoen" - 2000000 | "twee miljoen" - 5000000 | "vijf miljoen" - 23437219 | "drieëntwintig miljoen vierhonderdzevenendertigduizendtweehonderdnegentien" - 100000000 | "honderd miljoen" - 123456789 | "honderddrieëntwintig miljoen vierhonderdzesenvijftigduizendzevenhonderdnegenentachtig" - 322089890 | "driehonderdtweeëntwintig miljoen negenentachtigduizendachthonderdnegentig" - - 1000000000 | "één miljard" - 2147483647 | "twee miljard honderdzevenenveertig miljoen vierhonderddrieëntachtigduizendzeshonderdzevenenveertig" - } - - @Unroll - def "should convert long #value to '#words' in Dutch"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "vijf miljard" - - 1_000_000_000_000 | "één biljoen" - 2_000_000_000_000 | "twee biljoen" - 5_000_000_000_000 | "vijf biljoen" - - 1_000_000_000_000_000 | "één biljard" - 2_000_000_000_000_000 | "twee biljard" - 5_000_000_000_000_000 | "vijf biljard" - - 1_000_000_000_000_000_000 | "één triljoen" - 2_000_000_000_000_000_000 | "twee triljoen" - Long.MAX_VALUE | "negen triljoen tweehonderddrieëntwintig biljard " + - "driehonderdtweeënzeventig biljoen zesendertig miljard " + - "achthonderdvierenvijftig miljoen zevenhonderdvijfenzeventigduizendachthonderdzeven" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/english/EnglishValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/english/EnglishIntegerValuesTest.groovy similarity index 78% rename from src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/english/EnglishValuesTest.groovy rename to src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/english/EnglishIntegerValuesTest.groovy index 6a6a112a..bb76585f 100644 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/english/EnglishValuesTest.groovy +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/english/EnglishIntegerValuesTest.groovy @@ -1,22 +1,18 @@ package pl.allegro.finance.tradukisto.internal.languages.english -import pl.allegro.finance.tradukisto.internal.languages.AbstractValuesTest +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest import static pl.allegro.finance.tradukisto.internal.Container.englishContainer -class EnglishValuesTest extends AbstractValuesTest { +class EnglishIntegerValuesTest extends AbstractIntegerValuesTest { def setup() { intConverter = englishContainer().integerConverter - longConverter = englishContainer().longConverter } @Override - ValuesTestData getTestData() { - testData = new ValuesTestData( - integerTranslations, - longTranslations - ) + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) } private static integerTranslations = [ @@ -107,23 +103,4 @@ class EnglishValuesTest extends AbstractValuesTest { 2_147_483_647: "two billion one hundred forty-seven million four hundred eighty-three thousand six hundred " + "forty-seven" ] - - private static longTranslations = [ - 5_000_000_000 : "five billion", - - 1_000_000_000_000 : "one trillion", - 2_000_000_000_000 : "two trillion", - 5_000_000_000_000 : "five trillion", - - 1_000_000_000_000_000 : "one quadrillion", - 2_000_000_000_000_000 : "two quadrillion", - 5_000_000_000_000_000 : "five quadrillion", - - 1_000_000_000_000_000_000: "one quintillion", - 2_000_000_000_000_000_000: "two quintillion", - (Long.MAX_VALUE) : "nine quintillion two hundred twenty-three quadrillion " + - "three hundred seventy-two trillion thirty-six billion " + - "eight hundred fifty-four million seven hundred seventy-five thousand " + - "eight hundred seven" - ] } diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/english/EnglishLongValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/english/EnglishLongValuesTest.groovy new file mode 100644 index 00000000..3370beb5 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/english/EnglishLongValuesTest.groovy @@ -0,0 +1,36 @@ +package pl.allegro.finance.tradukisto.internal.languages.english + +import pl.allegro.finance.tradukisto.internal.languages.AbstractLongValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.englishContainer + +class EnglishLongValuesTest extends AbstractLongValuesTest { + + def setup() { + longConverter = englishContainer().longConverter + } + + @Override + LongValuesTestData getTestData() { + testData = new LongValuesTestData(longTranslations) + } + + private static longTranslations = [ + 5_000_000_000 : "five billion", + + 1_000_000_000_000 : "one trillion", + 2_000_000_000_000 : "two trillion", + 5_000_000_000_000 : "five trillion", + + 1_000_000_000_000_000 : "one quadrillion", + 2_000_000_000_000_000 : "two quadrillion", + 5_000_000_000_000_000 : "five quadrillion", + + 1_000_000_000_000_000_000: "one quintillion", + 2_000_000_000_000_000_000: "two quintillion", + (Long.MAX_VALUE) : "nine quintillion two hundred twenty-three quadrillion " + + "three hundred seventy-two trillion thirty-six billion " + + "eight hundred fifty-four million seven hundred seventy-five thousand " + + "eight hundred seven" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/french/FrenchIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/french/FrenchIntegerValuesTest.groovy new file mode 100644 index 00000000..7fc23627 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/french/FrenchIntegerValuesTest.groovy @@ -0,0 +1,112 @@ +package pl.allegro.finance.tradukisto.internal.languages.french + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.frenchContainer + +class FrenchIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = frenchContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "zéro", + 1 : "un", + 2 : "deux", + 3 : "trois", + 4 : "quatre", + 5 : "cinq", + 6 : "six", + 7 : "sept", + 8 : "huit", + 9 : "neuf", + + 11 : "onze", + 12 : "douze", + 13 : "treize", + 14 : "quatorze", + 15 : "quinze", + 16 : "seize", + 17 : "dix-sept", + 18 : "dix-huit", + 19 : "dix-neuf", + + 10 : "dix", + 20 : "vingt", + 30 : "trente", + 40 : "quarante", + 50 : "cinquante", + 60 : "soixante", + 70 : "soixante-dix", + 80 : "quatre-vingts", + 90 : "quatre-vingt-dix", + + 21 : "vingt-et-un", + 22 : "vingt-deux", + 31 : "trente-et-un", + 32 : "trente-deux", + 37 : "trente-sept", + 41 : "quarante-et-un", + 43 : "quarante-trois", + 51 : "cinquante-et-un", + 58 : "cinquante-huit", + 61 : "soixante-et-un", + 69 : "soixante-neuf", + 76 : "soixante-seize", + 82 : "quatre-vingt-deux", + 95 : "quatre-vingt-quinze", + + 100 : "cent", + 200 : "deux cents", + 300 : "trois cents", + 400 : "quatre cents", + 500 : "cinq cents", + 600 : "six cents", + 700 : "sept cents", + 800 : "huit cents", + 900 : "neuf cents", + + 111 : "cent onze", + 272 : "deux cent soixante-douze", + 387 : "trois cent quatre-vingt-sept", + 448 : "quatre cent quarante-huit", + 569 : "cinq cent soixante-neuf", + 625 : "six cent vingt-cinq", + 782 : "sept cent quatre-vingt-deux", + 895 : "huit cent quatre-vingt-quinze", + 999 : "neuf cent quatre-vingt-dix-neuf", + + 1_000 : "mille", + 2_000 : "deux mille", + 3_000 : "trois mille", + 4_000 : "quatre mille", + 5_000 : "cinq mille", + 7_634 : "sept mille six cent trente-quatre", + 11_000 : "onze mille", + 15_000 : "quinze mille", + 21_000 : "vingt-et-un mille", + 24_190 : "vingt-quatre mille cent quatre-vingt-dix", + 653_000 : "six cent cinquante-trois mille", + 123_454 : "cent vingt-trois mille quatre cent cinquante-quatre", + 700_000 : "sept cents mille", + 999_999 : "neuf cent quatre-vingt-dix-neuf mille neuf cent quatre-vingt-dix-neuf", + + 1_000_000 : "un million", + 2_000_000 : "deux millions", + 5_000_000 : "cinq millions", + 23_437_219 : "vingt-trois millions quatre cent trente-sept mille deux cent dix-neuf", + 100_000_000 : "cent millions", + 123_456_789 : "cent vingt-trois millions quatre cent cinquante-six mille sept cent quatre-vingt-neuf", + 322_089_890 : "trois cent vingt-deux millions quatre-vingt-neuf mille huit cent quatre-vingt-dix", + + 1_000_000_000: "un milliard", + 2_147_483_647: "deux milliards cent quarante-sept millions quatre cent quatre-vingt-trois mille six cent " + + "quarante-sept" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/french/FrenchValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/french/FrenchValuesTest.groovy deleted file mode 100644 index fe4caadc..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/french/FrenchValuesTest.groovy +++ /dev/null @@ -1,137 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.french - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.frenchContainer - -class FrenchValuesTest extends Specification { - - static intConverter = frenchContainer().getIntegerConverter() - static longConverter = frenchContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in French"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "zéro" - 1 | "un" - 2 | "deux" - 3 | "trois" - 4 | "quatre" - 5 | "cinq" - 6 | "six" - 7 | "sept" - 8 | "huit" - 9 | "neuf" - - 11 | "onze" - 12 | "douze" - 13 | "treize" - 14 | "quatorze" - 15 | "quinze" - 16 | "seize" - 17 | "dix-sept" - 18 | "dix-huit" - 19 | "dix-neuf" - - 10 | "dix" - 20 | "vingt" - 30 | "trente" - 40 | "quarante" - 50 | "cinquante" - 60 | "soixante" - 70 | "soixante-dix" - 80 | "quatre-vingts" - 90 | "quatre-vingt-dix" - - 21 | "vingt-et-un" - 22 | "vingt-deux" - 31 | "trente-et-un" - 32 | "trente-deux" - 37 | "trente-sept" - 41 | "quarante-et-un" - 43 | "quarante-trois" - 51 | "cinquante-et-un" - 58 | "cinquante-huit" - 61 | "soixante-et-un" - 69 | "soixante-neuf" - 76 | "soixante-seize" - 82 | "quatre-vingt-deux" - 95 | "quatre-vingt-quinze" - - 100 | "cent" - 200 | "deux cents" - 300 | "trois cents" - 400 | "quatre cents" - 500 | "cinq cents" - 600 | "six cents" - 700 | "sept cents" - 800 | "huit cents" - 900 | "neuf cents" - - 111 | "cent onze" - 272 | "deux cent soixante-douze" - 387 | "trois cent quatre-vingt-sept" - 448 | "quatre cent quarante-huit" - 569 | "cinq cent soixante-neuf" - 625 | "six cent vingt-cinq" - 782 | "sept cent quatre-vingt-deux" - 895 | "huit cent quatre-vingt-quinze" - 999 | "neuf cent quatre-vingt-dix-neuf" - - 1_000 | "mille" - 2_000 | "deux mille" - 3_000 | "trois mille" - 4_000 | "quatre mille" - 5_000 | "cinq mille" - 7_634 | "sept mille six cent trente-quatre" - 11_000 | "onze mille" - 15_000 | "quinze mille" - 21_000 | "vingt-et-un mille" - 24_190 | "vingt-quatre mille cent quatre-vingt-dix" - 653_000 | "six cent cinquante-trois mille" - 123_454 | "cent vingt-trois mille quatre cent cinquante-quatre" - 700_000 | "sept cents mille" - 999_999 | "neuf cent quatre-vingt-dix-neuf mille neuf cent quatre-vingt-dix-neuf" - - 1_000_000 | "un million" - 2_000_000 | "deux millions" - 5_000_000 | "cinq millions" - 23_437_219 | "vingt-trois millions quatre cent trente-sept mille deux cent dix-neuf" - 100_000_000 | "cent millions" - 123_456_789 | "cent vingt-trois millions quatre cent cinquante-six mille sept cent quatre-vingt-neuf" - 322_089_890 | "trois cent vingt-deux millions quatre-vingt-neuf mille huit cent quatre-vingt-dix" - - 1_000_000_000 | "un milliard" - 2_147_483_647 | "deux milliards cent quarante-sept millions quatre cent quatre-vingt-trois mille six cent " + - "quarante-sept" - } - - @Ignore("Needs French long converter and values for trillion, quadrillion, quintillion") - @Unroll - def "should convert long #value to '#words' in French"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "" - - 1_000_000_000_000 | "" - 2_000_000_000_000 | "" - 5_000_000_000_000 | "" - - 1_000_000_000_000_000 | "" - 2_000_000_000_000_000 | "" - 5_000_000_000_000_000 | "" - - 1_000_000_000_000_000_000 | "" - 2_000_000_000_000_000_000 | "" - Long.MAX_VALUE | "" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/german/GermanIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/german/GermanIntegerValuesTest.groovy new file mode 100644 index 00000000..f48b9315 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/german/GermanIntegerValuesTest.groovy @@ -0,0 +1,106 @@ +package pl.allegro.finance.tradukisto.internal.languages.german + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.germanContainer + +class GermanIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = germanContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "null", + 1 : "eins", + 2 : "zwei", + 3 : "drei", + 4 : "vier", + 5 : "fünf", + 6 : "sechs", + 7 : "sieben", + 8 : "acht", + 9 : "neun", + + 11 : "elf", + 12 : "zwölf", + 13 : "dreizehn", + 14 : "vierzehn", + 15 : "fünfzehn", + 16 : "sechzehn", + 17 : "siebzehn", + 18 : "achtzehn", + 19 : "neunzehn", + + 10 : "zehn", + 20 : "zwanzig", + 30 : "dreißig", + 40 : "vierzig", + 50 : "fünfzig", + 60 : "sechzig", + 70 : "siebzig", + 80 : "achtzig", + 90 : "neunzig", + + 21 : "einundzwanzig", + 37 : "siebenunddreißig", + 43 : "dreiundvierzig", + 58 : "achtundfünfzig", + 69 : "neunundsechzig", + 76 : "sechsundsiebzig", + 82 : "zweiundachtzig", + 95 : "fünfundneunzig", + + 100 : "einhundert", + 200 : "zweihundert", + 300 : "dreihundert", + 400 : "vierhundert", + 500 : "fünfhundert", + 600 : "sechshundert", + 700 : "siebenhundert", + 800 : "achthundert", + 900 : "neunhundert", + + 111 : "einhundertelf", + 272 : "zweihundertzweiundsiebzig", + 387 : "dreihundertsiebenundachtzig", + 448 : "vierhundertachtundvierzig", + 569 : "fünfhundertneunundsechzig", + 625 : "sechshundertfünfundzwanzig", + 782 : "siebenhundertzweiundachtzig", + 895 : "achthundertfünfundneunzig", + 999 : "neunhundertneunundneunzig", + + 1000 : "eintausend", + 2000 : "zweitausend", + 3000 : "dreitausend", + 4000 : "viertausend", + 5000 : "fünftausend", + 7634 : "siebentausendsechshundertvierunddreißig", + + 11000 : "elftausend", + 15000 : "fünfzehntausend", + 21000 : "einundzwanzigtausend", + 24190 : "vierundzwanzigtausendeinhundertneunzig", + 653000 : "sechshundertdreiundfünfzigtausend", + 123454 : "einhundertdreiundzwanzigtausendvierhundertvierundfünfzig", + 700000 : "siebenhunderttausend", + 999999 : "neunhundertneunundneunzigtausendneunhundertneunundneunzig", + + 1000000 : "eine Million", + 2000000 : "zwei Millionen", + 5000000 : "fünf Millionen", + 23437219 : "dreiundzwanzig Millionen vierhundertsiebenunddreißigtausendzweihundertneunzehn", + 100000000 : "einhundert Millionen", + 123456789 : "einhundertdreiundzwanzig Millionen vierhundertsechsundfünfzigtausendsiebenhundertneunundachtzig", + 322089890 : "dreihundertzweiundzwanzig Millionen neunundachtzigtausendachthundertneunzig", + + 1000000000: "eine Milliarde", + 2147483647: "zwei Milliarden einhundertsiebenundvierzig Millionen vierhundertdreiundachtzigtausendsechshundertsiebenundvierzig" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/german/GermanValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/german/GermanValuesTest.groovy deleted file mode 100644 index 1500fecb..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/german/GermanValuesTest.groovy +++ /dev/null @@ -1,131 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.german - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.germanContainer - -class GermanValuesTest extends Specification { - - static intConverter = germanContainer().getIntegerConverter() - static longConverter = germanContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in German"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "null" - 1 | "eins" - 2 | "zwei" - 3 | "drei" - 4 | "vier" - 5 | "fünf" - 6 | "sechs" - 7 | "sieben" - 8 | "acht" - 9 | "neun" - - 11 | "elf" - 12 | "zwölf" - 13 | "dreizehn" - 14 | "vierzehn" - 15 | "fünfzehn" - 16 | "sechzehn" - 17 | "siebzehn" - 18 | "achtzehn" - 19 | "neunzehn" - - 10 | "zehn" - 20 | "zwanzig" - 30 | "dreißig" - 40 | "vierzig" - 50 | "fünfzig" - 60 | "sechzig" - 70 | "siebzig" - 80 | "achtzig" - 90 | "neunzig" - - 21 | "einundzwanzig" - 37 | "siebenunddreißig" - 43 | "dreiundvierzig" - 58 | "achtundfünfzig" - 69 | "neunundsechzig" - 76 | "sechsundsiebzig" - 82 | "zweiundachtzig" - 95 | "fünfundneunzig" - - 100 | "einhundert" - 200 | "zweihundert" - 300 | "dreihundert" - 400 | "vierhundert" - 500 | "fünfhundert" - 600 | "sechshundert" - 700 | "siebenhundert" - 800 | "achthundert" - 900 | "neunhundert" - - 111 | "einhundertelf" - 272 | "zweihundertzweiundsiebzig" - 387 | "dreihundertsiebenundachtzig" - 448 | "vierhundertachtundvierzig" - 569 | "fünfhundertneunundsechzig" - 625 | "sechshundertfünfundzwanzig" - 782 | "siebenhundertzweiundachtzig" - 895 | "achthundertfünfundneunzig" - 999 | "neunhundertneunundneunzig" - - 1000 | "eintausend" - 2000 | "zweitausend" - 3000 | "dreitausend" - 4000 | "viertausend" - 5000 | "fünftausend" - 7634 | "siebentausendsechshundertvierunddreißig" - - 11000 | "elftausend" - 15000 | "fünfzehntausend" - 21000 | "einundzwanzigtausend" - 24190 | "vierundzwanzigtausendeinhundertneunzig" - 653000 | "sechshundertdreiundfünfzigtausend" - 123454 | "einhundertdreiundzwanzigtausendvierhundertvierundfünfzig" - 700000 | "siebenhunderttausend" - 999999 | "neunhundertneunundneunzigtausendneunhundertneunundneunzig" - - 1000000 | "eine Million" - 2000000 | "zwei Millionen" - 5000000 | "fünf Millionen" - 23437219 | "dreiundzwanzig Millionen vierhundertsiebenunddreißigtausendzweihundertneunzehn" - 100000000 | "einhundert Millionen" - 123456789 | "einhundertdreiundzwanzig Millionen vierhundertsechsundfünfzigtausendsiebenhundertneunundachtzig" - 322089890 | "dreihundertzweiundzwanzig Millionen neunundachtzigtausendachthundertneunzig" - - 1000000000 | "eine Milliarde" - 2147483647 | "zwei Milliarden einhundertsiebenundvierzig Millionen vierhundertdreiundachtzigtausendsechshundertsiebenundvierzig" - } - - @Ignore("Needs German long converter and values for trillion, quadrillion, quintillion") - @Unroll - def "should convert long #value to '#words' in German"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "" - - 1_000_000_000_000 | "" - 2_000_000_000_000 | "" - 5_000_000_000_000 | "" - - 1_000_000_000_000_000 | "" - 2_000_000_000_000_000 | "" - 5_000_000_000_000_000 | "" - - 1_000_000_000_000_000_000 | "" - 2_000_000_000_000_000_000 | "" - Long.MAX_VALUE | "" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/hindi/HindiIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/hindi/HindiIntegerValuesTest.groovy new file mode 100644 index 00000000..2db0d5cc --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/hindi/HindiIntegerValuesTest.groovy @@ -0,0 +1,111 @@ +package pl.allegro.finance.tradukisto.internal.languages.hindi + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.hindiContainer + +class HindiIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = hindiContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "शून्य", + 1 : "एक", + 2 : "दो", + 3 : "तीन", + 4 : "चार", + 5 : "पाँच", + 6 : "छ:", + 7 : "सात", + 8 : "आठ", + 9 : "नौ", + + 11 : "ग्यारह", + 12 : "बारह", + 13 : "तेरह", + 14 : "चौदह", + 15 : "पंद्रह", + 16 : "सोलह", + 17 : "सत्रह", + 18 : "आट्ठारह", + 19 : "उन्नीस", + + 10 : "दस", + 20 : "बीस", + 30 : "तीस", + 40 : "चालीस", + 50 : "पचास", + 60 : "साठ", + 70 : "सत्तर", + 80 : "असी", + 90 : "नब्बे", + + 21 : "इक्कीस", + 37 : "सैंतीस", + 43 : "तैंतालीस", + 58 : "अट्ठावन", + 69 : "उनहत्तर", + 76 : "छीहत्तर", + 82 : "बयासी", + 95 : "पचानवे", + + 100 : "एक सौ", + 200 : "दो सौ", + 300 : "तीन सौ", + 400 : "चार सौ", + 500 : "पाँच सौ", + 600 : "छ: सौ", + 700 : "सात सौ", + 800 : "आठ सौ", + 900 : "नौ सौ", + + 111 : "एक सौ ग्यारह", + 272 : "दो सौ बहत्तर", + 387 : "तीन सौ सतासी", + 448 : "चार सौ अड़तालीस", + 569 : "पाँच सौ उनहत्तर", + 625 : "छ: सौ पच्चीस", + 782 : "सात सौ बयासी", + 895 : "आठ सौ पचानवे", + 999 : "नौ सौ निन्यानवे", + + 1000 : "एक हजार", + 1234 : "एक हजार दो सौ चौंतीस", + 2000 : "दो हजार", + 3000 : "तीन हजार", + 4000 : "चार हजार", + 5000 : "पाँच हजार", + 7634 : "सात हजार छ: सौ चौंतीस", + + 11000 : "ग्यारह हजार", + 15000 : "पंद्रह हजार", + 21000 : "इक्कीस हजार", + 24190 : "चौबीस हजार एक सौ नब्बे", + 653000 : "छ: लाख तिरपन हजार", + 123454 : "एक लाख तेईस हजार चार सौ चौवन", + 700000 : "सात लाख", + 999999 : "नौ लाख निन्यानवे हजार नौ सौ निन्यानवे", + + 1000000 : "दस लाख", + 1001234 : "दस लाख एक हजार दो सौ चौंतीस", + 2000000 : "बीस लाख", + 5000000 : "पचास लाख", + 5012000 : "पचास लाख बारह हजार", + 23437219 : "दो करोड़ चौंतीस लाख सैंतीस हजार दो सौ उन्नीस", + 100000000 : "दस करोड़", + 100001200 : "दस करोड़ एक हजार दो सौ", + 123456789 : "बारह करोड़ चौंतीस लाख छप्पन हजार सात सौ नवासी", + 322089890 : "बत्तीस करोड़ बीस लाख नवासी हजार आठ सौ नब्बे", + + 1000000000: "एक अरब", + 1000001234: "एक अरब एक हजार दो सौ चौंतीस", + 2147483647: "दो अरब चौदह करोड़ चौहत्तर लाख तिरासी हजार छ: सौ सैंतालीस" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/hindi/HindiLongValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/hindi/HindiLongValuesTest.groovy new file mode 100644 index 00000000..7a367b00 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/hindi/HindiLongValuesTest.groovy @@ -0,0 +1,33 @@ +package pl.allegro.finance.tradukisto.internal.languages.hindi + +import pl.allegro.finance.tradukisto.internal.languages.AbstractLongValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.hindiContainer + +class HindiLongValuesTest extends AbstractLongValuesTest { + + def setup() { + longConverter = hindiContainer().getLongConverter() + } + + @Override + LongValuesTestData getTestData() { + testData = new LongValuesTestData(longTranslations) + } + + private static longTranslations = [ + 5_000_000_000 : "पाँच अरब", + + 1_000_000_000_000 : "दस खरब", + 2_000_000_000_000 : "बीस खरब", + 5_000_000_000_000 : "पचास खरब", + + 1_000_000_000_000_000 : "एक पद्म", + 2_000_000_000_000_000 : "दो पद्म", + 5_000_000_000_000_000 : "पाँच पद्म", + + 1_000_000_000_000_000_000: "दस शंख", + 2_000_000_000_000_000_000: "बीस शंख", + (Long.MAX_VALUE) : "बानवे शंख तेईस पद्म सैंतीस नील बीस खरब छत्तीस अरब पचासी करोड़ सैंतालीस लाख पचहत्तर हजार आठ सौ सात" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/hindi/HindiValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/hindi/HindiValuesTest.groovy deleted file mode 100644 index 553ecf63..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/hindi/HindiValuesTest.groovy +++ /dev/null @@ -1,134 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.hindi - -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.hindiContainer - -class HindiValuesTest extends Specification { - - static intConverter = hindiContainer().getIntegerConverter() - static longConverter = hindiContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Hindi"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "शून्य" - 1 | "एक" - 2 | "दो" - 3 | "तीन" - 4 | "चार" - 5 | "पाँच" - 6 | "छ:" - 7 | "सात" - 8 | "आठ" - 9 | "नौ" - - 11 | "ग्यारह" - 12 | "बारह" - 13 | "तेरह" - 14 | "चौदह" - 15 | "पंद्रह" - 16 | "सोलह" - 17 | "सत्रह" - 18 | "आट्ठारह" - 19 | "उन्नीस" - - 10 | "दस" - 20 | "बीस" - 30 | "तीस" - 40 | "चालीस" - 50 | "पचास" - 60 | "साठ" - 70 | "सत्तर" - 80 | "असी" - 90 | "नब्बे" - - 21 | "इक्कीस" - 37 | "सैंतीस" - 43 | "तैंतालीस" - 58 | "अट्ठावन" - 69 | "उनहत्तर" - 76 | "छीहत्तर" - 82 | "बयासी" - 95 | "पचानवे" - - 100 | "एक सौ" - 200 | "दो सौ" - 300 | "तीन सौ" - 400 | "चार सौ" - 500 | "पाँच सौ" - 600 | "छ: सौ" - 700 | "सात सौ" - 800 | "आठ सौ" - 900 | "नौ सौ" - - 111 | "एक सौ ग्यारह" - 272 | "दो सौ बहत्तर" - 387 | "तीन सौ सतासी" - 448 | "चार सौ अड़तालीस" - 569 | "पाँच सौ उनहत्तर" - 625 | "छ: सौ पच्चीस" - 782 | "सात सौ बयासी" - 895 | "आठ सौ पचानवे" - 999 | "नौ सौ निन्यानवे" - - 1000 | "एक हजार" - 1234 | "एक हजार दो सौ चौंतीस" - 2000 | "दो हजार" - 3000 | "तीन हजार" - 4000 | "चार हजार" - 5000 | "पाँच हजार" - 7634 | "सात हजार छ: सौ चौंतीस" - - 11000 | "ग्यारह हजार" - 15000 | "पंद्रह हजार" - 21000 | "इक्कीस हजार" - 24190 | "चौबीस हजार एक सौ नब्बे" - 653000 | "छ: लाख तिरपन हजार" - 123454 | "एक लाख तेईस हजार चार सौ चौवन" - 700000 | "सात लाख" - 999999 | "नौ लाख निन्यानवे हजार नौ सौ निन्यानवे" - - 1000000 | "दस लाख" - 1001234 | "दस लाख एक हजार दो सौ चौंतीस" - 2000000 | "बीस लाख" - 5000000 | "पचास लाख" - 5012000 | "पचास लाख बारह हजार" - 23437219 | "दो करोड़ चौंतीस लाख सैंतीस हजार दो सौ उन्नीस" - 100000000 | "दस करोड़" - 100001200 | "दस करोड़ एक हजार दो सौ" - 123456789 | "बारह करोड़ चौंतीस लाख छप्पन हजार सात सौ नवासी" - 322089890 | "बत्तीस करोड़ बीस लाख नवासी हजार आठ सौ नब्बे" - - 1000000000 | "एक अरब" - 1000001234 | "एक अरब एक हजार दो सौ चौंतीस" - 2147483647 | "दो अरब चौदह करोड़ चौहत्तर लाख तिरासी हजार छ: सौ सैंतालीस" - } - - @Unroll - def "should convert long #value to '#words' in Hindi"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "पाँच अरब" - - 1_000_000_000_000 | "दस खरब" - 2_000_000_000_000 | "बीस खरब" - 5_000_000_000_000 | "पचास खरब" - - 1_000_000_000_000_000 | "एक पद्म" - 2_000_000_000_000_000 | "दो पद्म" - 5_000_000_000_000_000 | "पाँच पद्म" - - 1_000_000_000_000_000_000 | "दस शंख" - 2_000_000_000_000_000_000 | "बीस शंख" - Long.MAX_VALUE | "बानवे शंख तेईस पद्म सैंतीस नील बीस खरब छत्तीस अरब पचासी करोड़ सैंतालीस लाख पचहत्तर हजार आठ सौ सात" - } -} \ No newline at end of file diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/italian/ItalianIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/italian/ItalianIntegerValuesTest.groovy new file mode 100644 index 00000000..1cb246bd --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/italian/ItalianIntegerValuesTest.groovy @@ -0,0 +1,111 @@ +package pl.allegro.finance.tradukisto.internal.languages.italian + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.italianContainer + +class ItalianIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = italianContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "zero", + 1 : "uno", + 2 : "due", + 3 : "tre", + 4 : "quattro", + 5 : "cinque", + 6 : "sei", + 7 : "sette", + 8 : "otto", + 9 : "nove", + + 11 : "undici", + 12 : "dodici", + 13 : "tredici", + 14 : "quattordici", + 15 : "quindici", + 16 : "sedici", + 17 : "diciassette", + 18 : "diciotto", + 19 : "diciannove", + + 10 : "dieci", + 20 : "venti", + 30 : "trenta", + 40 : "quaranta", + 50 : "cinquanta", + 60 : "sessanta", + 70 : "settanta", + 80 : "ottanta", + 90 : "novanta", + + 21 : "ventuno", + 37 : "trentasette", + 43 : "quarantatre", + 58 : "cinquantotto", + 69 : "sessantanove", + 76 : "settantasei", + 82 : "ottantadue", + 95 : "novantacinque", + + 100 : "cento", + 200 : "duecento", + 300 : "trecento", + 400 : "quattrocento", + 500 : "cinquecento", + 600 : "seicento", + 700 : "settecento", + 800 : "ottocento", + 900 : "novecento", + + 111 : "centoundici", + 272 : "duecentosettantadue", + 387 : "trecentoottantasette", + 448 : "quattrocentoquarantotto", + 569 : "cinquecentosessantanove", + 625 : "seicentoventicinque", + 782 : "settecentoottantadue", + 895 : "ottocentonovantacinque", + 999 : "novecentonovantanove", + + 1000 : "mille", + 1234 : "milleduecentotrentaquattro", + 2000 : "duemila", + 3000 : "tremila", + 4000 : "quattromila", + 5000 : "cinquemila", + 7634 : "settemilaseicentotrentaquattro", + + 11000 : "undicimila", + 15000 : "quindicimila", + 21000 : "ventunomila", + 24190 : "ventiquattromilacentonovanta", + 653000 : "seicentocinquantatremila", + 123454 : "centoventitremilaquattrocentocinquantaquattro", + 700000 : "settecentomila", + 999999 : "novecentonovantanovemilanovecentonovantanove", + + 1000000 : "unmilione", + 1001234 : "unmilionemilleduecentotrentaquattro", + 2000000 : "duemilioni", + 5000000 : "cinquemilioni", + 5012000 : "cinquemilionidodicimila", + 23437219 : "ventitremilioniquattrocentotrentasettemiladuecentodiciannove", + 100000000 : "centomilioni", + 100001200 : "centomilionimilleduecento", + 123456789 : "centoventitremilioniquattrocentocinquantaseimilasettecentoottantanove", + 322089890 : "trecentoventiduemilioniottantanovemilaottocentonovanta", + + 1000000000: "unmiliardo", + 1000001234: "unmiliardomilleduecentotrentaquattro", + 2147483647: "duemiliardicentoquarantasettemilioniquattrocentoottantatremilaseicentoquarantasette" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/italian/ItalianValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/italian/ItalianValuesTest.groovy deleted file mode 100644 index 42bd4a69..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/italian/ItalianValuesTest.groovy +++ /dev/null @@ -1,136 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.italian - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.italianContainer - -class ItalianValuesTest extends Specification { - - static intConverter = italianContainer().getIntegerConverter() - static longConverter = italianContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Italian"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "zero" - 1 | "uno" - 2 | "due" - 3 | "tre" - 4 | "quattro" - 5 | "cinque" - 6 | "sei" - 7 | "sette" - 8 | "otto" - 9 | "nove" - - 11 | "undici" - 12 | "dodici" - 13 | "tredici" - 14 | "quattordici" - 15 | "quindici" - 16 | "sedici" - 17 | "diciassette" - 18 | "diciotto" - 19 | "diciannove" - - 10 | "dieci" - 20 | "venti" - 30 | "trenta" - 40 | "quaranta" - 50 | "cinquanta" - 60 | "sessanta" - 70 | "settanta" - 80 | "ottanta" - 90 | "novanta" - - 21 | "ventuno" - 37 | "trentasette" - 43 | "quarantatre" - 58 | "cinquantotto" - 69 | "sessantanove" - 76 | "settantasei" - 82 | "ottantadue" - 95 | "novantacinque" - - 100 | "cento" - 200 | "duecento" - 300 | "trecento" - 400 | "quattrocento" - 500 | "cinquecento" - 600 | "seicento" - 700 | "settecento" - 800 | "ottocento" - 900 | "novecento" - - 111 | "centoundici" - 272 | "duecentosettantadue" - 387 | "trecentoottantasette" - 448 | "quattrocentoquarantotto" - 569 | "cinquecentosessantanove" - 625 | "seicentoventicinque" - 782 | "settecentoottantadue" - 895 | "ottocentonovantacinque" - 999 | "novecentonovantanove" - - 1000 | "mille" - 1234 | "milleduecentotrentaquattro" - 2000 | "duemila" - 3000 | "tremila" - 4000 | "quattromila" - 5000 | "cinquemila" - 7634 | "settemilaseicentotrentaquattro" - - 11000 | "undicimila" - 15000 | "quindicimila" - 21000 | "ventunomila" - 24190 | "ventiquattromilacentonovanta" - 653000 | "seicentocinquantatremila" - 123454 | "centoventitremilaquattrocentocinquantaquattro" - 700000 | "settecentomila" - 999999 | "novecentonovantanovemilanovecentonovantanove" - - 1000000 | "unmilione" - 1001234 | "unmilionemilleduecentotrentaquattro" - 2000000 | "duemilioni" - 5000000 | "cinquemilioni" - 5012000 | "cinquemilionidodicimila" - 23437219 | "ventitremilioniquattrocentotrentasettemiladuecentodiciannove" - 100000000 | "centomilioni" - 100001200 | "centomilionimilleduecento" - 123456789 | "centoventitremilioniquattrocentocinquantaseimilasettecentoottantanove" - 322089890 | "trecentoventiduemilioniottantanovemilaottocentonovanta" - - 1000000000 | "unmiliardo" - 1000001234 | "unmiliardomilleduecentotrentaquattro" - 2147483647 | "duemiliardicentoquarantasettemilioniquattrocentoottantatremilaseicentoquarantasette" - } - - @Ignore("Needs Italian long converter and values for trillion, quadrillion, quintillion") - @Unroll - def "should convert long #value to '#words' in Italian"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "" - - 1_000_000_000_000 | "" - 2_000_000_000_000 | "" - 5_000_000_000_000 | "" - - 1_000_000_000_000_000 | "" - 2_000_000_000_000_000 | "" - 5_000_000_000_000_000 | "" - - 1_000_000_000_000_000_000 | "" - 2_000_000_000_000_000_000 | "" - Long.MAX_VALUE | "" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/japanese/JapaneseKanjiIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/japanese/JapaneseKanjiIntegerValuesTest.groovy new file mode 100644 index 00000000..5bcd60ec --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/japanese/JapaneseKanjiIntegerValuesTest.groovy @@ -0,0 +1,105 @@ +package pl.allegro.finance.tradukisto.internal.languages.japanese + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.japaneseKanjiContainer + +class JapaneseKanjiIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = japaneseKanjiContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "零", + 1 : "一", + 2 : "二", + 3 : "三", + 4 : "四", + 5 : "五", + 6 : "六", + 7 : "七", + 8 : "八", + 9 : "九", + + 11 : "十一", + 12 : "十二", + 13 : "十三", + 14 : "十四", + 15 : "十五", + 16 : "十六", + 17 : "十七", + 18 : "十八", + 19 : "十九", + + 10 : "十", + 20 : "二十", + 30 : "三十", + 40 : "四十", + 50 : "五十", + 60 : "六十", + 70 : "七十", + 80 : "八十", + 90 : "九十", + + 21 : "二十一", + 37 : "三十七", + 43 : "四十三", + 58 : "五十八", + 69 : "六十九", + 76 : "七十六", + 82 : "八十二", + 95 : "九十五", + + 100 : "百", + 200 : "二百", + 300 : "三百", + 400 : "四百", + 500 : "五百", + 600 : "六百", + 700 : "七百", + 800 : "八百", + 900 : "九百", + + 111 : "百十一", + 272 : "二百七十二", + 387 : "三百八十七", + 448 : "四百四十八", + 569 : "五百六十九", + 625 : "六百二十五", + 782 : "七百八十二", + 895 : "八百九十五", + 999 : "九百九十九", + + 1_000 : "千", + 2_000 : "二千", + 3_000 : "三千", + 4_000 : "四千", + 5_000 : "五千", + 7_634 : "七千六百三十四", + 11_000 : "一万千", + 15_000 : "一万五千", + 21_000 : "二万千", + 24_190 : "二万四千百九十", + 653_000 : "六十五万三千", + 123_454 : "十二万三千四百五十四", + 700_000 : "七十万", + 999_999 : "九十九万九千九百九十九", + + 1_000_000 : "百万", + 2_000_000 : "二百万", + 5_000_000 : "五百万", + 23_437_219 : "二千三百四十三万七千二百十九", + 100_000_000 : "一億", + 123_456_789 : "一億二千三百四十五万六千七百八十九", + 322_089_890 : "三億二千二百八万九千八百九十", + + 1_000_000_000 : "十億", + 2_147_483_647 : "二十一億四千七百四十八万三千六百四十七" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/japanese/JapaneseKanjiLongValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/japanese/JapaneseKanjiLongValuesTest.groovy new file mode 100644 index 00000000..e937dfec --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/japanese/JapaneseKanjiLongValuesTest.groovy @@ -0,0 +1,33 @@ +package pl.allegro.finance.tradukisto.internal.languages.japanese + +import pl.allegro.finance.tradukisto.internal.languages.AbstractLongValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.japaneseKanjiContainer + +class JapaneseKanjiLongValuesTest extends AbstractLongValuesTest { + + def setup() { + longConverter = japaneseKanjiContainer().getLongConverter() + } + + @Override + LongValuesTestData getTestData() { + testData = new LongValuesTestData(longTranslations) + } + + private static longTranslations = [ + 5_000_000_000 : "五十億", + + 1_000_000_000_000 : "一兆", + 2_000_000_000_000 : "二兆", + 5_000_000_000_000 : "五兆", + + 1_000_000_000_000_000 : "千兆", + 2_000_000_000_000_000 : "二千兆", + 5_000_000_000_000_000 : "五千兆", + + 1_000_000_000_000_000_000 : "百京", + 2_000_000_000_000_000_000 : "二百京", + (Long.MAX_VALUE) : "九百二十二京三千三百七十二兆三百六十八億五千四百七十七万五千八百七" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/japanese/JapaneseValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/japanese/JapaneseValuesTest.groovy deleted file mode 100644 index 05b3b319..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/japanese/JapaneseValuesTest.groovy +++ /dev/null @@ -1,129 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.japanese - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.japaneseKanjiContainer - -class JapaneseValuesTest extends Specification { - - static intConverter = japaneseKanjiContainer().getIntegerConverter() - static longConverter = japaneseKanjiContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Japanese"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "零" - 1 | "一" - 2 | "二" - 3 | "三" - 4 | "四" - 5 | "五" - 6 | "六" - 7 | "七" - 8 | "八" - 9 | "九" - - 11 | "十一" - 12 | "十二" - 13 | "十三" - 14 | "十四" - 15 | "十五" - 16 | "十六" - 17 | "十七" - 18 | "十八" - 19 | "十九" - - 10 | "十" - 20 | "二十" - 30 | "三十" - 40 | "四十" - 50 | "五十" - 60 | "六十" - 70 | "七十" - 80 | "八十" - 90 | "九十" - - 21 | "二十一" - 37 | "三十七" - 43 | "四十三" - 58 | "五十八" - 69 | "六十九" - 76 | "七十六" - 82 | "八十二" - 95 | "九十五" - - 100 | "百" - 200 | "二百" - 300 | "三百" - 400 | "四百" - 500 | "五百" - 600 | "六百" - 700 | "七百" - 800 | "八百" - 900 | "九百" - - 111 | "百十一" - 272 | "二百七十二" - 387 | "三百八十七" - 448 | "四百四十八" - 569 | "五百六十九" - 625 | "六百二十五" - 782 | "七百八十二" - 895 | "八百九十五" - 999 | "九百九十九" - - 1_000 | "千" - 2_000 | "二千" - 3_000 | "三千" - 4_000 | "四千" - 5_000 | "五千" - 7_634 | "七千六百三十四" - 11_000 | "一万千" - 15_000 | "一万五千" - 21_000 | "二万千" - 24_190 | "二万四千百九十" - 653_000 | "六十五万三千" - 123_454 | "十二万三千四百五十四" - 700_000 | "七十万" - 999_999 | "九十九万九千九百九十九" - - 1_000_000 | "百万" - 2_000_000 | "二百万" - 5_000_000 | "五百万" - 23_437_219 | "二千三百四十三万七千二百十九" - 100_000_000 | "一億" - 123_456_789 | "一億二千三百四十五万六千七百八十九" - 322_089_890 | "三億二千二百八万九千八百九十" - - 1_000_000_000 | "十億" - 2_147_483_647 | "二十一億四千七百四十八万三千六百四十七" - } - - @Unroll - def "should convert long #value to '#words' in Japanese"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "五十億" - - 1_000_000_000_000 | "一兆" - 2_000_000_000_000 | "二兆" - 5_000_000_000_000 | "五兆" - - 1_000_000_000_000_000 | "千兆" - 2_000_000_000_000_000 | "二千兆" - 5_000_000_000_000_000 | "五千兆" - - 1_000_000_000_000_000_000 | "百京" - 2_000_000_000_000_000_000 | "二百京" - Long.MAX_VALUE | "九百二十二京三千三百七十二兆三百六十八億五千四百七十七万五千八百七" - } -} \ No newline at end of file diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/kazakh/KazakhIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/kazakh/KazakhIntegerValuesTest.groovy new file mode 100644 index 00000000..fa451ad8 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/kazakh/KazakhIntegerValuesTest.groovy @@ -0,0 +1,132 @@ +package pl.allegro.finance.tradukisto.internal.languages.kazakh + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.kazakhContainer + +class KazakhIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = kazakhContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "нөл", + 1 : "бір", + 2 : "екі", + 3 : "үш", + 4 : "төрт", + 5 : "бес", + 6 : "алты", + 7 : "жеті", + 8 : "сегіз", + 9 : "тоғыз", + 10 : "он", + + 11 : "он бір", + 12 : "он екі", + 13 : "он үш", + 14 : "он төрт", + 15 : "он бес", + 16 : "он алты", + 17 : "он жеті", + 18 : "он сегіз", + 19 : "он тоғыз", + + 20 : "жиырма", + 30 : "отыз", + 40 : "қырық", + 50 : "елу", + 60 : "алпыс", + 70 : "жетпіс", + 80 : "сексен", + 90 : "тоқсан", + 100 : "жүз", + + 200 : "екі жүз", + 300 : "үш жүз", + 400 : "төрт жүз", + 500 : "бес жүз", + 600 : "алты жүз", + 700 : "жеті жүз", + 800 : "сегіз жүз", + 900 : "тоғыз жүз", + 1000 : "бір мың", + + 1_000_000 : "бір миллион", + 1_000_000_000: "бір миллиард", + + 21 : "жиырма бір", + 34 : "отыз төрт", + 37 : "отыз жеті", + 43 : "қырық үш", + 55 : "елу бес", + 58 : "елу сегіз", + 69 : "алпыс тоғыз", + 76 : "жетпіс алты", + 82 : "сексен екі", + 89 : "сексен тоғыз", + 95 : "тоқсан бес", + + 111 : "жүз он бір", + 144 : "жүз қырық төрт", + 233 : "екі жүз отыз үш", + 272 : "екі жүз жетпіс екі", + 377 : "үш жүз жетпіс жеті", + 387 : "үш жүз сексен жеті", + 448 : "төрт жүз қырық сегіз", + 569 : "бес жүз алпыс тоғыз", + 610 : "алты жүз он", + 625 : "алты жүз жиырма бес", + 782 : "жеті жүз сексен екі", + 895 : "сегіз жүз тоқсан бес", + 987 : "тоғыз жүз сексен жеті", + 999 : "тоғыз жүз тоқсан тоғыз", + + 2_000 : "екі мың", + 3_000 : "үш мың", + 4_000 : "төрт мың", + 5_000 : "бес мың", + 7_634 : "жеті мың алты жүз отыз төрт", + + 11_000 : "он бір мың", + 15_000 : "он бес мың", + 21_000 : "жиырма бір мың", + 24_190 : "жиырма төрт мың жүз тоқсан", + 653_000 : "алты жүз елу үш мың", + 123_454 : "жүз жиырма үш мың төрт жүз елу төрт", + 700_000 : "жеті жүз мың", + 999_999 : "тоғыз жүз тоқсан тоғыз мың тоғыз жүз тоқсан тоғыз", + + 1_597 : "бір мың бес жүз тоқсан жеті", + 2_584 : "екі мың бес жүз сексен төрт", + 4_181 : "төрт мың жүз сексен бір", + 6_765 : "алты мың жеті жүз алпыс бес", + 10_946 : "он мың тоғыз жүз қырық алты", + 17_711 : "он жеті мың жеті жүз он бір", + 28_657 : "жиырма сегіз мың алты жүз елу жеті", + 46_368 : "қырық алты мың үш жүз алпыс сегіз", + 75_025 : "жетпіс бес мың жиырма бес", + 121_393 : "жүз жиырма бір мың үш жүз тоқсан үш", + 196_418 : "жүз тоқсан алты мың төрт жүз он сегіз", + 317_811 : "үш жүз он жеті мың сегіз жүз он бір", + 514_229 : "бес жүз он төрт мың екі жүз жиырма тоғыз", + 832_040 : "сегіз жүз отыз екі мың қырық", + 1_346_269 : "бір миллион үш жүз қырық алты мың екі жүз алпыс тоғыз", + 2_000_000 : "екі миллион", + 2_178_309 : "екі миллион жүз жетпіс сегіз мың үш жүз тоғыз", + 5_000_000 : "бес миллион", + 23_437_219 : "жиырма үш миллион төрт жүз отыз жеті мың екі жүз он тоғыз", + 100_000_000 : "жүз миллион", + 123_456_789 : "жүз жиырма үш миллион төрт жүз елу алты мың жеті жүз сексен тоғыз", + 322_089_890 : "үш жүз жиырма екі миллион сексен тоғыз мың сегіз жүз тоқсан", + + 1_836_311_903: "бір миллиард сегіз жүз отыз алты миллион үш жүз он бір мың тоғыз жүз үш", + 2_147_483_647: "екі миллиард жүз қырық жеті миллион төрт жүз сексен үш мың алты жүз қырық жеті" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/kazakh/KazakhValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/kazakh/KazakhValuesTest.groovy deleted file mode 100644 index 059828a1..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/kazakh/KazakhValuesTest.groovy +++ /dev/null @@ -1,118 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.kazakh - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.kazakhContainer - -class KazakhValuesTest extends Specification { - - static intConverter = kazakhContainer().getIntegerConverter() - static longConverter = kazakhContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Kazakh"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - - 0 | "нөл" - 1 | "бір" - 2 | "екі" - 3 | "үш" - 4 | "төрт" - 5 | "бес" - 6 | "алты" - 7 | "жеті" - 8 | "сегіз" - 9 | "тоғыз" - 10 | "он" - - 11 | "он бір" - 12 | "он екі" - 13 | "он үш" - 14 | "он төрт" - 15 | "он бес" - 16 | "он алты" - 17 | "он жеті" - 18 | "он сегіз" - 19 | "он тоғыз" - - 20 | "жиырма" - 30 | "отыз" - 40 | "қырық" - 50 | "елу" - 60 | "алпыс" - 70 | "жетпіс" - 80 | "сексен" - 90 | "тоқсан" - 100 | "жүз" - - 200 | "екі жүз" - 300 | "үш жүз" - 400 | "төрт жүз" - 500 | "бес жүз" - 600 | "алты жүз" - 700 | "жеті жүз" - 800 | "сегіз жүз" - 900 | "тоғыз жүз" - 1000 | "бір мың" - - 1_000_000 | "бір миллион" - 1_000_000_000 | "бір миллиард" - - 21 | "жиырма бір" - 34 | "отыз төрт" - 55 | "елу бес" - 89 | "сексен тоғыз" - 144 | "жүз қырық төрт" - 233 | "екі жүз отыз үш" - 377 | "үш жүз жетпіс жеті" - 610 | "алты жүз он" - 987 | "тоғыз жүз сексен жеті" - 1_597 | "бір мың бес жүз тоқсан жеті" - 2_584 | "екі мың бес жүз сексен төрт" - 4_181 | "төрт мың жүз сексен бір" - 6_765 | "алты мың жеті жүз алпыс бес" - 10_946 | "он мың тоғыз жүз қырық алты" - 17_711 | "он жеті мың жеті жүз он бір" - 28_657 | "жиырма сегіз мың алты жүз елу жеті" - 46_368 | "қырық алты мың үш жүз алпыс сегіз" - 75_025 | "жетпіс бес мың жиырма бес" - 121_393 | "жүз жиырма бір мың үш жүз тоқсан үш" - 196_418 | "жүз тоқсан алты мың төрт жүз он сегіз" - 317_811 | "үш жүз он жеті мың сегіз жүз он бір" - 514_229 | "бес жүз он төрт мың екі жүз жиырма тоғыз" - 832_040 | "сегіз жүз отыз екі мың қырық" - 1_346_269 | "бір миллион үш жүз қырық алты мың екі жүз алпыс тоғыз" - 2_178_309 | "екі миллион жүз жетпіс сегіз мың үш жүз тоғыз" - - 1_836_311_903 | "бір миллиард сегіз жүз отыз алты миллион үш жүз он бір мың тоғыз жүз үш" - } - - @Ignore("Needs Kazakh long converter and values for trillion, quadrillion, quintillion") - @Unroll - def "should convert long #value to '#words' in Kazakh"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "" - - 1_000_000_000_000 | "" - 2_000_000_000_000 | "" - 5_000_000_000_000 | "" - - 1_000_000_000_000_000 | "" - 2_000_000_000_000_000 | "" - 5_000_000_000_000_000 | "" - - 1_000_000_000_000_000_000 | "" - 2_000_000_000_000_000_000 | "" - Long.MAX_VALUE | "" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/kyrgyz/KyrgyzIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/kyrgyz/KyrgyzIntegerValuesTest.groovy new file mode 100644 index 00000000..86b101f2 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/kyrgyz/KyrgyzIntegerValuesTest.groovy @@ -0,0 +1,137 @@ +package pl.allegro.finance.tradukisto.internal.languages.kyrgyz + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.kyrgyzContainer + +class KyrgyzIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = kyrgyzContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "нөл", + 1 : "бир", + 2 : "эки", + 3 : "үч", + 4 : "төрт", + 5 : "беш", + 6 : "алты", + 7 : "жети", + 8 : "сегиз", + 9 : "тогуз", + 10 : "он", + + 11 : "он бир", + 12 : "он эки", + 13 : "он үч", + 14 : "он төрт", + 15 : "он беш", + 16 : "он алты", + 17 : "он жети", + 18 : "он сегиз", + 19 : "он тогуз", + + 20 : "жыйырма", + 30 : "отуз", + 40 : "кырк", + 50 : "элүү", + 60 : "алтымыш", + 70 : "жетимиш", + 80 : "сексен", + 90 : "токсон", + 100 : "жүз", + + 21 : "жыйырма бир", + 25 : "жыйырма беш", + 34 : "отуз төрт", + 37 : "отуз жети", + 43 : "кырк үч", + 51 : "элүү бир", + 58 : "элүү сегиз", + 69 : "алтымыш тогуз", + 76 : "жетимиш алты", + 82 : "сексен эки", + 89 : "сексен тогуз", + 95 : "токсон беш", + + 200 : "эки жүз", + 300 : "үч жүз", + 400 : "төрт жүз", + 500 : "беш жүз", + 600 : "алты жүз", + 700 : "жети жүз", + 800 : "сегиз жүз", + 900 : "тогуз жүз", + + 111 : "жүз он бир", + 144 : "жүз кырк төрт", + 233 : "эки жүз отуз үч", + 272 : "эки жүз жетимиш эки", + 377 : "үч жүз жетимиш жети", + 387 : "үч жүз сексен жети", + 448 : "төрт жүз кырк сегиз", + 569 : "беш жүз алтымыш тогуз", + 610 : "алты жүз он", + 625 : "алты жүз жыйырма беш", + 777 : "жети жүз жетимиш жети", + 782 : "жети жүз сексен эки", + 895 : "сегиз жүз токсон беш", + 987 : "тогуз жүз сексен жети", + 999 : "тогуз жүз токсон тогуз", + + 1_597 : "бир миң беш жүз токсон жети", + 2_584 : "эки миң беш жүз сексен төрт", + 4_181 : "төрт миң жүз сексен бир", + 6_765 : "алты миң жети жүз алтымыш беш", + + 1_000 : "бир миң", + 2_000 : "эки миң", + 3_000 : "үч миң", + 4_000 : "төрт миң", + 5_000 : "беш миң", + 7_634 : "жети миң алты жүз отуз төрт", + + 10_946 : "он миң тогуз жүз кырк алты", + 11_000 : "он бир миң", + 15_000 : "он беш миң", + 17_711 : "он жети миң жети жүз он бир", + 21_000 : "жыйырма бир миң", + 24_190 : "жыйырма төрт миң жүз токсон", + 28_657 : "жыйырма сегиз миң алты жүз элүү жети", + 46_368 : "кырк алты миң үч жүз алтымыш сегиз", + 75_025 : "жетимиш беш миң жыйырма беш", + + 121_393 : "жүз жыйырма бир миң үч жүз токсон үч", + 123_454 : "жүз жыйырма үч миң төрт жүз элүү төрт", + 196_418 : "жүз токсон алты миң төрт жүз он сегиз", + 317_811 : "үч жүз он жети миң сегиз жүз он бир", + 514_229 : "беш жүз он төрт миң эки жүз жыйырма тогуз", + 653_000 : "алты жүз элүү үч миң", + 700_000 : "жети жүз миң", + 832_040 : "сегиз жүз отуз эки миң кырк", + 999_999 : "тогуз жүз токсон тогуз миң тогуз жүз токсон тогуз", + + 1_000_000 : "бир миллион", + 2_000_000 : "эки миллион", + 5_000_000 : "беш миллион", + + 1_346_269 : "бир миллион үч жүз кырк алты миң эки жүз алтымыш тогуз", + 2_178_309 : "эки миллион жүз жетимиш сегиз миң үч жүз тогуз", + 7_211_000 : "жети миллион эки жүз он бир миң", + 23_437_219 : "жыйырма үч миллион төрт жүз отуз жети миң эки жүз он тогуз", + 100_000_000 : "жүз миллион", + 123_456_789 : "жүз жыйырма үч миллион төрт жүз элүү алты миң жети жүз сексен тогуз", + 322_089_890 : "үч жүз жыйырма эки миллион сексен тогуз миң сегиз жүз токсон", + + 1_000_000_000: "бир миллиард", + 1_836_311_903: "бир миллиард сегиз жүз отуз алты миллион үч жүз он бир миң тогуз жүз үч", + 2_147_483_647: "эки миллиард жүз кырк жети миллион төрт жүз сексен үч миң алты жүз кырк жети" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/kyrgyz/KyrgyzValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/kyrgyz/KyrgyzValuesTest.groovy deleted file mode 100644 index ee5a3a88..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/kyrgyz/KyrgyzValuesTest.groovy +++ /dev/null @@ -1,147 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.kyrgyz - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.kyrgyzContainer - -class KyrgyzValuesTest extends Specification { - - static intConverter = kyrgyzContainer().getIntegerConverter() - static longConverter = kyrgyzContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Kazakh"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - - 0 | "нөл" - 1 | "бир" - 2 | "эки" - 3 | "үч" - 4 | "төрт" - 5 | "беш" - 6 | "алты" - 7 | "жети" - 8 | "сегиз" - 9 | "тогуз" - 10 | "он" - - 11 | "он бир" - 12 | "он эки" - 13 | "он үч" - 14 | "он төрт" - 15 | "он беш" - 16 | "он алты" - 17 | "он жети" - 18 | "он сегиз" - 19 | "он тогуз" - - 20 | "жыйырма" - 30 | "отуз" - 40 | "кырк" - 50 | "элүү" - 60 | "алтымыш" - 70 | "жетимиш" - 80 | "сексен" - 90 | "токсон" - 100 | "жүз" - - 21 | "жыйырма бир" - 25 | "жыйырма беш" - 34 | "отуз төрт" - 37 | "отуз жети" - 43 | "кырк үч" - 51 | "элүү бир" - 58 | "элүү сегиз" - 69 | "алтымыш тогуз" - 76 | "жетимиш алты" - 82 | "сексен эки" - 89 | "сексен тогуз" - 95 | "токсон беш" - - 200 | "эки жүз" - 300 | "үч жүз" - 400 | "төрт жүз" - 500 | "беш жүз" - 600 | "алты жүз" - 700 | "жети жүз" - 800 | "сегиз жүз" - 900 | "тогуз жүз" - 1000 | "бир миң" - - 111 | "жүз он бир" - 144 | "жүз кырк төрт" - 233 | "эки жүз отуз үч" - 272 | "эки жүз жетимиш эки" - 377 | "үч жүз жетимиш жети" - 387 | "үч жүз сексен жети" - 448 | "төрт жүз кырк сегиз" - 569 | "беш жүз алтымыш тогуз" - 610 | "алты жүз он" - 625 | "алты жүз жыйырма беш" - 777 | "жети жүз жетимиш жети" - 782 | "жети жүз сексен эки" - 895 | "сегиз жүз токсон беш" - 987 | "тогуз жүз сексен жети" - 999 | "тогуз жүз токсон тогуз" - - 1_597 | "бир миң беш жүз токсон жети" - 2_584 | "эки миң беш жүз сексен төрт" - 4_181 | "төрт миң жүз сексен бир" - 6_765 | "алты миң жети жүз алтымыш беш" - 10_946 | "он миң тогуз жүз кырк алты" - 17_711 | "он жети миң жети жүз он бир" - 28_657 | "жыйырма сегиз миң алты жүз элүү жети" - 46_368 | "кырк алты миң үч жүз алтымыш сегиз" - 75_025 | "жетимиш беш миң жыйырма беш" - 121_393 | "жүз жыйырма бир миң үч жүз токсон үч" - 196_418 | "жүз токсон алты миң төрт жүз он сегиз" - 317_811 | "үч жүз он жети миң сегиз жүз он бир" - 514_229 | "беш жүз он төрт миң эки жүз жыйырма тогуз" - 832_040 | "сегиз жүз отуз эки миң кырк" - - 1_000_000 | "бир миллион" - 2_000_000 | "эки миллион" - 5_000_000 | "беш миллион" - - 1_346_269 | "бир миллион үч жүз кырк алты миң эки жүз алтымыш тогуз" - 2_178_309 | "эки миллион жүз жетимиш сегиз миң үч жүз тогуз" - 7_211_000 | "жети миллион эки жүз он бир миң" - 23_437_219 | "жыйырма үч миллион төрт жүз отуз жети миң эки жүз он тогуз" - 100_000_000 | "жүз миллион" - 123_456_789 | "жүз жыйырма үч миллион төрт жүз элүү алты миң жети жүз сексен тогуз" - 322_089_890 | "үч жүз жыйырма эки миллион сексен тогуз миң сегиз жүз токсон" - - 1_000_000_000 | "бир миллиард" - 1_836_311_903 | "бир миллиард сегиз жүз отуз алты миллион үч жүз он бир миң тогуз жүз үч" - 2_147_483_647 | "эки миллиард жүз кырк жети миллион төрт жүз сексен үч миң алты жүз кырк жети" - } - - @Ignore("Needs kyrgyz long converter and values for trillion, quadrillion, quintillion") - @Unroll - def "should convert long #value to '#words' in Kyrgyz"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "" - - 1_000_000_000_000 | "" - 2_000_000_000_000 | "" - 5_000_000_000_000 | "" - - 1_000_000_000_000_000 | "" - 2_000_000_000_000_000 | "" - 5_000_000_000_000_000 | "" - - 1_000_000_000_000_000_000 | "" - 2_000_000_000_000_000_000 | "" - Long.MAX_VALUE | "" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/latvian/LatvianIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/latvian/LatvianIntegerValuesTest.groovy new file mode 100644 index 00000000..24471733 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/latvian/LatvianIntegerValuesTest.groovy @@ -0,0 +1,112 @@ +package pl.allegro.finance.tradukisto.internal.languages.latvian + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.latvianContainer + +class LatvianIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = latvianContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "nulle", + 1 : "viens", + 2 : "divi", + 3 : "trīs", + 4 : "četri", + 5 : "pieci", + 6 : "seši", + 7 : "septiņi", + 8 : "astoņi", + 9 : "deviņi", + + 11 : "vienpadsmit", + 12 : "divpadsmit", + 13 : "trīspadsmit", + 14 : "četrpadsmit", + 15 : "piecpadsmit", + 16 : "sešpadsmit", + 17 : "septiņpadsmit", + 18 : "astoņpadsmit", + 19 : "deviņpadsmit", + + 10 : "desmit", + 20 : "divdesmit", + 30 : "trīsdesmit", + 40 : "četrdesmit", + 50 : "piecdesmit", + 60 : "sešdesmit", + 70 : "septiņdesmit", + 80 : "astoņdesmit", + 90 : "deviņdesmit", + + 21 : "divdesmit viens", + 37 : "trīsdesmit septiņi", + 43 : "četrdesmit trīs", + 58 : "piecdesmit astoņi", + 69 : "sešdesmit deviņi", + 76 : "septiņdesmit seši", + 82 : "astoņdesmit divi", + 95 : "deviņdesmit pieci", + + 100 : "viens simts", + 200 : "divi simti", + 300 : "trīs simti", + 400 : "četri simti", + 500 : "pieci simti", + 600 : "seši simti", + 700 : "septiņi simti", + 800 : "astoņi simti", + 900 : "deviņi simti", + + 111 : "viens simts vienpadsmit", + 272 : "divi simti septiņdesmit divi", + 387 : "trīs simti astoņdesmit septiņi", + 448 : "četri simti četrdesmit astoņi", + 569 : "pieci simti sešdesmit deviņi", + 625 : "seši simti divdesmit pieci", + 777 : "septiņi simti septiņdesmit septiņi", + 782 : "septiņi simti astoņdesmit divi", + 895 : "astoņi simti deviņdesmit pieci", + 999 : "deviņi simti deviņdesmit deviņi", + + 1_000 : "viens tūkstotis", + 2_000 : "divi tūkstoši", + 3_000 : "trīs tūkstoši", + 4_000 : "četri tūkstoši", + 5_000 : "pieci tūkstoši", + 7_634 : "septiņi tūkstoši seši simti trīsdesmit četri", + 11_000 : "vienpadsmit tūkstoši", + 15_000 : "piecpadsmit tūkstoši", + 21_000 : "divdesmit viens tūkstotis", + 22_000 : "divdesmit divi tūkstoši", + 24_190 : "divdesmit četri tūkstoši viens simts deviņdesmit", + 653_000 : "seši simti piecdesmit trīs tūkstoši", + 211_000 : "divi simti vienpadsmit tūkstoši", + 123_454 : "viens simts divdesmit trīs tūkstoši četri simti piecdesmit četri", + 700_000 : "septiņi simti tūkstoši", + 751_221 : "septiņi simti piecdesmit viens tūkstotis divi simti divdesmit viens", + 999_999 : "deviņi simti deviņdesmit deviņi tūkstoši deviņi simti deviņdesmit deviņi", + + 1_000_000 : "viens miljons", + 2_000_000 : "divi miljoni", + 5_000_000 : "pieci miljoni", + 7_211_000 : "septiņi miljoni divi simti vienpadsmit tūkstoši", + 23_437_219 : "divdesmit trīs miljoni četri simti trīsdesmit septiņi tūkstoši divi simti deviņpadsmit", + 100_000_000 : "viens simts miljoni", + 123_456_789 : "viens simts divdesmit trīs miljoni četri simti piecdesmit seši tūkstoši septiņi simti " + + "astoņdesmit deviņi", + 322_089_890 : "trīs simti divdesmit divi miljoni astoņdesmit deviņi tūkstoši astoņi simti deviņdesmit", + + 1_000_000_000: "viens miljards", + 2_147_483_647: "divi miljardi viens simts četrdesmit septiņi miljoni četri simti astoņdesmit trīs tūkstoši " + + "seši simti četrdesmit septiņi" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/latvian/LatvianValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/latvian/LatvianValuesTest.groovy deleted file mode 100644 index fb822da7..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/latvian/LatvianValuesTest.groovy +++ /dev/null @@ -1,149 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.latvian - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.latvianContainer - -class LatvianValuesTest extends Specification { - - static intConverter = latvianContainer().getIntegerConverter() - static longConverter = latvianContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Latvian"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "nulle" - 1 | "viens" - 2 | "divi" - 3 | "trīs" - 4 | "četri" - 5 | "pieci" - 6 | "seši" - 7 | "septiņi" - 8 | "astoņi" - 9 | "deviņi" - - 11 | "vienpadsmit" - 12 | "divpadsmit" - 13 | "trīspadsmit" - 14 | "četrpadsmit" - 15 | "piecpadsmit" - 16 | "sešpadsmit" - 17 | "septiņpadsmit" - 18 | "astoņpadsmit" - 19 | "deviņpadsmit" - - 10 | "desmit" - 20 | "divdesmit" - 30 | "trīsdesmit" - 40 | "četrdesmit" - 50 | "piecdesmit" - 60 | "sešdesmit" - 70 | "septiņdesmit" - 80 | "astoņdesmit" - 90 | "deviņdesmit" - - 21 | "divdesmit viens" - 37 | "trīsdesmit septiņi" - 43 | "četrdesmit trīs" - 58 | "piecdesmit astoņi" - 69 | "sešdesmit deviņi" - 76 | "septiņdesmit seši" - 82 | "astoņdesmit divi" - 95 | "deviņdesmit pieci" - - 100 | "viens simts" - 200 | "divi simti" - 300 | "trīs simti" - 400 | "četri simti" - 500 | "pieci simti" - 600 | "seši simti" - 700 | "septiņi simti" - 800 | "astoņi simti" - 900 | "deviņi simti" - - 111 | "viens simts vienpadsmit" - 272 | "divi simti septiņdesmit divi" - 387 | "trīs simti astoņdesmit septiņi" - 448 | "četri simti četrdesmit astoņi" - 569 | "pieci simti sešdesmit deviņi" - 625 | "seši simti divdesmit pieci" - 777 | "septiņi simti septiņdesmit septiņi" - 782 | "septiņi simti astoņdesmit divi" - 895 | "astoņi simti deviņdesmit pieci" - 999 | "deviņi simti deviņdesmit deviņi" - - 1_000 | "viens tūkstotis" - 2_000 | "divi tūkstoši" - 3_000 | "trīs tūkstoši" - 4_000 | "četri tūkstoši" - 5_000 | "pieci tūkstoši" - 7_634 | "septiņi tūkstoši seši simti trīsdesmit četri" - 11_000 | "vienpadsmit tūkstoši" - 15_000 | "piecpadsmit tūkstoši" - 21_000 | "divdesmit viens tūkstotis" - 22_000 | "divdesmit divi tūkstoši" - 24_190 | "divdesmit četri tūkstoši viens simts deviņdesmit" - 653_000 | "seši simti piecdesmit trīs tūkstoši" - 211_000 | "divi simti vienpadsmit tūkstoši" - 123_454 | "viens simts divdesmit trīs tūkstoši četri simti piecdesmit četri" - 700_000 | "septiņi simti tūkstoši" - 751_221 | "septiņi simti piecdesmit viens tūkstotis divi simti divdesmit viens" - 999_999 | "deviņi simti deviņdesmit deviņi tūkstoši deviņi simti deviņdesmit deviņi" - - 1_000_000 | "viens miljons" - 2_000_000 | "divi miljoni" - 5_000_000 | "pieci miljoni" - 7_211_000 | "septiņi miljoni divi simti vienpadsmit tūkstoši" - 23_437_219 | "divdesmit trīs miljoni četri simti trīsdesmit septiņi tūkstoši divi simti deviņpadsmit" - 100_000_000 | "viens simts miljoni" - 123_456_789 | "viens simts divdesmit trīs miljoni četri simti piecdesmit seši tūkstoši septiņi simti " + - "astoņdesmit deviņi" - 322_089_890 | "trīs simti divdesmit divi miljoni astoņdesmit deviņi tūkstoši astoņi simti deviņdesmit" - - 1_000_000_000 | "viens miljards" - 2_147_483_647 | "divi miljardi viens simts četrdesmit septiņi miljoni četri simti astoņdesmit trīs tūkstoši " + - "seši simti četrdesmit septiņi" - } - - def "should convert any value in range of 0-999 in Latvian"() { - when: - def words = intConverter.asWords(value) - - then: - notThrown(IllegalArgumentException) - words.length() > 0 - - where: - value << (0..999) - } - - @Ignore("Needs Latvian long converter and values for trillion, quadrillion, quintillion") - @Unroll - def "should convert long #value to '#words' in Latvian"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "" - - 1_000_000_000_000 | "" - 2_000_000_000_000 | "" - 5_000_000_000_000 | "" - - 1_000_000_000_000_000 | "" - 2_000_000_000_000_000 | "" - 5_000_000_000_000_000 | "" - - 1_000_000_000_000_000_000 | "" - 2_000_000_000_000_000_000 | "" - Long.MAX_VALUE | "" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/polish/PolishIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/polish/PolishIntegerValuesTest.groovy new file mode 100644 index 00000000..803d1f3d --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/polish/PolishIntegerValuesTest.groovy @@ -0,0 +1,107 @@ +package pl.allegro.finance.tradukisto.internal.languages.polish + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.polishContainer + +class PolishIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = polishContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "zero", + 1 : "jeden", + 2 : "dwa", + 3 : "trzy", + 4 : "cztery", + 5 : "pięć", + 6 : "sześć", + 7 : "siedem", + 8 : "osiem", + 9 : "dziewięć", + + 11 : "jedenaście", + 12 : "dwanaście", + 13 : "trzynaście", + 14 : "czternaście", + 15 : "piętnaście", + 16 : "szesnaście", + 17 : "siedemnaście", + 18 : "osiemnaście", + 19 : "dziewiętnaście", + + 10 : "dziesięć", + 20 : "dwadzieścia", + 30 : "trzydzieści", + 40 : "czterdzieści", + 50 : "pięćdziesiąt", + 60 : "sześćdziesiąt", + 70 : "siedemdziesiąt", + 80 : "osiemdziesiąt", + 90 : "dziewięćdziesiąt", + + 21 : "dwadzieścia jeden", + 37 : "trzydzieści siedem", + 43 : "czterdzieści trzy", + 58 : "pięćdziesiąt osiem", + 69 : "sześćdziesiąt dziewięć", + 76 : "siedemdziesiąt sześć", + 82 : "osiemdziesiąt dwa", + 95 : "dziewięćdziesiąt pięć", + + 100 : "sto", + 200 : "dwieście", + 300 : "trzysta", + 400 : "czterysta", + 500 : "pięćset", + 600 : "sześćset", + 700 : "siedemset", + 800 : "osiemset", + 900 : "dziewięćset", + + 111 : "sto jedenaście", + 272 : "dwieście siedemdziesiąt dwa", + 387 : "trzysta osiemdziesiąt siedem", + 448 : "czterysta czterdzieści osiem", + 569 : "pięćset sześćdziesiąt dziewięć", + 625 : "sześćset dwadzieścia pięć", + 782 : "siedemset osiemdziesiąt dwa", + 895 : "osiemset dziewięćdziesiąt pięć", + 999 : "dziewięćset dziewięćdziesiąt dziewięć", + + 1_000 : "jeden tysiąc", + 2_000 : "dwa tysiące", + 3_000 : "trzy tysiące", + 4_000 : "cztery tysiące", + 5_000 : "pięć tysięcy", + 7_634 : "siedem tysięcy sześćset trzydzieści cztery", + 11_000 : "jedenaście tysięcy", + 15_000 : "piętnaście tysięcy", + 21_000 : "dwadzieścia jeden tysięcy", + 24_190 : "dwadzieścia cztery tysiące sto dziewięćdziesiąt", + 653_000 : "sześćset pięćdziesiąt trzy tysiące", + 123_454 : "sto dwadzieścia trzy tysiące czterysta pięćdziesiąt cztery", + 700_000 : "siedemset tysięcy", + 999_999 : "dziewięćset dziewięćdziesiąt dziewięć tysięcy dziewięćset dziewięćdziesiąt dziewięć", + + 1_000_000 : "jeden milion", + 2_000_000 : "dwa miliony", + 5_000_000 : "pięć milionów", + 23_437_219 : "dwadzieścia trzy miliony czterysta trzydzieści siedem tysięcy dwieście dziewiętnaście", + 100_000_000 : "sto milionów", + 123_456_789 : "sto dwadzieścia trzy miliony czterysta pięćdziesiąt sześć tysięcy siedemset " + + "osiemdziesiąt dziewięć", + 322_089_890 : "trzysta dwadzieścia dwa miliony osiemdziesiąt dziewięć tysięcy osiemset dziewięćdziesiąt", + + 1_000_000_000 : "jeden miliard", + (Integer.MAX_VALUE): "dwa miliardy sto czterdzieści siedem milionów czterysta osiemdziesiąt trzy tysiące " + + "sześćset czterdzieści siedem" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/polish/PolishLongValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/polish/PolishLongValuesTest.groovy new file mode 100644 index 00000000..5056d9d9 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/polish/PolishLongValuesTest.groovy @@ -0,0 +1,36 @@ +package pl.allegro.finance.tradukisto.internal.languages.polish + +import pl.allegro.finance.tradukisto.internal.languages.AbstractLongValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.polishContainer + +class PolishLongValuesTest extends AbstractLongValuesTest { + + def setup() { + longConverter = polishContainer().getLongConverter() + } + + @Override + LongValuesTestData getTestData() { + testData = new LongValuesTestData(longTranslations) + } + + private static longTranslations = [ + 5_000_000_000 : "pięć miliardów", + + 1_000_000_000_000 : "jeden bilion", + 2_000_000_000_000 : "dwa biliony", + 5_000_000_000_000 : "pięć bilionów", + + 1_000_000_000_000_000 : "jeden biliard", + 2_000_000_000_000_000 : "dwa biliardy", + 5_000_000_000_000_000 : "pięć biliardów", + + 1_000_000_000_000_000_000: "jeden trylion", + 2_000_000_000_000_000_000: "dwa tryliony", + (Long.MAX_VALUE) : "dziewięć trylionów dwieście dwadzieścia trzy biliardy " + + "trzysta siedemdziesiąt dwa biliony trzydzieści sześć miliardów " + + "osiemset pięćdziesiąt cztery miliony siedemset siedemdziesiąt pięć tysięcy " + + "osiemset siedem" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/polish/PolishValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/polish/PolishValuesTest.groovy deleted file mode 100644 index 75334586..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/polish/PolishValuesTest.groovy +++ /dev/null @@ -1,127 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.polish - -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.polishContainer - -class PolishValuesTest extends Specification { - - static intConverter = polishContainer().getIntegerConverter() - static longConverter = polishContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Polish"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "zero" - 1 | "jeden" - 2 | "dwa" - 3 | "trzy" - 4 | "cztery" - 5 | "pięć" - 6 | "sześć" - 7 | "siedem" - 8 | "osiem" - 9 | "dziewięć" - - 11 | "jedenaście" - 12 | "dwanaście" - 13 | "trzynaście" - 14 | "czternaście" - 15 | "piętnaście" - 16 | "szesnaście" - 17 | "siedemnaście" - 18 | "osiemnaście" - 19 | "dziewiętnaście" - - 10 | "dziesięć" - 20 | "dwadzieścia" - 30 | "trzydzieści" - 40 | "czterdzieści" - 50 | "pięćdziesiąt" - 60 | "sześćdziesiąt" - 70 | "siedemdziesiąt" - 80 | "osiemdziesiąt" - 90 | "dziewięćdziesiąt" - - 21 | "dwadzieścia jeden" - 37 | "trzydzieści siedem" - 43 | "czterdzieści trzy" - 58 | "pięćdziesiąt osiem" - 69 | "sześćdziesiąt dziewięć" - 76 | "siedemdziesiąt sześć" - 82 | "osiemdziesiąt dwa" - 95 | "dziewięćdziesiąt pięć" - - 100 | "sto" - 200 | "dwieście" - 300 | "trzysta" - 400 | "czterysta" - 500 | "pięćset" - 600 | "sześćset" - 700 | "siedemset" - 800 | "osiemset" - 900 | "dziewięćset" - - 111 | "sto jedenaście" - 272 | "dwieście siedemdziesiąt dwa" - 387 | "trzysta osiemdziesiąt siedem" - 448 | "czterysta czterdzieści osiem" - 569 | "pięćset sześćdziesiąt dziewięć" - 625 | "sześćset dwadzieścia pięć" - 782 | "siedemset osiemdziesiąt dwa" - 895 | "osiemset dziewięćdziesiąt pięć" - 999 | "dziewięćset dziewięćdziesiąt dziewięć" - - 1_000 | "jeden tysiąc" - 2_000 | "dwa tysiące" - 5_000 | "pięć tysięcy" - 7_634 | "siedem tysięcy sześćset trzydzieści cztery" - 24_190 | "dwadzieścia cztery tysiące sto dziewięćdziesiąt" - 653_000 | "sześćset pięćdziesiąt trzy tysiące" - 123_454 | "sto dwadzieścia trzy tysiące czterysta pięćdziesiąt cztery" - 700_000 | "siedemset tysięcy" - 999_999 | "dziewięćset dziewięćdziesiąt dziewięć tysięcy dziewięćset dziewięćdziesiąt dziewięć" - - 1_000_000 | "jeden milion" - 2_000_000 | "dwa miliony" - 5_000_000 | "pięć milionów" - 23_437_219 | "dwadzieścia trzy miliony czterysta trzydzieści siedem tysięcy dwieście dziewiętnaście" - 100_000_000 | "sto milionów" - 123_456_789 | "sto dwadzieścia trzy miliony czterysta pięćdziesiąt sześć tysięcy siedemset " + - "osiemdziesiąt dziewięć" - - 1_000_000_000 | "jeden miliard" - Integer.MAX_VALUE | "dwa miliardy sto czterdzieści siedem milionów czterysta osiemdziesiąt trzy tysiące " + - "sześćset czterdzieści siedem" - } - - @Unroll - def "should convert long #value to '#words' in Polish"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "pięć miliardów" - - 1_000_000_000_000 | "jeden bilion" - 2_000_000_000_000 | "dwa biliony" - 5_000_000_000_000 | "pięć bilionów" - - 1_000_000_000_000_000 | "jeden biliard" - 2_000_000_000_000_000 | "dwa biliardy" - 5_000_000_000_000_000 | "pięć biliardów" - - 1_000_000_000_000_000_000 | "jeden trylion" - 2_000_000_000_000_000_000 | "dwa tryliony" - Long.MAX_VALUE | "dziewięć trylionów dwieście dwadzieścia trzy biliardy " + - "trzysta siedemdziesiąt dwa biliony trzydzieści sześć miliardów " + - "osiemset pięćdziesiąt cztery miliony siedemset siedemdziesiąt pięć tysięcy " + - "osiemset siedem" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/portuguese/BrazilianPortugueseIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/portuguese/BrazilianPortugueseIntegerValuesTest.groovy new file mode 100644 index 00000000..e32412a1 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/portuguese/BrazilianPortugueseIntegerValuesTest.groovy @@ -0,0 +1,112 @@ +package pl.allegro.finance.tradukisto.internal.languages.portuguese + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.brazilianPortugueseContainer + +class BrazilianPortugueseIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = brazilianPortugueseContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "zero", + 1 : "um", + 2 : "dois", + 3 : "três", + 4 : "quatro", + 5 : "cinco", + 6 : "seis", + 7 : "sete", + 8 : "oito", + 9 : "nove", + + 11 : "onze", + 12 : "doze", + 13 : "treze", + 14 : "catorze", + 15 : "quinze", + 16 : "dezesseis", + 17 : "dezessete", + 18 : "dezoito", + 19 : "dezenove", + + 10 : "dez", + 20 : "vinte", + 30 : "trinta", + 40 : "quarenta", + 50 : "cinquenta", + 60 : "sessenta", + 70 : "setenta", + 80 : "oitenta", + 90 : "noventa", + + 21 : "vinte e um", + 37 : "trinta e sete", + 43 : "quarenta e três", + 58 : "cinquenta e oito", + 69 : "sessenta e nove", + 76 : "setenta e seis", + 82 : "oitenta e dois", + 95 : "noventa e cinco", + + 100 : "cem", + 200 : "duzentos", + 300 : "trezentos", + 400 : "quatrocentos", + 500 : "quinhentos", + 600 : "seiscentos", + 700 : "setecentos", + 800 : "oitocentos", + 900 : "novecentos", + + 111 : "cento e onze", + 272 : "duzentos e setenta e dois", + 387 : "trezentos e oitenta e sete", + 448 : "quatrocentos e quarenta e oito", + 569 : "quinhentos e sessenta e nove", + 625 : "seiscentos e vinte e cinco", + 782 : "setecentos e oitenta e dois", + 895 : "oitocentos e noventa e cinco", + 999 : "novecentos e noventa e nove", + + 1000 : "mil", + 1100 : "mil e cem", + 1110 : "mil cento e dez", + 2000 : "dois mil", + 2100 : "dois mil e cem", + 2110 : "dois mil cento e dez", + 3000 : "três mil", + 4000 : "quatro mil", + 5000 : "cinco mil", + 7634 : "sete mil seiscentos e trinta e quatro", + + 11000 : "onze mil", + 15000 : "quinze mil", + 21000 : "vinte e um mil", + 24190 : "vinte e quatro mil cento e noventa", + 653000 : "seiscentos e cinquenta e três mil", + 123454 : "cento e vinte e três mil quatrocentos e cinquenta e quatro", + 700000 : "setecentos mil", + 999999 : "novecentos e noventa e nove mil novecentos e noventa e nove", + + 1000000 : "um milhão", + 2000000 : "dois milhões", + 5000000 : "cinco milhões", + 23437219 : "vinte e três milhões quatrocentos e trinta e sete mil duzentos e dezenove", + 100000000 : "cem milhões", + 123456789 : "cento e vinte e três milhões quatrocentos e cinquenta e seis mil setecentos e oitenta e nove", + 322089890 : "trezentos e vinte e dois milhões oitenta e nove mil oitocentos e noventa", + + 1000000000: "um bilhão", + 2001001110: "dois bilhões um milhão mil cento e dez", + 2001001100: "dois bilhões um milhão mil e cem", + 2147483647: "dois bilhões cento e quarenta e sete milhões quatrocentos e oitenta e três mil seiscentos e quarenta e sete" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/portuguese/BrazilianPortugueseValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/portuguese/BrazilianPortugueseValuesTest.groovy deleted file mode 100644 index 36556f2e..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/portuguese/BrazilianPortugueseValuesTest.groovy +++ /dev/null @@ -1,137 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.portuguese - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.brazilianPortugueseContainer - -class BrazilianPortugueseValuesTest extends Specification { - - static intConverter = brazilianPortugueseContainer().getIntegerConverter() - static longConverter = brazilianPortugueseContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Brazilian Portuguese"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "zero" - 1 | "um" - 2 | "dois" - 3 | "três" - 4 | "quatro" - 5 | "cinco" - 6 | "seis" - 7 | "sete" - 8 | "oito" - 9 | "nove" - - 11 | "onze" - 12 | "doze" - 13 | "treze" - 14 | "catorze" - 15 | "quinze" - 16 | "dezesseis" - 17 | "dezessete" - 18 | "dezoito" - 19 | "dezenove" - - 10 | "dez" - 20 | "vinte" - 30 | "trinta" - 40 | "quarenta" - 50 | "cinquenta" - 60 | "sessenta" - 70 | "setenta" - 80 | "oitenta" - 90 | "noventa" - - 21 | "vinte e um" - 37 | "trinta e sete" - 43 | "quarenta e três" - 58 | "cinquenta e oito" - 69 | "sessenta e nove" - 76 | "setenta e seis" - 82 | "oitenta e dois" - 95 | "noventa e cinco" - - 100 | "cem" - 200 | "duzentos" - 300 | "trezentos" - 400 | "quatrocentos" - 500 | "quinhentos" - 600 | "seiscentos" - 700 | "setecentos" - 800 | "oitocentos" - 900 | "novecentos" - - 111 | "cento e onze" - 272 | "duzentos e setenta e dois" - 387 | "trezentos e oitenta e sete" - 448 | "quatrocentos e quarenta e oito" - 569 | "quinhentos e sessenta e nove" - 625 | "seiscentos e vinte e cinco" - 782 | "setecentos e oitenta e dois" - 895 | "oitocentos e noventa e cinco" - 999 | "novecentos e noventa e nove" - - 1000 | "mil" - 1100 | "mil e cem" - 1110 | "mil cento e dez" - 2000 | "dois mil" - 2100 | "dois mil e cem" - 2110 | "dois mil cento e dez" - 3000 | "três mil" - 4000 | "quatro mil" - 5000 | "cinco mil" - 7634 | "sete mil seiscentos e trinta e quatro" - - 11000 | "onze mil" - 15000 | "quinze mil" - 21000 | "vinte e um mil" - 24190 | "vinte e quatro mil cento e noventa" - 653000 | "seiscentos e cinquenta e três mil" - 123454 | "cento e vinte e três mil quatrocentos e cinquenta e quatro" - 700000 | "setecentos mil" - 999999 | "novecentos e noventa e nove mil novecentos e noventa e nove" - - 1000000 | "um milhão" - 2000000 | "dois milhões" - 5000000 | "cinco milhões" - 23437219 | "vinte e três milhões quatrocentos e trinta e sete mil duzentos e dezenove" - 100000000 | "cem milhões" - 123456789 | "cento e vinte e três milhões quatrocentos e cinquenta e seis mil setecentos e oitenta e nove" - 322089890 | "trezentos e vinte e dois milhões oitenta e nove mil oitocentos e noventa" - - 1000000000 | "um bilhão" - 2001001110 | "dois bilhões um milhão mil cento e dez" - 2001001100 | "dois bilhões um milhão mil e cem" - 2147483647 | "dois bilhões cento e quarenta e sete milhões quatrocentos e oitenta e três mil seiscentos e quarenta e sete" - } - - @Ignore("Needs Brazilian Portuguese long converter and values for trillion, quadrillion, quintillion") - @Unroll - def "should convert long #value to '#words' in Brazilian Portuguese"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "" - - 1_000_000_000_000 | "" - 2_000_000_000_000 | "" - 5_000_000_000_000 | "" - - 1_000_000_000_000_000 | "" - 2_000_000_000_000_000 | "" - 5_000_000_000_000_000 | "" - - 1_000_000_000_000_000_000 | "" - 2_000_000_000_000_000_000 | "" - Long.MAX_VALUE | "" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/russian/RussianIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/russian/RussianIntegerValuesTest.groovy new file mode 100644 index 00000000..d26905ed --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/russian/RussianIntegerValuesTest.groovy @@ -0,0 +1,100 @@ +package pl.allegro.finance.tradukisto.internal.languages.russian + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.russianContainer + +class RussianIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = russianContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "ноль", + 1 : "один", + 2 : "два", + 3 : "три", + 4 : "четыре", + 5 : "пять", + 6 : "шесть", + 7 : "семь", + 8 : "восемь", + 9 : "девять", + 11 : "одиннадцать", + 12 : "двенадцать", + 13 : "тринадцать", + 14 : "четырнадцать", + 15 : "пятнадцать", + 16 : "шестнадцать", + 17 : "семнадцать", + 18 : "восемнадцать", + 19 : "девятнадцать", + 10 : "десять", + 20 : "двадцать", + 30 : "тридцать", + 40 : "сорок", + 50 : "пятьдесят", + 60 : "шестьдесят", + 70 : "семьдесят", + 80 : "восемьдесят", + 90 : "девяносто", + 21 : "двадцать один", + 37 : "тридцать семь", + 43 : "сорок три", + 58 : "пятьдесят восемь", + 69 : "шестьдесят девять", + 76 : "семьдесят шесть", + 82 : "восемьдесят два", + 95 : "девяносто пять", + 100 : "сто", + 200 : "двести", + 300 : "триста", + 400 : "четыреста", + 500 : "пятьсот", + 600 : "шестьсот", + 700 : "семьсот", + 800 : "восемьсот", + 900 : "девятьсот", + 111 : "сто одиннадцать", + 272 : "двести семьдесят два", + 387 : "триста восемьдесят семь", + 448 : "четыреста сорок восемь", + 569 : "пятьсот шестьдесят девять", + 625 : "шестьсот двадцать пять", + 782 : "семьсот восемьдесят два", + 895 : "восемьсот девяносто пять", + 999 : "девятьсот девяносто девять", + 1_000 : "одна тысяча", + 2_000 : "две тысячи", + 3_000 : "три тысячи", + 4_000 : "четыре тысячи", + 5_000 : "пять тысяч", + 7_634 : "семь тысяч шестьсот тридцать четыре", + 11_000 : "одиннадцать тысяч", + 15_000 : "пятнадцать тысяч", + 21_000 : "двадцать одна тысяча", + 24_190 : "двадцать четыре тысячи сто девяносто", + 51_000 : "пятьдесят одна тысяча", + 481_000 : "четыреста восемьдесят одна тысяча", + 653_000 : "шестьсот пятьдесят три тысячи", + 123_454 : "сто двадцать три тысячи четыреста пятьдесят четыре", + 700_000 : "семьсот тысяч", + 999_999 : "девятьсот девяносто девять тысяч девятьсот девяносто девять", + 1_000_000 : "один миллион", + 2_000_000 : "два миллиона", + 5_000_000 : "пять миллионов", + 23_437_219 : "двадцать три миллиона четыреста тридцать семь тысяч двести девятнадцать", + 100_000_000 : "сто миллионов", + 121_000_000 : "сто двадцать один миллион", + 123_456_789 : "сто двадцать три миллиона четыреста пятьдесят шесть тысяч семьсот восемьдесят девять", + 322_089_890 : "триста двадцать два миллиона восемьдесят девять тысяч восемьсот девяносто", + 1_000_000_000: "один миллиард", + 2_147_483_647: "два миллиарда сто сорок семь миллионов четыреста восемьдесят три тысячи шестьсот сорок семь" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/russian/RussianLongIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/russian/RussianLongIntegerValuesTest.groovy new file mode 100644 index 00000000..10b115ff --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/russian/RussianLongIntegerValuesTest.groovy @@ -0,0 +1,34 @@ +package pl.allegro.finance.tradukisto.internal.languages.russian + +import pl.allegro.finance.tradukisto.internal.languages.AbstractLongValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.russianContainer + +class RussianLongIntegerValuesTest extends AbstractLongValuesTest { + + def setup() { + longConverter = russianContainer().getLongConverter() + } + + @Override + LongValuesTestData getTestData() { + testData = new LongValuesTestData(longTranslations) + } + + private static longTranslations = [ + 5_000_000_000 : "пять миллиардов", + + 1_000_000_000_000 : "один триллион", + 2_000_000_000_000 : "два триллиона", + 5_000_000_000_000 : "пять триллионов", + + 1_000_000_000_000_000 : "один квадриллион", + 2_000_000_000_000_000 : "два квадриллиона", + 5_000_000_000_000_000 : "пять квадриллионов", + + 1_000_000_000_000_000_000: "один квинтиллион", + 2_000_000_000_000_000_000: "два квинтиллиона", + (Long.MAX_VALUE) : "девять квинтиллионов двести двадцать три квадриллиона триста семьдесят два триллиона тридцать шесть миллиардов восемьсот пятьдесят четыре миллиона семьсот семьдесят пять тысяч восемьсот семь" + + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/russian/RussianValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/russian/RussianValuesTest.groovy deleted file mode 100644 index aa1bd9cf..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/russian/RussianValuesTest.groovy +++ /dev/null @@ -1,119 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.russian - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.russianContainer - -class RussianValuesTest extends Specification { - - static intConverter = russianContainer().getIntegerConverter() - static longConverter = russianContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Russian"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "ноль" - 1 | "один" - 2 | "два" - 3 | "три" - 4 | "четыре" - 5 | "пять" - 6 | "шесть" - 7 | "семь" - 8 | "восемь" - 9 | "девять" - 11 | "одиннадцать" - 12 | "двенадцать" - 13 | "тринадцать" - 14 | "четырнадцать" - 15 | "пятнадцать" - 16 | "шестнадцать" - 17 | "семнадцать" - 18 | "восемнадцать" - 19 | "девятнадцать" - 10 | "десять" - 20 | "двадцать" - 30 | "тридцать" - 40 | "сорок" - 50 | "пятьдесят" - 60 | "шестьдесят" - 70 | "семьдесят" - 80 | "восемьдесят" - 90 | "девяносто" - 21 | "двадцать один" - 37 | "тридцать семь" - 43 | "сорок три" - 58 | "пятьдесят восемь" - 69 | "шестьдесят девять" - 76 | "семьдесят шесть" - 82 | "восемьдесят два" - 95 | "девяносто пять" - 100 | "сто" - 200 | "двести" - 300 | "триста" - 400 | "четыреста" - 500 | "пятьсот" - 600 | "шестьсот" - 700 | "семьсот" - 800 | "восемьсот" - 900 | "девятьсот" - 111 | "сто одиннадцать" - 272 | "двести семьдесят два" - 387 | "триста восемьдесят семь" - 448 | "четыреста сорок восемь" - 569 | "пятьсот шестьдесят девять" - 625 | "шестьсот двадцать пять" - 782 | "семьсот восемьдесят два" - 895 | "восемьсот девяносто пять" - 999 | "девятьсот девяносто девять" - 1_000 | "одна тысяча" - 2_000 | "две тысячи" - 5_000 | "пять тысяч" - 7_634 | "семь тысяч шестьсот тридцать четыре" - 21_000 | "двадцать одна тысяча" - 24_190 | "двадцать четыре тысячи сто девяносто" - 51_000 | "пятьдесят одна тысяча" - 481_000 | "четыреста восемьдесят одна тысяча" - 653_000 | "шестьсот пятьдесят три тысячи" - 123_454 | "сто двадцать три тысячи четыреста пятьдесят четыре" - 700_000 | "семьсот тысяч" - 999_999 | "девятьсот девяносто девять тысяч девятьсот девяносто девять" - 1_000_000 | "один миллион" - 2_000_000 | "два миллиона" - 5_000_000 | "пять миллионов" - 23_437_219 | "двадцать три миллиона четыреста тридцать семь тысяч двести девятнадцать" - 100_000_000 | "сто миллионов" - 121_000_000 | "сто двадцать один миллион" - 123_456_789 | "сто двадцать три миллиона четыреста пятьдесят шесть тысяч семьсот восемьдесят девять" - 1_000_000_000 | "один миллиард" - 2_147_483_647 | "два миллиарда сто сорок семь миллионов четыреста восемьдесят три тысячи шестьсот сорок семь" - } - - @Unroll - def "should convert long #value to '#words' in Russian"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "пять миллиардов" - - 1_000_000_000_000 | "один триллион" - 2_000_000_000_000 | "два триллиона" - 5_000_000_000_000 | "пять триллионов" - - 1_000_000_000_000_000 | "один квадриллион" - 2_000_000_000_000_000 | "два квадриллиона" - 5_000_000_000_000_000 | "пять квадриллионов" - - 1_000_000_000_000_000_000 | "один квинтиллион" - 2_000_000_000_000_000_000 | "два квинтиллиона" - Long.MAX_VALUE | "девять квинтиллионов двести двадцать три квадриллиона триста семьдесят два триллиона тридцать шесть миллиардов восемьсот пятьдесят четыре миллиона семьсот семьдесят пять тысяч восемьсот семь" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/serbian/SerbianCyrillicIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/serbian/SerbianCyrillicIntegerValuesTest.groovy new file mode 100644 index 00000000..35c0d1ab --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/serbian/SerbianCyrillicIntegerValuesTest.groovy @@ -0,0 +1,123 @@ +package pl.allegro.finance.tradukisto.internal.languages.serbian + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.serbianCyrillicContainer + +class SerbianCyrillicIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = serbianCyrillicContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "нула", + 1 : "један", + 2 : "два", + 3 : "три", + 4 : "четири", + 5 : "пет", + 6 : "шест", + 7 : "седам", + 8 : "осам", + 9 : "девет", + + 11 : "једанаест", + 12 : "дванаест", + 13 : "тринаест", + 14 : "четрнаест", + 15 : "петнаест", + 16 : "шеснаест", + 17 : "седамнаест", + 18 : "осамнаест", + 19 : "деветнаест", + + 10 : "десет", + 20 : "двадесет", + 30 : "тридесет", + 40 : "четрдесет", + 50 : "педесет", + 60 : "шездесет", + 70 : "седамдесет", + 80 : "осамдесет", + 90 : "деведесет", + + 21 : "двадесет један", + 37 : "тридесет седам", + 43 : "четрдесет три", + 58 : "педесет осам", + 69 : "шездесет девет", + 76 : "седамдесет шест", + 82 : "осамдесет два", + 95 : "деведесет пет", + + 100 : "сто", + 200 : "двеста", + 300 : "триста", + 400 : "четиристо", + 500 : "петсто", + 600 : "шестсто", + 700 : "седамсто", + 800 : "осамсто", + 900 : "деветсто", + + 101 : "сто један", + 111 : "сто једанаест", + 272 : "двеста седамдесет два", + 387 : "триста осамдесет седам", + 421 : "четиристо двадесет један", + 448 : "четиристо четрдесет осам", + 569 : "петсто шездесет девет", + 625 : "шестсто двадесет пет", + 782 : "седамсто осамдесет два", + 895 : "осамсто деведесет пет", + 999 : "деветсто деведесет девет", + + 1_000 : "једна хиљада", + 2_000 : "две хиљаде", + 3_000 : "три хиљаде", + 4_000 : "четири хиљаде", + 5_000 : "пет хиљада", + 11_000 : "једанаест хиљада", + 12_000 : "дванаест хиљада", + 13_000 : "тринаест хиљада", + 14_000 : "четрнаест хиљада", + 15_000 : "петнаест хиљада", + 21_000 : "двадесет једна хиљада", + + 7_634 : "седам хиљада шестсто тридесет четири", + 24_190 : "двадесет четири хиљаде сто деведесет", + 99_999 : "деведесет девет хиљада деветсто деведесет девет", + + 111_000 : "сто једанаест хиљада", + 112_000 : "сто дванаест хиљада", + 113_000 : "сто тринаест хиљада", + 115_000 : "сто петнаест хиљада", + 700_000 : "седамсто хиљада", + 653_000 : "шестсто педесет три хиљаде", + + 123_454 : "сто двадесет три хиљаде четиристо педесет четири", + 999_999 : "деветсто деведесет девет хиљада деветсто деведесет девет", + + 1_000_000 : "један милион", + 2_000_000 : "два милиона", + 5_000_000 : "пет милиона", + 11_437_219 : "једанаест милиона четиристо тридесет седам хиљада двеста деветнаест", + 21_437_219 : "двадесет један милион четиристо тридесет седам хиљада двеста деветнаест", + 22_437_219 : "двадесет два милиона четиристо тридесет седам хиљада двеста деветнаест", + 23_437_219 : "двадесет три милиона четиристо тридесет седам хиљада двеста деветнаест", + 100_000_000 : "сто милиона", + 121_000_000 : "сто двадесет један милион", + 121_451_789 : "сто двадесет један милион четиристо педесет једна хиљада седамсто осамдесет девет", + 123_456_789 : "сто двадесет три милиона четиристо педесет шест хиљада седамсто осамдесет девет", + 322_089_890 : "триста двадесет два милиона осамдесет девет хиљада осамсто деведесет", + 1_000_000_000 : "једна милијарда", + 2_141_123_731 : "две милијарде сто четрдесет један милион сто двадесет три хиљаде седамсто тридесет један", + (Integer.MAX_VALUE): "две милијарде сто четрдесет седам милиона четиристо осамдесет три хиљаде шестсто четрдесет седам" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/serbian/SerbianCyrillicValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/serbian/SerbianCyrillicValuesTest.groovy deleted file mode 100644 index 18aaf46b..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/serbian/SerbianCyrillicValuesTest.groovy +++ /dev/null @@ -1,148 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.serbian - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.serbianCyrillicContainer - -class SerbianCyrillicValuesTest extends Specification { - - static intConverter = serbianCyrillicContainer().getIntegerConverter() - static longConverter = serbianCyrillicContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Serbian Cyrillic"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "нула" - 1 | "један" - 2 | "два" - 3 | "три" - 4 | "четири" - 5 | "пет" - 6 | "шест" - 7 | "седам" - 8 | "осам" - 9 | "девет" - - 11 | "једанаест" - 12 | "дванаест" - 13 | "тринаест" - 14 | "четрнаест" - 15 | "петнаест" - 16 | "шеснаест" - 17 | "седамнаест" - 18 | "осамнаест" - 19 | "деветнаест" - - 10 | "десет" - 20 | "двадесет" - 30 | "тридесет" - 40 | "четрдесет" - 50 | "педесет" - 60 | "шездесет" - 70 | "седамдесет" - 80 | "осамдесет" - 90 | "деведесет" - - 21 | "двадесет један" - 37 | "тридесет седам" - 43 | "четрдесет три" - 58 | "педесет осам" - 69 | "шездесет девет" - 76 | "седамдесет шест" - 82 | "осамдесет два" - 95 | "деведесет пет" - - 100 | "сто" - 200 | "двеста" - 300 | "триста" - 400 | "четиристо" - 500 | "петсто" - 600 | "шестсто" - 700 | "седамсто" - 800 | "осамсто" - 900 | "деветсто" - - 101 | "сто један" - 111 | "сто једанаест" - 272 | "двеста седамдесет два" - 387 | "триста осамдесет седам" - 421 | "четиристо двадесет један" - 448 | "четиристо четрдесет осам" - 569 | "петсто шездесет девет" - 625 | "шестсто двадесет пет" - 782 | "седамсто осамдесет два" - 895 | "осамсто деведесет пет" - 999 | "деветсто деведесет девет" - - 1_000 | "једна хиљада" - 2_000 | "две хиљаде" - 3_000 | "три хиљаде" - 4_000 | "четири хиљаде" - 5_000 | "пет хиљада" - 11_000 | "једанаест хиљада" - 12_000 | "дванаест хиљада" - 13_000 | "тринаест хиљада" - 14_000 | "четрнаест хиљада" - 15_000 | "петнаест хиљада" - 21_000 | "двадесет једна хиљада" - - 7_634 | "седам хиљада шестсто тридесет четири" - 24_190 | "двадесет четири хиљаде сто деведесет" - 99_999 | "деведесет девет хиљада деветсто деведесет девет" - - 111_000 | "сто једанаест хиљада" - 112_000 | "сто дванаест хиљада" - 113_000 | "сто тринаест хиљада" - 115_000 | "сто петнаест хиљада" - 700_000 | "седамсто хиљада" - 653_000 | "шестсто педесет три хиљаде" - - 123_454 | "сто двадесет три хиљаде четиристо педесет четири" - 999_999 | "деветсто деведесет девет хиљада деветсто деведесет девет" - - 1_000_000 | "један милион" - 2_000_000 | "два милиона" - 5_000_000 | "пет милиона" - 11_437_219 | "једанаест милиона четиристо тридесет седам хиљада двеста деветнаест" - 21_437_219 | "двадесет један милион четиристо тридесет седам хиљада двеста деветнаест" - 22_437_219 | "двадесет два милиона четиристо тридесет седам хиљада двеста деветнаест" - 23_437_219 | "двадесет три милиона четиристо тридесет седам хиљада двеста деветнаест" - 100_000_000 | "сто милиона" - 121_000_000 | "сто двадесет један милион" - 121_451_789 | "сто двадесет један милион четиристо педесет једна хиљада седамсто осамдесет девет" - 123_456_789 | "сто двадесет три милиона четиристо педесет шест хиљада седамсто осамдесет девет" - - 1_000_000_000 | "једна милијарда" - 2_141_123_731 | "две милијарде сто четрдесет један милион сто двадесет три хиљаде седамсто тридесет један" - Integer.MAX_VALUE | "две милијарде сто четрдесет седам милиона четиристо осамдесет три хиљаде шестсто четрдесет седам" - } - - @Ignore("Needs Serbian Cyrillic long converter and values for trillion, quadrillion, quintillion") - @Unroll - def "should convert long #value to '#words' in Serbian Cyrillic"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "" - - 1_000_000_000_000 | "" - 2_000_000_000_000 | "" - 5_000_000_000_000 | "" - - 1_000_000_000_000_000 | "" - 2_000_000_000_000_000 | "" - 5_000_000_000_000_000 | "" - - 1_000_000_000_000_000_000 | "" - 2_000_000_000_000_000_000 | "" - Long.MAX_VALUE | "" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/serbian/SerbianIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/serbian/SerbianIntegerValuesTest.groovy new file mode 100644 index 00000000..f7ea01c2 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/serbian/SerbianIntegerValuesTest.groovy @@ -0,0 +1,123 @@ +package pl.allegro.finance.tradukisto.internal.languages.serbian + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.serbianContainer + +class SerbianIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = serbianContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "nula", + 1 : "jedan", + 2 : "dva", + 3 : "tri", + 4 : "četiri", + 5 : "pet", + 6 : "šest", + 7 : "sedam", + 8 : "osam", + 9 : "devet", + + 11 : "jedanaest", + 12 : "dvanaest", + 13 : "trinaest", + 14 : "četrnaest", + 15 : "petnaest", + 16 : "šestnaest", + 17 : "sedamnaest", + 18 : "osamnaest", + 19 : "devetnaest", + + 10 : "deset", + 20 : "dvadeset", + 30 : "trideset", + 40 : "četrdeset", + 50 : "pedeset", + 60 : "šezdeset", + 70 : "sedamdeset", + 80 : "osamdeset", + 90 : "devedeset", + + 21 : "dvadeset jedan", + 37 : "trideset sedam", + 43 : "četrdeset tri", + 58 : "pedeset osam", + 69 : "šezdeset devet", + 76 : "sedamdeset šest", + 82 : "osamdeset dva", + 95 : "devedeset pet", + + 100 : "sto", + 200 : "dvesta", + 300 : "trista", + 400 : "četiristo", + 500 : "petsto", + 600 : "šeststo", + 700 : "sedamsto", + 800 : "osamsto", + 900 : "devetsto", + + 101 : "sto jedan", + 111 : "sto jedanaest", + 272 : "dvesta sedamdeset dva", + 387 : "trista osamdeset sedam", + 421 : "četiristo dvadeset jedan", + 448 : "četiristo četrdeset osam", + 569 : "petsto šezdeset devet", + 625 : "šeststo dvadeset pet", + 782 : "sedamsto osamdeset dva", + 895 : "osamsto devedeset pet", + 999 : "devetsto devedeset devet", + + 1_000 : "jedna hiljada", + 2_000 : "dve hiljade", + 3_000 : "tri hiljade", + 4_000 : "četiri hiljade", + 5_000 : "pet hiljada", + 11_000 : "jedanaest hiljada", + 12_000 : "dvanaest hiljada", + 13_000 : "trinaest hiljada", + 14_000 : "četrnaest hiljada", + 15_000 : "petnaest hiljada", + 21_000 : "dvadeset jedna hiljada", + + 7_634 : "sedam hiljada šeststo trideset četiri", + 24_190 : "dvadeset četiri hiljade sto devedeset", + 99_999 : "devedeset devet hiljada devetsto devedeset devet", + + 111_000 : "sto jedanaest hiljada", + 112_000 : "sto dvanaest hiljada", + 113_000 : "sto trinaest hiljada", + 115_000 : "sto petnaest hiljada", + 700_000 : "sedamsto hiljada", + 653_000 : "šeststo pedeset tri hiljade", + + 123_454 : "sto dvadeset tri hiljade četiristo pedeset četiri", + 999_999 : "devetsto devedeset devet hiljada devetsto devedeset devet", + + 1_000_000 : "jedan milion", + 2_000_000 : "dva miliona", + 5_000_000 : "pet miliona", + 11_437_219 : "jedanaest miliona četiristo trideset sedam hiljada dvesta devetnaest", + 21_437_219 : "dvadeset jedan milion četiristo trideset sedam hiljada dvesta devetnaest", + 22_437_219 : "dvadeset dva miliona četiristo trideset sedam hiljada dvesta devetnaest", + 23_437_219 : "dvadeset tri miliona četiristo trideset sedam hiljada dvesta devetnaest", + 100_000_000 : "sto miliona", + 121_000_000 : "sto dvadeset jedan milion", + 121_451_789 : "sto dvadeset jedan milion četiristo pedeset jedna hiljada sedamsto osamdeset devet", + 123_456_789 : "sto dvadeset tri miliona četiristo pedeset šest hiljada sedamsto osamdeset devet", + 322_089_890 : "trista dvadeset dva miliona osamdeset devet hiljada osamsto devedeset", + 1_000_000_000 : "jedna milijarda", + 2_141_123_731 : "dve milijarde sto četrdeset jedan milion sto dvadeset tri hiljade sedamsto trideset jedan", + (Integer.MAX_VALUE): "dve milijarde sto četrdeset sedam miliona četiristo osamdeset tri hiljade šeststo četrdeset sedam" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/serbian/SerbianValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/serbian/SerbianValuesTest.groovy deleted file mode 100644 index 3641c4a4..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/serbian/SerbianValuesTest.groovy +++ /dev/null @@ -1,148 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.serbian - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.serbianContainer - -class SerbianValuesTest extends Specification { - - static intConverter = serbianContainer().getIntegerConverter() - static longConverter = serbianContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Serbian"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "nula" - 1 | "jedan" - 2 | "dva" - 3 | "tri" - 4 | "četiri" - 5 | "pet" - 6 | "šest" - 7 | "sedam" - 8 | "osam" - 9 | "devet" - - 11 | "jedanaest" - 12 | "dvanaest" - 13 | "trinaest" - 14 | "četrnaest" - 15 | "petnaest" - 16 | "šestnaest" - 17 | "sedamnaest" - 18 | "osamnaest" - 19 | "devetnaest" - - 10 | "deset" - 20 | "dvadeset" - 30 | "trideset" - 40 | "četrdeset" - 50 | "pedeset" - 60 | "šezdeset" - 70 | "sedamdeset" - 80 | "osamdeset" - 90 | "devedeset" - - 21 | "dvadeset jedan" - 37 | "trideset sedam" - 43 | "četrdeset tri" - 58 | "pedeset osam" - 69 | "šezdeset devet" - 76 | "sedamdeset šest" - 82 | "osamdeset dva" - 95 | "devedeset pet" - - 100 | "sto" - 200 | "dvesta" - 300 | "trista" - 400 | "četiristo" - 500 | "petsto" - 600 | "šeststo" - 700 | "sedamsto" - 800 | "osamsto" - 900 | "devetsto" - - 101 | "sto jedan" - 111 | "sto jedanaest" - 272 | "dvesta sedamdeset dva" - 387 | "trista osamdeset sedam" - 421 | "četiristo dvadeset jedan" - 448 | "četiristo četrdeset osam" - 569 | "petsto šezdeset devet" - 625 | "šeststo dvadeset pet" - 782 | "sedamsto osamdeset dva" - 895 | "osamsto devedeset pet" - 999 | "devetsto devedeset devet" - - 1_000 | "jedna hiljada" - 2_000 | "dve hiljade" - 3_000 | "tri hiljade" - 4_000 | "četiri hiljade" - 5_000 | "pet hiljada" - 11_000 | "jedanaest hiljada" - 12_000 | "dvanaest hiljada" - 13_000 | "trinaest hiljada" - 14_000 | "četrnaest hiljada" - 15_000 | "petnaest hiljada" - 21_000 | "dvadeset jedna hiljada" - - 7_634 | "sedam hiljada šeststo trideset četiri" - 24_190 | "dvadeset četiri hiljade sto devedeset" - 99_999 | "devedeset devet hiljada devetsto devedeset devet" - - 111_000 | "sto jedanaest hiljada" - 112_000 | "sto dvanaest hiljada" - 113_000 | "sto trinaest hiljada" - 115_000 | "sto petnaest hiljada" - 700_000 | "sedamsto hiljada" - 653_000 | "šeststo pedeset tri hiljade" - - 123_454 | "sto dvadeset tri hiljade četiristo pedeset četiri" - 999_999 | "devetsto devedeset devet hiljada devetsto devedeset devet" - - 1_000_000 | "jedan milion" - 2_000_000 | "dva miliona" - 5_000_000 | "pet miliona" - 11_437_219 | "jedanaest miliona četiristo trideset sedam hiljada dvesta devetnaest" - 21_437_219 | "dvadeset jedan milion četiristo trideset sedam hiljada dvesta devetnaest" - 22_437_219 | "dvadeset dva miliona četiristo trideset sedam hiljada dvesta devetnaest" - 23_437_219 | "dvadeset tri miliona četiristo trideset sedam hiljada dvesta devetnaest" - 100_000_000 | "sto miliona" - 121_000_000 | "sto dvadeset jedan milion" - 121_451_789 | "sto dvadeset jedan milion četiristo pedeset jedna hiljada sedamsto osamdeset devet" - 123_456_789 | "sto dvadeset tri miliona četiristo pedeset šest hiljada sedamsto osamdeset devet" - - 1_000_000_000 | "jedna milijarda" - 2_141_123_731 | "dve milijarde sto četrdeset jedan milion sto dvadeset tri hiljade sedamsto trideset jedan" - Integer.MAX_VALUE | "dve milijarde sto četrdeset sedam miliona četiristo osamdeset tri hiljade šeststo četrdeset sedam" - } - - @Ignore("Needs Serbian long converter and values for trillion, quadrillion, quintillion") - @Unroll - def "should convert long #value to '#words' in Serbian"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "" - - 1_000_000_000_000 | "" - 2_000_000_000_000 | "" - 5_000_000_000_000 | "" - - 1_000_000_000_000_000 | "" - 2_000_000_000_000_000 | "" - 5_000_000_000_000_000 | "" - - 1_000_000_000_000_000_000 | "" - 2_000_000_000_000_000_000 | "" - Long.MAX_VALUE | "" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/slovak/SlovakIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/slovak/SlovakIntegerValuesTest.groovy new file mode 100644 index 00000000..81afc043 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/slovak/SlovakIntegerValuesTest.groovy @@ -0,0 +1,117 @@ +package pl.allegro.finance.tradukisto.internal.languages.slovak + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.slovakContainer + +class SlovakIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = slovakContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "nula", + 1 : "jedna", + 2 : "dve", + 3 : "tri", + 4 : "štyri", + 5 : "päť", + 6 : "šesť", + 7 : "sedem", + 8 : "osem", + 9 : "deväť", + + 11 : "jedenásť", + 12 : "dvanásť", + 13 : "trinásť", + 14 : "štrnásť", + 15 : "pätnásť", + 16 : "šestnásť", + 17 : "sedemnásť", + 18 : "osemnásť", + 19 : "devätnásť", + + 10 : "desať", + 20 : "dvadsať", + 30 : "tridsať", + 40 : "štyridsať", + 50 : "päťdesiat", + 60 : "šesťdesiat", + 70 : "sedemdesiat", + 80 : "osemdesiat", + 90 : "deväťdesiat", + + 21 : "dvadsať jedna", + 37 : "tridsať sedem", + 43 : "štyridsať tri", + 58 : "päťdesiat osem", + 69 : "šesťdesiat deväť", + 76 : "sedemdesiat šesť", + 82 : "osemdesiat dva", + 95 : "deväťdesiat päť", + + 100 : "sto", + 200 : "dvesto", + 300 : "tristo", + 400 : "štyristo", + 500 : "päťsto", + 600 : "šesťsto", + 700 : "sedemsto", + 800 : "osemsto", + 900 : "deväťsto", + + 111 : "sto jedenásť", + 272 : "dvesto sedemdesiat dva", + 387 : "tristo osemdesiat sedem", + 448 : "štyristo štyridsať osem", + 569 : "päťsto šesťdesiat deväť", + 625 : "šesťsto dvadsať päť", + 782 : "sedemsto osemdesiat dva", + 895 : "osemsto deväťdesiat päť", + 999 : "deväťsto deväťdesiat deväť", + + 1_000 : "jeden tisíc", + 2_000 : "dva tisíce", + 3_000 : "tri tisíce", + 4_000 : "štyri tisíce", + 5_000 : "päť tisíc", + 7_634 : "sedem tisíc šesťsto tridsať štyri", + 11_000 : "jedenásť tisíc", + 15_000 : "pätnásť tisíc", + 21_000 : "dvadsať jeden tisíc", + 24_190 : "dvadsať štyri tisíc sto deväťdesiat", + 653_000 : "šesťsto päťdesiat tri tisíc", + 123_454 : "sto dvadsať tri tisíc štyristo päťdesiat štyri", + 700_000 : "sedemsto tisíc", + 999_999 : "deväťsto deväťdesiat deväť tisíc deväťsto deväťdesiat deväť", + + 1_000_000 : "jeden milión", + 2_000_000 : "dva milióny", + 5_000_000 : "päť miliónov", + 23_437_219 : "dvadsať tri miliónov štyristo tridsať sedem tisíc dvesto devätnásť", + 100_000_000 : "sto miliónov", + 123_456_789 : "sto dvadsať tri miliónov štyristo päťdesiat šesť tisíc sedemsto osemdesiat deväť", + 322_089_890 : "tristo dvadsať dva miliónov osemdesiat deväť tisíc osemsto deväťdesiat", + + 1_000_000_000: "jedna miliarda", + 2_147_483_647: "dve miliardy sto štyridsať sedem miliónov štyristo osemdesiat tri tisíc šesťsto štyridsať sedem" + ] + + def "should convert any value in range of 0-999 in Slovak"() { + when: + def words = intConverter.asWords(value) + + then: + notThrown(IllegalArgumentException) + words.length() > 0 + + where: + value << (0..999) + } +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/slovak/SlovakValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/slovak/SlovakValuesTest.groovy deleted file mode 100644 index f8832b39..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/slovak/SlovakValuesTest.groovy +++ /dev/null @@ -1,142 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.slovak - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.slovakContainer - -class SlovakValuesTest extends Specification { - - static intConverter = slovakContainer().getIntegerConverter() - static longConverter = slovakContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Slovak"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "nula" - 1 | "jedna" - 2 | "dve" - 3 | "tri" - 4 | "štyri" - 5 | "päť" - 6 | "šesť" - 7 | "sedem" - 8 | "osem" - 9 | "deväť" - - 11 | "jedenásť" - 12 | "dvanásť" - 13 | "trinásť" - 14 | "štrnásť" - 15 | "pätnásť" - 16 | "šestnásť" - 17 | "sedemnásť" - 18 | "osemnásť" - 19 | "devätnásť" - - 10 | "desať" - 20 | "dvadsať" - 30 | "tridsať" - 40 | "štyridsať" - 50 | "päťdesiat" - 60 | "šesťdesiat" - 70 | "sedemdesiat" - 80 | "osemdesiat" - 90 | "deväťdesiat" - - 21 | "dvadsať jedna" - 37 | "tridsať sedem" - 43 | "štyridsať tri" - 58 | "päťdesiat osem" - 69 | "šesťdesiat deväť" - 76 | "sedemdesiat šesť" - 82 | "osemdesiat dva" - 95 | "deväťdesiat päť" - - 100 | "sto" - 200 | "dvesto" - 300 | "tristo" - 400 | "štyristo" - 500 | "päťsto" - 600 | "šesťsto" - 700 | "sedemsto" - 800 | "osemsto" - 900 | "deväťsto" - - 111 | "sto jedenásť" - 272 | "dvesto sedemdesiat dva" - 387 | "tristo osemdesiat sedem" - 448 | "štyristo štyridsať osem" - 569 | "päťsto šesťdesiat deväť" - 625 | "šesťsto dvadsať päť" - 782 | "sedemsto osemdesiat dva" - 895 | "osemsto deväťdesiat päť" - 999 | "deväťsto deväťdesiat deväť" - - 1_000 | "jeden tisíc" - 2_000 | "dva tisíce" - 3_000 | "tri tisíce" - 4_000 | "štyri tisíce" - 5_000 | "päť tisíc" - 7_634 | "sedem tisíc šesťsto tridsať štyri" - 11_000 | "jedenásť tisíc" - 15_000 | "pätnásť tisíc" - 21_000 | "dvadsať jeden tisíc" - 24_190 | "dvadsať štyri tisíc sto deväťdesiat" - 653_000 | "šesťsto päťdesiat tri tisíc" - 123_454 | "sto dvadsať tri tisíc štyristo päťdesiat štyri" - 700_000 | "sedemsto tisíc" - 999_999 | "deväťsto deväťdesiat deväť tisíc deväťsto deväťdesiat deväť" - - 1_000_000 | "jeden milión" - 2_000_000 | "dva milióny" - 5_000_000 | "päť miliónov" - 23_437_219 | "dvadsať tri miliónov štyristo tridsať sedem tisíc dvesto devätnásť" - 100_000_000 | "sto miliónov" - 123_456_789 | "sto dvadsať tri miliónov štyristo päťdesiat šesť tisíc sedemsto osemdesiat deväť" - 322_089_890 | "tristo dvadsať dva miliónov osemdesiat deväť tisíc osemsto deväťdesiat" - - 1_000_000_000 | "jedna miliarda" - 2_147_483_647 | "dve miliardy sto štyridsať sedem miliónov štyristo osemdesiat tri tisíc šesťsto štyridsať sedem" - } - - def "should convert any value in range of 0-999 in Slovak"() { - when: - def words = intConverter.asWords(value) - - then: - notThrown(IllegalArgumentException) - words.length() > 0 - - where: - value << (0..999) - } - - @Ignore("Needs Slovak long converter and values for trillion, quadrillion, quintillion") - @Unroll - def "should convert long #value to '#words' in Slovak"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "" - - 1_000_000_000_000 | "" - 2_000_000_000_000 | "" - 5_000_000_000_000 | "" - - 1_000_000_000_000_000 | "" - 2_000_000_000_000_000 | "" - 5_000_000_000_000_000 | "" - - 1_000_000_000_000_000_000 | "" - 2_000_000_000_000_000_000 | "" - Long.MAX_VALUE | "" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/slovene/SloveneIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/slovene/SloveneIntegerValuesTest.groovy new file mode 100644 index 00000000..3cb24e5f --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/slovene/SloveneIntegerValuesTest.groovy @@ -0,0 +1,116 @@ +package pl.allegro.finance.tradukisto.internal.languages.slovene + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.sloveneContainer + +class SloveneIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = sloveneContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "nič", + 1 : "ena", + 2 : "dve", + 3 : "tri", + 4 : "štiri", + 5 : "pet", + 6 : "šest", + 7 : "sedem", + 8 : "osem", + 9 : "devet", + 11 : "enajst", + 12 : "dvanajst", + 13 : "trinajst", + 14 : "štirinajst", + 15 : "petnajst", + 16 : "šestnajst", + 17 : "sedemnajst", + 18 : "osemnajst", + 19 : "devetnajst", + 10 : "deset", + 20 : "dvajset", + 30 : "trideset", + 40 : "štirideset", + 50 : "petdeset", + 60 : "šestdeset", + 70 : "sedemdeset", + 80 : "osemdeset", + 90 : "devetdeset", + 21 : "enaindvajset", + 37 : "sedemintrideset", + 43 : "triinštirideset", + 58 : "oseminpetdeset", + 69 : "devetinšestdeset", + 76 : "šestinsedemdeset", + 82 : "dveinosemdeset", + 95 : "petindevetdeset", + 100 : "sto", + 200 : "dvesto", + 300 : "tristo", + 400 : "štiristo", + 500 : "petsto", + 600 : "šeststo", + 700 : "sedemsto", + 800 : "osemsto", + 900 : "devetsto", + 101 : "sto ena", + 111 : "sto enajst", + 272 : "dvesto dveinsedemdeset", + 387 : "tristo sedeminosemdeset", + 421 : "štiristo enaindvajset", + 448 : "štiristo oseminštirideset", + 569 : "petsto devetinšestdeset", + 625 : "šeststo petindvajset", + 782 : "sedemsto dveinosemdeset", + 895 : "osemsto petindevetdeset", + 999 : "devetsto devetindevetdeset", + 1_000 : "ena tisoč", + 2_000 : "dve tisoč", + 3_000 : "tri tisoč", + 4_000 : "štiri tisoč", + 5_000 : "pet tisoč", + 11_000 : "enajst tisoč", + 12_000 : "dvanajst tisoč", + 13_000 : "trinajst tisoč", + 14_000 : "štirinajst tisoč", + 15_000 : "petnajst tisoč", + 21_000 : "enaindvajset tisoč", + 7_634 : "sedem tisoč šeststo štiriintrideset", + 24_190 : "štiriindvajset tisoč sto devetdeset", + 99_999 : "devetindevetdeset tisoč devetsto devetindevetdeset", + 111_000 : "sto enajst tisoč", + 112_000 : "sto dvanajst tisoč", + 113_000 : "sto trinajst tisoč", + 115_000 : "sto petnajst tisoč", + 700_000 : "sedemsto tisoč", + 653_000 : "šeststo triinpetdeset tisoč", + 123_454 : "sto triindvajset tisoč štiristo štiriinpetdeset", + 999_999 : "devetsto devetindevetdeset tisoč devetsto devetindevetdeset", + 1_000_000 : "en milijon", + 2_000_000 : "dva milijona", + 3_000_000 : "trije milijone", + 4_000_000 : "štirije milijone", + 5_000_000 : "pet milijonov", + 6_000_000 : "šest milijonov", + 11_437_219 : "enajst milijonov štiristo sedemintrideset tisoč dvesto devetnajst", + 21_437_219 : "enaindvajset milijonov štiristo sedemintrideset tisoč dvesto devetnajst", + 22_437_219 : "dveindvajset milijonov štiristo sedemintrideset tisoč dvesto devetnajst", + 23_437_219 : "triindvajset milijonov štiristo sedemintrideset tisoč dvesto devetnajst", + 100_000_000 : "sto milijonov", + 121_000_000 : "sto enaindvajset milijonov", + 121_451_789 : "sto enaindvajset milijonov štiristo enainpetdeset tisoč sedemsto devetinosemdeset", + 123_456_789 : "sto triindvajset milijonov štiristo šestinpetdeset tisoč sedemsto devetinosemdeset", + 322_089_890 : "tristo dveindvajset milijonov devetinosemdeset tisoč osemsto devetdeset", + 1_000_000_000 : "ena milijarda", + 2_141_123_731 : "dve milijardi sto enainštirideset milijonov sto triindvajset tisoč sedemsto enaintrideset", + (Integer.MAX_VALUE): "dve milijardi sto sedeminštirideset milijonov štiristo triinosemdeset tisoč šeststo sedeminštirideset" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/slovene/SloveneLongValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/slovene/SloveneLongValuesTest.groovy new file mode 100644 index 00000000..55766308 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/slovene/SloveneLongValuesTest.groovy @@ -0,0 +1,49 @@ +package pl.allegro.finance.tradukisto.internal.languages.slovene + +import pl.allegro.finance.tradukisto.internal.languages.AbstractLongValuesTest +import spock.lang.Ignore + +import static pl.allegro.finance.tradukisto.internal.Container.sloveneContainer + +@Ignore("Needs Slovene long converter") +class SloveneLongValuesTest extends AbstractLongValuesTest { + + def setup() { + longConverter = sloveneContainer().getLongConverter() + } + + @Override + LongValuesTestData getTestData() { + testData = new LongValuesTestData(longTranslations) + } + + private static longTranslations = [ + 1_000_000_000 : "ena milijarda", + 2_000_000_000 : "dve milijardi", + 3_000_000_000 : "tri milijarde", + 4_000_000_000 : "štiri milijarde", + 5_000_000_000 : "pet milijard", + 14_000_000_000 : "štirinajst milijard", + + 1_000_000_000_000 : "en bilijon", + 2_000_000_000_000 : "dva bilijona", + 3_000_000_000_000 : "trije bilijoni", + 4_000_000_000_000 : "štirije bilijoni", + 5_000_000_000_000 : "pet bilijonov", + 14_000_000_000_000 : "štirinajst bilijonov", + + 1_000_000_000_000_000 : "ena bilijarda", + 2_000_000_000_000_000 : "dve bilijardi", + 3_000_000_000_000_000 : "tri bilijarde", + 4_000_000_000_000_000 : "štiri bilijarde", + 5_000_000_000_000_000 : "pet bilijard", + 14_000_000_000_000_000 : "štirinajst bilijard", + + 1_000_000_000_000_000_000: "en trilijon", + 2_000_000_000_000_000_000: "dva trilijona", + 3_000_000_000_000_000_000: "trije trilijoni", + 4_000_000_000_000_000_000: "štirije trilijoni", + 5_000_000_000_000_000_000: "pet trilijonov", + (Long.MAX_VALUE) : "devet trilijonov dvjesto triindvajset bilijard tristo dvainsedemdeset bilijonov šestintrideset milijardi osamsto štiriinpedeset milijonov sedamsto petinsedemdeset tisoč sedeminosemsto" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/slovene/SloveneValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/slovene/SloveneValuesTest.groovy deleted file mode 100644 index c98d7df4..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/slovene/SloveneValuesTest.groovy +++ /dev/null @@ -1,154 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.slovene - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.sloveneContainer - -class SloveneValuesTest extends Specification { - - static intConverter = sloveneContainer().getIntegerConverter() - static longConverter = sloveneContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Slovene"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "nič" - 1 | "ena" - 2 | "dve" - 3 | "tri" - 4 | "štiri" - 5 | "pet" - 6 | "šest" - 7 | "sedem" - 8 | "osem" - 9 | "devet" - 11 | "enajst" - 12 | "dvanajst" - 13 | "trinajst" - 14 | "štirinajst" - 15 | "petnajst" - 16 | "šestnajst" - 17 | "sedemnajst" - 18 | "osemnajst" - 19 | "devetnajst" - 10 | "deset" - 20 | "dvajset" - 30 | "trideset" - 40 | "štirideset" - 50 | "petdeset" - 60 | "šestdeset" - 70 | "sedemdeset" - 80 | "osemdeset" - 90 | "devetdeset" - 21 | "enaindvajset" - 37 | "sedemintrideset" - 43 | "triinštirideset" - 58 | "oseminpetdeset" - 69 | "devetinšestdeset" - 76 | "šestinsedemdeset" - 82 | "dveinosemdeset" - 95 | "petindevetdeset" - 100 | "sto" - 200 | "dvesto" - 300 | "tristo" - 400 | "štiristo" - 500 | "petsto" - 600 | "šeststo" - 700 | "sedemsto" - 800 | "osemsto" - 900 | "devetsto" - 101 | "sto ena" - 111 | "sto enajst" - 272 | "dvesto dveinsedemdeset" - 387 | "tristo sedeminosemdeset" - 421 | "štiristo enaindvajset" - 448 | "štiristo oseminštirideset" - 569 | "petsto devetinšestdeset" - 625 | "šeststo petindvajset" - 782 | "sedemsto dveinosemdeset" - 895 | "osemsto petindevetdeset" - 999 | "devetsto devetindevetdeset" - 1_000 | "ena tisoč" - 2_000 | "dve tisoč" - 3_000 | "tri tisoč" - 4_000 | "štiri tisoč" - 5_000 | "pet tisoč" - 11_000 | "enajst tisoč" - 12_000 | "dvanajst tisoč" - 13_000 | "trinajst tisoč" - 14_000 | "štirinajst tisoč" - 15_000 | "petnajst tisoč" - 21_000 | "enaindvajset tisoč" - 7_634 | "sedem tisoč šeststo štiriintrideset" - 24_190 | "štiriindvajset tisoč sto devetdeset" - 99_999 | "devetindevetdeset tisoč devetsto devetindevetdeset" - 111_000 | "sto enajst tisoč" - 112_000 | "sto dvanajst tisoč" - 113_000 | "sto trinajst tisoč" - 115_000 | "sto petnajst tisoč" - 700_000 | "sedemsto tisoč" - 653_000 | "šeststo triinpetdeset tisoč" - 123_454 | "sto triindvajset tisoč štiristo štiriinpetdeset" - 999_999 | "devetsto devetindevetdeset tisoč devetsto devetindevetdeset" - 1_000_000 | "en milijon" - 2_000_000 | "dva milijona" - 3_000_000 | "trije milijone" - 4_000_000 | "štirije milijone" - 5_000_000 | "pet milijonov" - 6_000_000 | "šest milijonov" - 11_437_219 | "enajst milijonov štiristo sedemintrideset tisoč dvesto devetnajst" - 21_437_219 | "enaindvajset milijonov štiristo sedemintrideset tisoč dvesto devetnajst" - 22_437_219 | "dveindvajset milijonov štiristo sedemintrideset tisoč dvesto devetnajst" - 23_437_219 | "triindvajset milijonov štiristo sedemintrideset tisoč dvesto devetnajst" - 100_000_000 | "sto milijonov" - 121_000_000 | "sto enaindvajset milijonov" - 121_451_789 | "sto enaindvajset milijonov štiristo enainpetdeset tisoč sedemsto devetinosemdeset" - 123_456_789 | "sto triindvajset milijonov štiristo šestinpetdeset tisoč sedemsto devetinosemdeset" - 1_000_000_000 | "ena milijarda" - 2_141_123_731 | "dve milijardi sto enainštirideset milijonov sto triindvajset tisoč sedemsto enaintrideset" - Integer.MAX_VALUE | "dve milijardi sto sedeminštirideset milijonov štiristo triinosemdeset tisoč šeststo sedeminštirideset" - } - - @Ignore("Needs Slovene long converter") - @Unroll - def "should convert long #value to '#words' in Slovene"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 1_000_000_000 | "ena milijarda" - 2_000_000_000 | "dve milijardi" - 3_000_000_000 | "tri milijarde" - 4_000_000_000 | "štiri milijarde" - 5_000_000_000 | "pet milijard" - 14_000_000_000 | "štirinajst milijard" - - 1_000_000_000_000 | "en bilijon" - 2_000_000_000_000 | "dva bilijona" - 3_000_000_000_000 | "trije bilijoni" - 4_000_000_000_000 | "štirije bilijoni" - 5_000_000_000_000 | "pet bilijonov" - 14_000_000_000_000 | "štirinajst bilijonov" - - 1_000_000_000_000_000 | "ena bilijarda" - 2_000_000_000_000_000 | "dve bilijardi" - 3_000_000_000_000_000 | "tri bilijarde" - 4_000_000_000_000_000 | "štiri bilijarde" - 5_000_000_000_000_000 | "pet bilijard" - 14_000_000_000_000_000 | "štirinajst bilijard" - - 1_000_000_000_000_000_000 | "en trilijon" - 2_000_000_000_000_000_000 | "dva trilijona" - 3_000_000_000_000_000_000 | "trije trilijoni" - 4_000_000_000_000_000_000 | "štirije trilijoni" - 5_000_000_000_000_000_000 | "pet trilijonov" - Long.MAX_VALUE | "devet trilijonov dvjesto triindvajset bilijard tristo dvainsedemdeset bilijonov šestintrideset milijardi osamsto štiriinpedeset milijonov sedamsto petinsedemdeset tisoč sedeminosemsto" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/spanish/SpanishIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/spanish/SpanishIntegerValuesTest.groovy new file mode 100644 index 00000000..15c412c9 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/spanish/SpanishIntegerValuesTest.groovy @@ -0,0 +1,123 @@ +package pl.allegro.finance.tradukisto.internal.languages.spanish + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.spanishContainer + +class SpanishIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = spanishContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "cero", + 1 : "uno", + 2 : "dos", + 3 : "tres", + 4 : "cuatro", + 5 : "cinco", + 6 : "seis", + 7 : "siete", + 8 : "ocho", + 9 : "nueve", + + 11 : "once", + 12 : "doce", + 13 : "trece", + 14 : "catorce", + 15 : "quince", + 16 : "dieciséis", + 17 : "diecisiete", + 18 : "dieciocho", + 19 : "diecinueve", + + 10 : "diez", + 20 : "veinte", + 30 : "treinta", + 40 : "cuarenta", + 50 : "cincuenta", + 60 : "sesenta", + 70 : "setenta", + 80 : "ochenta", + 90 : "noventa", + + 21 : "veintiuno", + 22 : "veintidós", + 31 : "treinta y uno", + 32 : "treinta y dos", + 37 : "treinta y siete", + 41 : "cuarenta y uno", + 43 : "cuarenta y tres", + 51 : "cincuenta y uno", + 58 : "cincuenta y ocho", + 61 : "sesenta y uno", + 69 : "sesenta y nueve", + 76 : "setenta y seis", + 82 : "ochenta y dos", + 95 : "noventa y cinco", + + 100 : "cien", + 200 : "doscientos", + 300 : "trescientos", + 400 : "cuatrocientos", + 500 : "quinientos", + 600 : "seiscientos", + 700 : "setecientos", + 800 : "ochocientos", + 900 : "novecientos", + + 101 : "ciento uno", + 111 : "ciento once", + 272 : "doscientos setenta y dos", + 387 : "trescientos ochenta y siete", + 448 : "cuatrocientos cuarenta y ocho", + 569 : "quinientos sesenta y nueve", + 625 : "seiscientos veinticinco", + 782 : "setecientos ochenta y dos", + 801 : "ochocientos uno", + 895 : "ochocientos noventa y cinco", + 999 : "novecientos noventa y nueve", + + 1_000 : "mil", + 2_000 : "dos mil", + 3_000 : "tres mil", + 4_000 : "cuatro mil", + 5_000 : "cinco mil", + 7_634 : "siete mil seiscientos treinta y cuatro", + 11_000 : "once mil", + 15_000 : "quince mil", + 21_000 : "veintiún mil", + 24_190 : "veinticuatro mil ciento noventa", + 653_000 : "seiscientos cincuenta y tres mil", + 123_454 : "ciento veintitrés mil cuatrocientos cincuenta y cuatro", + 700_000 : "setecientos mil", + 999_999 : "novecientos noventa y nueve mil novecientos noventa y nueve", + + 1_000_000 : "un millón", + 2_000_000 : "dos millones", + 5_000_000 : "cinco millones", + 7_000_000 : "siete millones", + 12_011_121 : "doce millones once mil ciento veintiuno", + 15_080_000 : "quince millones ochenta mil", + 23_437_219 : "veintitrés millones cuatrocientos treinta y siete mil doscientos diecinueve", + 100_000_000 : "cien millones", + 111_111_111 : "ciento once millones ciento once mil ciento once", + 401_000_000 : "cuatrocientos un millones", + 123_456_789 : "ciento veintitrés millones cuatrocientos cincuenta y seis mil setecientos ochenta y nueve", + 322_089_890 : "trescientos veintidós millones ochenta y nueve mil ochocientos noventa", + + 1_000_000_000: "mil millones", + 1_500_000_000: "mil quinientos millones", + 2_000_000_000: "dos mil millones", + 2_001_001_100: "dos mil un millones mil cien", + 2_002_002_111: "dos mil dos millones dos mil ciento once", + 2_005_004_110: "dos mil cinco millones cuatro mil ciento diez", + 2_147_483_647: "dos mil ciento cuarenta y siete millones cuatrocientos ochenta y tres mil seiscientos cuarenta y siete" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/spanish/SpanishValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/spanish/SpanishValuesTest.groovy index d4387fd0..abdc380b 100644 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/spanish/SpanishValuesTest.groovy +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/spanish/SpanishValuesTest.groovy @@ -1,152 +1,13 @@ package pl.allegro.finance.tradukisto.internal.languages.spanish -import spock.lang.Ignore import spock.lang.Specification import spock.lang.Unroll import static pl.allegro.finance.tradukisto.internal.Container.spanishContainer class SpanishValuesTest extends Specification { - - static intConverter = spanishContainer().getIntegerConverter() - static longConverter = spanishContainer().getLongConverter() static moneyConverter = spanishContainer().getBankingMoneyConverter() - - @Unroll - def "should convert #value to '#words' in Spanish"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "cero" - 1 | "uno" - 2 | "dos" - 3 | "tres" - 4 | "cuatro" - 5 | "cinco" - 6 | "seis" - 7 | "siete" - 8 | "ocho" - 9 | "nueve" - - 11 | "once" - 12 | "doce" - 13 | "trece" - 14 | "catorce" - 15 | "quince" - 16 | "dieciséis" - 17 | "diecisiete" - 18 | "dieciocho" - 19 | "diecinueve" - - 10 | "diez" - 20 | "veinte" - 30 | "treinta" - 40 | "cuarenta" - 50 | "cincuenta" - 60 | "sesenta" - 70 | "setenta" - 80 | "ochenta" - 90 | "noventa" - - 21 | "veintiuno" - 22 | "veintidós" - 31 | "treinta y uno" - 32 | "treinta y dos" - 37 | "treinta y siete" - 41 | "cuarenta y uno" - 43 | "cuarenta y tres" - 51 | "cincuenta y uno" - 58 | "cincuenta y ocho" - 61 | "sesenta y uno" - 69 | "sesenta y nueve" - 76 | "setenta y seis" - 82 | "ochenta y dos" - 95 | "noventa y cinco" - - 100 | "cien" - 200 | "doscientos" - 300 | "trescientos" - 400 | "cuatrocientos" - 500 | "quinientos" - 600 | "seiscientos" - 700 | "setecientos" - 800 | "ochocientos" - 900 | "novecientos" - - 101 | "ciento uno" - 111 | "ciento once" - 272 | "doscientos setenta y dos" - 387 | "trescientos ochenta y siete" - 448 | "cuatrocientos cuarenta y ocho" - 569 | "quinientos sesenta y nueve" - 625 | "seiscientos veinticinco" - 782 | "setecientos ochenta y dos" - 801 | "ochocientos uno" - 895 | "ochocientos noventa y cinco" - 999 | "novecientos noventa y nueve" - - 1_000 | "mil" - 2_000 | "dos mil" - 3_000 | "tres mil" - 4_000 | "cuatro mil" - 5_000 | "cinco mil" - 7_634 | "siete mil seiscientos treinta y cuatro" - 11_000 | "once mil" - 15_000 | "quince mil" - 21_000 | "veintiún mil" - 24_190 | "veinticuatro mil ciento noventa" - 653_000 | "seiscientos cincuenta y tres mil" - 123_454 | "ciento veintitrés mil cuatrocientos cincuenta y cuatro" - 700_000 | "setecientos mil" - 999_999 | "novecientos noventa y nueve mil novecientos noventa y nueve" - - 1_000_000 | "un millón" - 2_000_000 | "dos millones" - 5_000_000 | "cinco millones" - 7_000_000 | "siete millones" - 12_011_121 | "doce millones once mil ciento veintiuno" - 15_080_000 | "quince millones ochenta mil" - 23_437_219 | "veintitrés millones cuatrocientos treinta y siete mil doscientos diecinueve" - 100_000_000 | "cien millones" - 111_111_111 | "ciento once millones ciento once mil ciento once" - 401_000_000 | "cuatrocientos un millones" - 123_456_789 | "ciento veintitrés millones cuatrocientos cincuenta y seis mil setecientos ochenta y nueve" - 322_089_890 | "trescientos veintidós millones ochenta y nueve mil ochocientos noventa" - - 1_000_000_000 | "mil millones" - 1_500_000_000 | "mil quinientos millones" - 2_000_000_000 | "dos mil millones" - 2_001_001_100 | "dos mil un millones mil cien" - 2_002_002_111 | "dos mil dos millones dos mil ciento once" - 2_005_004_110 | "dos mil cinco millones cuatro mil ciento diez" - 2_147_483_647 | "dos mil ciento cuarenta y siete millones cuatrocientos ochenta y tres mil seiscientos cuarenta y siete" - } - - @Ignore("Needs Spanish long converter and values for trillion, quadrillion, quintillion") - @Unroll - def "should convert long #value to '#words' in Spanish"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "" - - 1_000_000_000_000 | "" - 2_000_000_000_000 | "" - 5_000_000_000_000 | "" - - 1_000_000_000_000_000 | "" - 2_000_000_000_000_000 | "" - 5_000_000_000_000_000 | "" - - 1_000_000_000_000_000_000 | "" - 2_000_000_000_000_000_000 | "" - Long.MAX_VALUE | "" - } - + @Unroll def "should convert money #value to '#words' in Spanish"() { expect: diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/swedish/SwedishIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/swedish/SwedishIntegerValuesTest.groovy index 3b78f9f9..aa3c0c90 100644 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/swedish/SwedishIntegerValuesTest.groovy +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/swedish/SwedishIntegerValuesTest.groovy @@ -1,152 +1,178 @@ package pl.allegro.finance.tradukisto.internal.languages.swedish -import spock.lang.Specification -import spock.lang.Unroll +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest import static pl.allegro.finance.tradukisto.internal.Container.swedishContainer -class SwedishIntegerValuesTest extends Specification { - - static intConverter = swedishContainer().getIntegerConverter() - - @Unroll - def "should convert Integer #value to '#words' in Swedish"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "noll" - 1 | "ett" - 2 | "två" - 3 | "tre" - 4 | "fyra" - 5 | "fem" - 6 | "sex" - 7 | "sju" - 8 | "åtta" - 9 | "nio" - - 11 | "elva" - 12 | "tolv" - 13 | "tretton" - 14 | "fjorton" - 15 | "femton" - 16 | "sexton" - 17 | "sjutton" - 18 | "arton" - 19 | "nitton" - - 10 | "tio" - 20 | "tjugo" - 30 | "trettio" - 40 | "fyrtio" - 50 | "femtio" - 60 | "sextio" - 70 | "sjuttio" - 80 | "åttio" - 90 | "nittio" - - 21 | "tjugoett" - 32 | "trettiotvå" - 43 | "fyrtiotre" - 54 | "femtiofyra" - 65 | "sextiofem" - 76 | "sjuttiosex" - 87 | "åttiosju" - 98 | "nittioåtta" - - 100 | "ett hundra" - 200 | "två hundra" - 300 | "tre hundra" - 400 | "fyra hundra" - 500 | "fem hundra" - 600 | "sex hundra" - 700 | "sju hundra" - 800 | "åtta hundra" - 900 | "nio hundra" - - 109 | "ett hundra och nio" - 218 | "två hundra och arton" - 327 | "tre hundra och tjugosju" - 436 | "fyra hundra och trettiosex" - 545 | "fem hundra och fyrtiofem" - 654 | "sex hundra och femtiofyra" - 763 | "sju hundra och sextiotre" - 872 | "åtta hundra och sjuttiotvå" - 981 | "nio hundra och åttioett" - - 1000 | "ett tusen" - 2000 | "två tusen" - 3000 | "tre tusen" - 4000 | "fyra tusen" - 5000 | "fem tusen" - 6000 | "sex tusen" - 7000 | "sju tusen" - 8000 | "åtta tusen" - 9000 | "nio tusen" - - 1911 | "ett tusen nio hundra och elva" - 2890 | "två tusen åtta hundra och nittio" - 3789 | "tre tusen sju hundra och åttionio" - 4678 | "fyra tusen sex hundra och sjuttioåtta" - 5567 | "fem tusen fem hundra och sextiosju" - 6456 | "sex tusen fyra hundra och femtiosex" - 7345 | "sju tusen tre hundra och fyrtiofem" - 8234 | "åtta tusen två hundra och trettiofyra" - 9123 | "nio tusen ett hundra och tjugotre" - - 10000 | "tio tusen" - 11000 | "elva tusen" - 12000 | "tolv tusen" - 13000 | "tretton tusen" - 14000 | "fjorton tusen" - 15000 | "femton tusen" - 16000 | "sexton tusen" - 17000 | "sjutton tusen" - 18000 | "arton tusen" - 19000 | "nitton tusen" - - 20000 | "tjugo tusen" - 30000 | "trettio tusen" - 40000 | "fyrtio tusen" - 50000 | "femtio tusen" - 60000 | "sextio tusen" - 70000 | "sjuttio tusen" - 80000 | "åttio tusen" - 90000 | "nittio tusen" - - 100000 | "ett hundra tusen" - 200000 | "två hundra tusen" - 300000 | "tre hundra tusen" - 400000 | "fyra hundra tusen" - 500000 | "fem hundra tusen" - 600000 | "sex hundra tusen" - 700000 | "sju hundra tusen" - 800000 | "åtta hundra tusen" - - 1000000 | "en miljon" - 2000000 | "två miljoner" - 3000000 | "tre miljoner" - 4000000 | "fyra miljoner" - 5000000 | "fem miljoner" - 6000000 | "sex miljoner" - 7000000 | "sju miljoner" - 8000000 | "åtta miljoner" - 9000000 | "nio miljoner" - - 1111111 | "en miljon ett hundra och elva tusen ett hundra och elva" - 2222222 | "två miljoner två hundra och tjugotvå tusen två hundra och tjugotvå" - 3333333 | "tre miljoner tre hundra och trettiotre tusen tre hundra och trettiotre" - 4444444 | "fyra miljoner fyra hundra och fyrtiofyra tusen fyra hundra och fyrtiofyra" - 5555555 | "fem miljoner fem hundra och femtiofem tusen fem hundra och femtiofem" - 6666666 | "sex miljoner sex hundra och sextiosex tusen sex hundra och sextiosex" - 7777777 | "sju miljoner sju hundra och sjuttiosju tusen sju hundra och sjuttiosju" - 8888888 | "åtta miljoner åtta hundra och åttioåtta tusen åtta hundra och åttioåtta" - 9999999 | "nio miljoner nio hundra och nittionio tusen nio hundra och nittionio" - - 1000000000 | "en miljard" - 2000000000 | "två miljarder" - 2147483647 | "två miljarder ett hundra och fyrtiosju miljoner fyra hundra och åttiotre tusen sex hundra och fyrtiosju" +class SwedishIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = swedishContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) } + + private static integerTranslations = [ + 0 : "noll", + 1 : "ett", + 2 : "två", + 3 : "tre", + 4 : "fyra", + 5 : "fem", + 6 : "sex", + 7 : "sju", + 8 : "åtta", + 9 : "nio", + + 11 : "elva", + 12 : "tolv", + 13 : "tretton", + 14 : "fjorton", + 15 : "femton", + 16 : "sexton", + 17 : "sjutton", + 18 : "arton", + 19 : "nitton", + + 10 : "tio", + 20 : "tjugo", + 30 : "trettio", + 40 : "fyrtio", + 50 : "femtio", + 60 : "sextio", + 70 : "sjuttio", + 80 : "åttio", + 90 : "nittio", + + 21 : "tjugoett", + 32 : "trettiotvå", + 37 : "trettiosju", + 43 : "fyrtiotre", + 54 : "femtiofyra", + 58 : "femtioåtta", + 65 : "sextiofem", + 69 : "sextionio", + 76 : "sjuttiosex", + 82 : "åttiotvå", + 87 : "åttiosju", + 95 : "nittiofem", + 98 : "nittioåtta", + + 100 : "ett hundra", + 200 : "två hundra", + 300 : "tre hundra", + 400 : "fyra hundra", + 500 : "fem hundra", + 600 : "sex hundra", + 700 : "sju hundra", + 800 : "åtta hundra", + 900 : "nio hundra", + + 109 : "ett hundra och nio", + 111 : "ett hundra och elva", + 218 : "två hundra och arton", + 272 : "två hundra och sjuttiotvå", + 327 : "tre hundra och tjugosju", + 387 : "tre hundra och åttiosju", + 436 : "fyra hundra och trettiosex", + 448 : "fyra hundra och fyrtioåtta", + 545 : "fem hundra och fyrtiofem", + 569 : "fem hundra och sextionio", + 625 : "sex hundra och tjugofem", + 654 : "sex hundra och femtiofyra", + 763 : "sju hundra och sextiotre", + 782 : "sju hundra och åttiotvå", + 872 : "åtta hundra och sjuttiotvå", + 895 : "åtta hundra och nittiofem", + 981 : "nio hundra och åttioett", + 999 : "nio hundra och nittionio", + + 1000 : "ett tusen", + 2000 : "två tusen", + 3000 : "tre tusen", + 4000 : "fyra tusen", + 5000 : "fem tusen", + 6000 : "sex tusen", + 7000 : "sju tusen", + 8000 : "åtta tusen", + 9000 : "nio tusen", + + 1911 : "ett tusen nio hundra och elva", + 2890 : "två tusen åtta hundra och nittio", + 3789 : "tre tusen sju hundra och åttionio", + 4678 : "fyra tusen sex hundra och sjuttioåtta", + 5567 : "fem tusen fem hundra och sextiosju", + 6456 : "sex tusen fyra hundra och femtiosex", + 7345 : "sju tusen tre hundra och fyrtiofem", + 7634 : "sju tusen sex hundra och trettiofyra", + 8234 : "åtta tusen två hundra och trettiofyra", + 9123 : "nio tusen ett hundra och tjugotre", + + 21000 : "tjugoett tusen", + 24190 : "tjugofyra tusen ett hundra och nittio", + 123454 : "ett hundra och tjugotre tusen fyra hundra och femtiofyra", + 653000 : "sex hundra och femtiotre tusen", + 999999 : "nio hundra och nittionio tusen nio hundra och nittionio", + + 10000 : "tio tusen", + 11000 : "elva tusen", + 12000 : "tolv tusen", + 13000 : "tretton tusen", + 14000 : "fjorton tusen", + 15000 : "femton tusen", + 16000 : "sexton tusen", + 17000 : "sjutton tusen", + 18000 : "arton tusen", + 19000 : "nitton tusen", + + 20000 : "tjugo tusen", + 30000 : "trettio tusen", + 40000 : "fyrtio tusen", + 50000 : "femtio tusen", + 60000 : "sextio tusen", + 70000 : "sjuttio tusen", + 80000 : "åttio tusen", + 90000 : "nittio tusen", + + 100000 : "ett hundra tusen", + 200000 : "två hundra tusen", + 300000 : "tre hundra tusen", + 400000 : "fyra hundra tusen", + 500000 : "fem hundra tusen", + 600000 : "sex hundra tusen", + 700000 : "sju hundra tusen", + 800000 : "åtta hundra tusen", + + 1000000 : "en miljon", + 2000000 : "två miljoner", + 3000000 : "tre miljoner", + 4000000 : "fyra miljoner", + 5000000 : "fem miljoner", + 6000000 : "sex miljoner", + 7000000 : "sju miljoner", + 8000000 : "åtta miljoner", + 9000000 : "nio miljoner", + + 1111111 : "en miljon ett hundra och elva tusen ett hundra och elva", + 2222222 : "två miljoner två hundra och tjugotvå tusen två hundra och tjugotvå", + 3333333 : "tre miljoner tre hundra och trettiotre tusen tre hundra och trettiotre", + 4444444 : "fyra miljoner fyra hundra och fyrtiofyra tusen fyra hundra och fyrtiofyra", + 5555555 : "fem miljoner fem hundra och femtiofem tusen fem hundra och femtiofem", + 6666666 : "sex miljoner sex hundra och sextiosex tusen sex hundra och sextiosex", + 7777777 : "sju miljoner sju hundra och sjuttiosju tusen sju hundra och sjuttiosju", + 8888888 : "åtta miljoner åtta hundra och åttioåtta tusen åtta hundra och åttioåtta", + 9999999 : "nio miljoner nio hundra och nittionio tusen nio hundra och nittionio", + + 23437219 : "tjugotre miljoner fyra hundra och trettiosju tusen två hundra och nitton", + 100000000 : "ett hundra miljoner", + 123456789 : "ett hundra och tjugotre miljoner fyra hundra och femtiosex tusen sju hundra och åttionio", + 322089890 : "tre hundra och tjugotvå miljoner åttionio tusen åtta hundra och nittio", + + 1000000000: "en miljard", + 2000000000: "två miljarder", + 2147483647: "två miljarder ett hundra och fyrtiosju miljoner fyra hundra och åttiotre tusen sex hundra och fyrtiosju" + ] } diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/swedish/SwedishLongValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/swedish/SwedishLongValuesTest.groovy index 1445d39c..a6fb4422 100644 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/swedish/SwedishLongValuesTest.groovy +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/swedish/SwedishLongValuesTest.groovy @@ -1,65 +1,66 @@ package pl.allegro.finance.tradukisto.internal.languages.swedish -import spock.lang.Specification -import spock.lang.Unroll +import pl.allegro.finance.tradukisto.internal.languages.AbstractLongValuesTest import static pl.allegro.finance.tradukisto.internal.Container.swedishContainer -class SwedishLongValuesTest extends Specification { +class SwedishLongValuesTest extends AbstractLongValuesTest { - static longConverter = swedishContainer().getLongConverter() + def setup() { + longConverter = swedishContainer().getLongConverter() + } - @Unroll - def "should convert Long #value to '#words' in Swedish"() { - expect: - longConverter.asWords(value) == words + @Override + LongValuesTestData getTestData() { + testData = new LongValuesTestData(longTranslations) + } - where: - value | words - 2147483648 | "två miljarder ett hundra och fyrtiosju miljoner fyra hundra och åttiotre tusen sex hundra och fyrtioåtta" - 3000000000 | "tre miljarder" - 4000000000 | "fyra miljarder" - 5000000000 | "fem miljarder" - 6000000000 | "sex miljarder" - 7000000000 | "sju miljarder" - 8000000000 | "åtta miljarder" - 9000000000 | "nio miljarder" - 9999999999 | "nio miljarder nio hundra och nittionio miljoner nio hundra och nittionio tusen nio hundra och nittionio" + private static longTranslations = [ + 2147483648 : "två miljarder ett hundra och fyrtiosju miljoner fyra hundra och åttiotre tusen sex hundra och fyrtioåtta", + 3000000000 : "tre miljarder", + 4000000000 : "fyra miljarder", + 5000000000 : "fem miljarder", + 6000000000 : "sex miljarder", + 7000000000 : "sju miljarder", + 8000000000 : "åtta miljarder", + 9000000000 : "nio miljarder", + 9999999999 : "nio miljarder nio hundra och nittionio miljoner nio hundra och nittionio tusen nio hundra och nittionio", - 1000000000000 | "en biljon" - 2000000000000 | "två biljoner" - 2222222222222 | "två biljoner två hundra och tjugotvå miljarder två hundra och tjugotvå miljoner två hundra och tjugotvå tusen två hundra och tjugotvå" - 3000000000000 | "tre biljoner" - 4000000000000 | "fyra biljoner" - 5000000000000 | "fem biljoner" - 6000000000000 | "sex biljoner" - 7000000000000 | "sju biljoner" - 8000000000000 | "åtta biljoner" - 9000000000000 | "nio biljoner" - 9999999999999 | "nio biljoner nio hundra och nittionio miljarder nio hundra och nittionio miljoner nio hundra och nittionio tusen nio hundra och nittionio" + 1000000000000 : "en biljon", + 2000000000000 : "två biljoner", + 2222222222222 : "två biljoner två hundra och tjugotvå miljarder två hundra och tjugotvå miljoner två hundra och tjugotvå tusen två hundra och tjugotvå", + 3000000000000 : "tre biljoner", + 4000000000000 : "fyra biljoner", + 5000000000000 : "fem biljoner", + 6000000000000 : "sex biljoner", + 7000000000000 : "sju biljoner", + 8000000000000 : "åtta biljoner", + 9000000000000 : "nio biljoner", + 9999999999999 : "nio biljoner nio hundra och nittionio miljarder nio hundra och nittionio miljoner nio hundra och nittionio tusen nio hundra och nittionio", - 1000000000000000 | "en biljard" - 2000000000000000 | "två biljarder" - 3000000000000000 | "tre biljarder" - 3333333333333333 | "tre biljarder tre hundra och trettiotre biljoner tre hundra och trettiotre miljarder tre hundra och trettiotre miljoner tre hundra och trettiotre tusen tre hundra och trettiotre" - 4000000000000000 | "fyra biljarder" - 5000000000000000 | "fem biljarder" - 6000000000000000 | "sex biljarder" - 7000000000000000 | "sju biljarder" - 8000000000000000 | "åtta biljarder" - 9000000000000000 | "nio biljarder" - 9999999999999999 | "nio biljarder nio hundra och nittionio biljoner nio hundra och nittionio miljarder nio hundra och nittionio miljoner nio hundra och nittionio tusen nio hundra och nittionio" + 1000000000000000 : "en biljard", + 2000000000000000 : "två biljarder", + 3000000000000000 : "tre biljarder", + 3333333333333333 : "tre biljarder tre hundra och trettiotre biljoner tre hundra och trettiotre miljarder tre hundra och trettiotre miljoner tre hundra och trettiotre tusen tre hundra och trettiotre", + 4000000000000000 : "fyra biljarder", + 5000000000000000 : "fem biljarder", + 6000000000000000 : "sex biljarder", + 7000000000000000 : "sju biljarder", + 8000000000000000 : "åtta biljarder", + 9000000000000000 : "nio biljarder", + 9999999999999999 : "nio biljarder nio hundra och nittionio biljoner nio hundra och nittionio miljarder nio hundra och nittionio miljoner nio hundra och nittionio tusen nio hundra och nittionio", - 1000000000000000000 | "en triljon" - 2000000000000000000 | "två triljoner" - 3000000000000000000 | "tre triljoner" - 4000000000000000000 | "fyra triljoner" - 4444444444444444444 | "fyra triljoner fyra hundra och fyrtiofyra biljarder fyra hundra och fyrtiofyra biljoner fyra hundra och fyrtiofyra miljarder fyra hundra och fyrtiofyra miljoner fyra hundra och fyrtiofyra tusen fyra hundra och fyrtiofyra" - 5000000000000000000 | "fem triljoner" - 6000000000000000000 | "sex triljoner" - 7000000000000000000 | "sju triljoner" - 8000000000000000000 | "åtta triljoner" - 9000000000000000000 | "nio triljoner" - 9223272036854775807 | "nio triljoner två hundra och tjugotre biljarder två hundra och sjuttiotvå biljoner trettiosex miljarder åtta hundra och femtiofyra miljoner sju hundra och sjuttiofem tusen åtta hundra och sju" - } + 1000000000000000000: "en triljon", + 2000000000000000000: "två triljoner", + 3000000000000000000: "tre triljoner", + 4000000000000000000: "fyra triljoner", + 4444444444444444444: "fyra triljoner fyra hundra och fyrtiofyra biljarder fyra hundra och fyrtiofyra biljoner fyra hundra och fyrtiofyra miljarder fyra hundra och fyrtiofyra miljoner fyra hundra och fyrtiofyra tusen fyra hundra och fyrtiofyra", + 5000000000000000000: "fem triljoner", + 6000000000000000000: "sex triljoner", + 7000000000000000000: "sju triljoner", + 8000000000000000000: "åtta triljoner", + 9000000000000000000: "nio triljoner", + 9223272036854775807: "nio triljoner två hundra och tjugotre biljarder två hundra och sjuttiotvå biljoner trettiosex miljarder åtta hundra och femtiofyra miljoner sju hundra och sjuttiofem tusen åtta hundra och sju", + 9223372036854775807: "nio triljoner två hundra och tjugotre biljarder tre hundra och sjuttiotvå biljoner trettiosex miljarder åtta hundra och femtiofyra miljoner sju hundra och sjuttiofem tusen åtta hundra och sju" + ] } diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/turkish/TurkishIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/turkish/TurkishIntegerValuesTest.groovy new file mode 100644 index 00000000..240113ef --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/turkish/TurkishIntegerValuesTest.groovy @@ -0,0 +1,106 @@ +package pl.allegro.finance.tradukisto.internal.languages.turkish + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.turkishContainer + +class TurkishIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = turkishContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "Sıfır", + 1 : "Bir", + 2 : "İki", + 3 : "Üç", + 4 : "Dört", + 5 : "Beş", + 6 : "Altı", + 7 : "Yedi", + 8 : "Sekiz", + 9 : "Dokuz", + + 11 : "On Bir", + 12 : "On İki", + 13 : "On Üç", + 14 : "On Dört", + 15 : "On Beş", + 16 : "On Altı", + 17 : "On Yedi", + 18 : "On Sekiz", + 19 : "On Dokuz", + + 10 : "On", + 20 : "Yirmi", + 30 : "Otuz", + 40 : "Kırk", + 50 : "Elli", + 60 : "Altmış", + 70 : "Yetmiş", + 80 : "Seksen", + 90 : "Doksan", + + 21 : "Yirmi Bir", + 37 : "Otuz Yedi", + 43 : "Kırk Üç", + 58 : "Elli Sekiz", + 69 : "Altmış Dokuz", + 76 : "Yetmiş Altı", + 82 : "Seksen İki", + 95 : "Doksan Beş", + + 100 : "Yüz", + 200 : "İki Yüz", + 300 : "Üç Yüz", + 400 : "Dört Yüz", + 500 : "Beş Yüz", + 600 : "Altı Yüz", + 700 : "Yedi Yüz", + 800 : "Sekiz Yüz", + 900 : "Dokuz Yüz", + + 111 : "Yüz On Bir", + 272 : "İki Yüz Yetmiş İki", + 387 : "Üç Yüz Seksen Yedi", + 448 : "Dört Yüz Kırk Sekiz", + 569 : "Beş Yüz Altmış Dokuz", + 625 : "Altı Yüz Yirmi Beş", + 782 : "Yedi Yüz Seksen İki", + 895 : "Sekiz Yüz Doksan Beş", + 999 : "Dokuz Yüz Doksan Dokuz", + + 1_000 : "Bin", + 1_234 : "Bin İki Yüz Otuz Dört", + 2_000 : "İki Bin", + 3_000 : "Üç Bin", + 4_000 : "Dört Bin", + 5_000 : "Beş Bin", + 7_634 : "Yedi Bin Altı Yüz Otuz Dört", + 11_000 : "On Bir Bin", + 15_000 : "On Beş Bin", + 21_000 : "Yirmi Bir Bin", + 24_190 : "Yirmi Dört Bin Yüz Doksan", + 653_000 : "Altı Yüz Elli Üç Bin", + 123_454 : "Yüz Yirmi Üç Bin Dört Yüz Elli Dört", + 700_000 : "Yedi Yüz Bin", + 999_999 : "Dokuz Yüz Doksan Dokuz Bin Dokuz Yüz Doksan Dokuz", + + 1_000_000 : "Bir Milyon", + 2_000_000 : "İki Milyon", + 5_000_000 : "Beş Milyon", + 23_437_219 : "Yirmi Üç Milyon Dört Yüz Otuz Yedi Bin İki Yüz On Dokuz", + 100_000_000 : "Yüz Milyon", + 123_456_789 : "Yüz Yirmi Üç Milyon Dört Yüz Elli Altı Bin Yedi Yüz Seksen Dokuz", + 322_089_890 : "Üç Yüz Yirmi İki Milyon Seksen Dokuz Bin Sekiz Yüz Doksan", + + 1_000_000_000: "Bir Milyar", + 2_147_483_647: "İki Milyar Yüz Kırk Yedi Milyon Dört Yüz Seksen Üç Bin Altı Yüz Kırk Yedi" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/turkish/TurkishValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/turkish/TurkishValuesTest.groovy deleted file mode 100644 index 6da3f96d..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/turkish/TurkishValuesTest.groovy +++ /dev/null @@ -1,131 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.turkish - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.turkishContainer - -class TurkishValuesTest extends Specification { - - static intConverter = turkishContainer().getIntegerConverter() - static longConverter = turkishContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Turkish"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "Sıfır" - 1 | "Bir" - 2 | "İki" - 3 | "Üç" - 4 | "Dört" - 5 | "Beş" - 6 | "Altı" - 7 | "Yedi" - 8 | "Sekiz" - 9 | "Dokuz" - - 11 | "On Bir" - 12 | "On İki" - 13 | "On Üç" - 14 | "On Dört" - 15 | "On Beş" - 16 | "On Altı" - 17 | "On Yedi" - 18 | "On Sekiz" - 19 | "On Dokuz" - - 10 | "On" - 20 | "Yirmi" - 30 | "Otuz" - 40 | "Kırk" - 50 | "Elli" - 60 | "Altmış" - 70 | "Yetmiş" - 80 | "Seksen" - 90 | "Doksan" - - 21 | "Yirmi Bir" - 37 | "Otuz Yedi" - 43 | "Kırk Üç" - 58 | "Elli Sekiz" - 69 | "Altmış Dokuz" - 76 | "Yetmiş Altı" - 82 | "Seksen İki" - 95 | "Doksan Beş" - - 100 | "Yüz" - 200 | "İki Yüz" - 300 | "Üç Yüz" - 400 | "Dört Yüz" - 500 | "Beş Yüz" - 600 | "Altı Yüz" - 700 | "Yedi Yüz" - 800 | "Sekiz Yüz" - 900 | "Dokuz Yüz" - - 111 | "Yüz On Bir" - 272 | "İki Yüz Yetmiş İki" - 387 | "Üç Yüz Seksen Yedi" - 448 | "Dört Yüz Kırk Sekiz" - 569 | "Beş Yüz Altmış Dokuz" - 625 | "Altı Yüz Yirmi Beş" - 782 | "Yedi Yüz Seksen İki" - 895 | "Sekiz Yüz Doksan Beş" - 999 | "Dokuz Yüz Doksan Dokuz" - - 1_000 | "Bin" - 1_234 | "Bin İki Yüz Otuz Dört" - 2_000 | "İki Bin" - 3_000 | "Üç Bin" - 4_000 | "Dört Bin" - 5_000 | "Beş Bin" - 7_634 | "Yedi Bin Altı Yüz Otuz Dört" - 11_000 | "On Bir Bin" - 15_000 | "On Beş Bin" - 21_000 | "Yirmi Bir Bin" - 24_190 | "Yirmi Dört Bin Yüz Doksan" - 653_000 | "Altı Yüz Elli Üç Bin" - 123_454 | "Yüz Yirmi Üç Bin Dört Yüz Elli Dört" - 700_000 | "Yedi Yüz Bin" - 999_999 | "Dokuz Yüz Doksan Dokuz Bin Dokuz Yüz Doksan Dokuz" - - 1_000_000 | "Bir Milyon" - 2_000_000 | "İki Milyon" - 5_000_000 | "Beş Milyon" - 23_437_219 | "Yirmi Üç Milyon Dört Yüz Otuz Yedi Bin İki Yüz On Dokuz" - 100_000_000 | "Yüz Milyon" - 123_456_789 | "Yüz Yirmi Üç Milyon Dört Yüz Elli Altı Bin Yedi Yüz Seksen Dokuz" - 322_089_890 | "Üç Yüz Yirmi İki Milyon Seksen Dokuz Bin Sekiz Yüz Doksan" - - 1_000_000_000 | "Bir Milyar" - 2_147_483_647 | "İki Milyar Yüz Kırk Yedi Milyon Dört Yüz Seksen Üç Bin Altı Yüz Kırk Yedi" - } - - @Ignore("Needs Turkish long converter and values for trillion, quadrillion, quintillion") - @Unroll - def "should convert long #value to '#words' in Turkish"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "" - - 1_000_000_000_000 | "" - 2_000_000_000_000 | "" - 5_000_000_000_000 | "" - - 1_000_000_000_000_000 | "" - 2_000_000_000_000_000 | "" - 5_000_000_000_000_000 | "" - - 1_000_000_000_000_000_000 | "" - 2_000_000_000_000_000_000 | "" - Long.MAX_VALUE | "" - } -} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/ukrainian/UkrainianIntegerValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/ukrainian/UkrainianIntegerValuesTest.groovy new file mode 100644 index 00000000..e0ee8307 --- /dev/null +++ b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/ukrainian/UkrainianIntegerValuesTest.groovy @@ -0,0 +1,103 @@ +package pl.allegro.finance.tradukisto.internal.languages.ukrainian + +import pl.allegro.finance.tradukisto.internal.languages.AbstractIntegerValuesTest + +import static pl.allegro.finance.tradukisto.internal.Container.ukrainianContainer + +class UkrainianIntegerValuesTest extends AbstractIntegerValuesTest { + + def setup() { + intConverter = ukrainianContainer().getIntegerConverter() + } + + @Override + IntegerValuesTestData getTestData() { + testData = new IntegerValuesTestData(integerTranslations) + } + + private static integerTranslations = [ + 0 : "нуль", + 1 : "один", + 2 : "два", + 3 : "три", + 4 : "чотири", + 5 : "п'ять", + 6 : "шість", + 7 : "сім", + 8 : "вісім", + 9 : "дев'ять", + 11 : "одинадцять", + 12 : "дванадцять", + 13 : "тринадцять", + 14 : "чотирнадцять", + 15 : "п'ятнадцять", + 16 : "шістнадцять", + 17 : "сімнадцять", + 18 : "вісімнадцять", + 19 : "дев'ятнадцять", + 10 : "десять", + 20 : "двадцять", + 30 : "тридцять", + 40 : "сорок", + 50 : "п'ятдесят", + 60 : "шістдесят", + 70 : "сімдесят", + 80 : "вісімдесят", + 90 : "дев'яносто", + 21 : "двадцять один", + 37 : "тридцять сім", + + + 43 : "сорок три", + 58 : "п'ятдесят вісім", + 69 : "шістдесят дев'ять", + 76 : "сімдесят шість", + 82 : "вісімдесят два", + 95 : "дев'яносто п'ять", + 100 : "сто", + 200 : "двісті", + 300 : "триста", + 400 : "чотириста", + 500 : "п'ятсот", + 600 : "шістсот", + 700 : "сімсот", + 800 : "вісімсот", + 900 : "дев'ятсот", + 111 : "сто одинадцять", + 272 : "двісті сімдесят два", + 387 : "триста вісімдесят сім", + 448 : "чотириста сорок вісім", + 569 : "п'ятсот шістдесят дев'ять", + 625 : "шістсот двадцять п'ять", + 782 : "сімсот вісімдесят два", + 895 : "вісімсот дев'яносто п'ять", + 999 : "дев'ятсот дев'яносто дев'ять", + 1_000 : "одна тисяча", + 2_000 : "дві тисячі", + 3_000 : "три тисячі", + 4_000 : "чотири тисячі", + 5_000 : "п'ять тисяч", + 7_634 : "сім тисяч шістсот тридцять чотири", + 11_000 : "одинадцять тисяч", + 15_000 : "п'ятнадцять тисяч", + 21_000 : "двадцять одна тисяча", + 24_190 : "двадцять чотири тисячі сто дев'яносто", + 51_000 : "п'ятдесят одна тисяча", + 101_000 : "сто одна тисяча", + 481_000 : "чотириста вісімдесят одна тисяча", + 653_000 : "шістсот п'ятдесят три тисячі", + 123_454 : "сто двадцять три тисячі чотириста п'ятдесят чотири", + 700_000 : "сімсот тисяч", + 999_999 : "дев'ятсот дев'яносто дев'ять тисяч дев'ятсот дев'яносто дев'ять", + 1_000_000 : "один мільйон", + 2_000_000 : "два мільйони", + 5_000_000 : "п'ять мільйонів", + 23_437_219 : "двадцять три мільйони чотириста тридцять сім тисяч двісті дев'ятнадцять", + 100_000_000 : "сто мільйонів", + 121_000_000 : "сто двадцять один мільйон", + 123_456_789 : "сто двадцять три мільйони чотириста п'ятдесят шість тисяч сімсот вісімдесят дев'ять", + 322_089_890 : "триста двадцять два мільйони вісімдесят дев'ять тисяч вісімсот дев'яносто", + 1_000_000_000: "один мільярд", + 2_147_483_647: "два мільярди сто сорок сім мільйонів чотириста вісімдесят три тисячі шістсот сорок сім" + ] +} diff --git a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/ukrainian/UkrainianValuesTest.groovy b/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/ukrainian/UkrainianValuesTest.groovy deleted file mode 100644 index 93fe52d6..00000000 --- a/src/test/groovy/pl/allegro/finance/tradukisto/internal/languages/ukrainian/UkrainianValuesTest.groovy +++ /dev/null @@ -1,123 +0,0 @@ -package pl.allegro.finance.tradukisto.internal.languages.ukrainian - -import spock.lang.Ignore -import spock.lang.Specification -import spock.lang.Unroll - -import static pl.allegro.finance.tradukisto.internal.Container.ukrainianContainer - -class UkrainianValuesTest extends Specification { - - static intConverter = ukrainianContainer().getIntegerConverter() - static longConverter = ukrainianContainer().getLongConverter() - - @Unroll - def "should convert #value to '#words' in Ukrainian"() { - expect: - intConverter.asWords(value) == words - - where: - value | words - 0 | "нуль" - 1 | "один" - 2 | "два" - 3 | "три" - 4 | "чотири" - 5 | "п'ять" - 6 | "шість" - 7 | "сім" - 8 | "вісім" - 9 | "дев'ять" - 11 | "одинадцять" - 12 | "дванадцять" - 13 | "тринадцять" - 14 | "чотирнадцять" - 15 | "п'ятнадцять" - 16 | "шістнадцять" - 17 | "сімнадцять" - 18 | "вісімнадцять" - 19 | "дев'ятнадцять" - 10 | "десять" - 20 | "двадцять" - 30 | "тридцять" - 40 | "сорок" - 50 | "п'ятдесят" - 60 | "шістдесят" - 70 | "сімдесят" - 80 | "вісімдесят" - 90 | "дев'яносто" - 21 | "двадцять один" - 37 | "тридцять сім" - - - 43 | "сорок три" - 58 | "п'ятдесят вісім" - 69 | "шістдесят дев'ять" - 76 | "сімдесят шість" - 82 | "вісімдесят два" - 95 | "дев'яносто п'ять" - 100 | "сто" - 200 | "двісті" - 300 | "триста" - 400 | "чотириста" - 500 | "п'ятсот" - 600 | "шістсот" - 700 | "сімсот" - 800 | "вісімсот" - 900 | "дев'ятсот" - 111 | "сто одинадцять" - 272 | "двісті сімдесят два" - 387 | "триста вісімдесят сім" - 448 | "чотириста сорок вісім" - 569 | "п'ятсот шістдесят дев'ять" - 625 | "шістсот двадцять п'ять" - 782 | "сімсот вісімдесят два" - 895 | "вісімсот дев'яносто п'ять" - 999 | "дев'ятсот дев'яносто дев'ять" - 1_000 | "одна тисяча" - 2_000 | "дві тисячі" - 5_000 | "п'ять тисяч" - 7_634 | "сім тисяч шістсот тридцять чотири" - 21_000 | "двадцять одна тисяча" - 24_190 | "двадцять чотири тисячі сто дев'яносто" - 51_000 | "п'ятдесят одна тисяча" - 101_000 | "сто одна тисяча" - 481_000 | "чотириста вісімдесят одна тисяча" - 653_000 | "шістсот п'ятдесят три тисячі" - 123_454 | "сто двадцять три тисячі чотириста п'ятдесят чотири" - 700_000 | "сімсот тисяч" - 999_999 | "дев'ятсот дев'яносто дев'ять тисяч дев'ятсот дев'яносто дев'ять" - 1_000_000 | "один мільйон" - 2_000_000 | "два мільйони" - 5_000_000 | "п'ять мільйонів" - 23_437_219 | "двадцять три мільйони чотириста тридцять сім тисяч двісті дев'ятнадцять" - 100_000_000 | "сто мільйонів" - 121_000_000 | "сто двадцять один мільйон" - 123_456_789 | "сто двадцять три мільйони чотириста п'ятдесят шість тисяч сімсот вісімдесят дев'ять" - 1_000_000_000 | "один мільярд" - 2_147_483_647 | "два мільярди сто сорок сім мільйонів чотириста вісімдесят три тисячі шістсот сорок сім" - } - - @Ignore("Needs Ukrainian long converter and values for trillion, quadrillion, quintillion") - @Unroll - def "should convert long #value to '#words' in Ukrainian"() { - expect: - longConverter.asWords(value) == words - - where: - value | words - 5_000_000_000 | "" - - 1_000_000_000_000 | "" - 2_000_000_000_000 | "" - 5_000_000_000_000 | "" - - 1_000_000_000_000_000 | "" - 2_000_000_000_000_000 | "" - 5_000_000_000_000_000 | "" - - 1_000_000_000_000_000_000 | "" - 2_000_000_000_000_000_000 | "" - Long.MAX_VALUE | "" - } -}