diff --git a/numbers/bin/main/config/en-us/date_time.json b/numbers/bin/main/config/en-us/date_time.json new file mode 100644 index 0000000..9c393b6 --- /dev/null +++ b/numbers/bin/main/config/en-us/date_time.json @@ -0,0 +1,129 @@ +{ + "decade_format": { + "1": {"match": "^\\d$", "format": "{x}"}, + "2": {"match": "^1\\d$", "format": "{xx}"}, + "3": {"match": "^\\d0$", "format": "{x0}"}, + "4": {"match": "^[2-9]\\d$", "format": "{x0} {x}"}, + "default": "{number}" + }, + "hundreds_format": { + "1": {"match": "^\\d{3}$", "format": "{x_in_x00} hundred"}, + "default": "{number}" + }, + "thousand_format": { + "1": {"match": "^\\d00\\d$", "format": "{x_in_x000} thousand"}, + "2": {"match": "^1\\d00$", "format": "{xx_in_xx00} hundred"}, + "3": {"match": "^\\d{2}00$", "format": "{x0_in_x000} {x_in_x00} hundred"}, + "4": {"match": "^(1\\d{3})|(\\d0\\d{2})$", "format": "{xx_in_xx00}"}, + "5": {"match": "^\\d{4}$", "format": "{x0_in_x000} {x_in_x00}"}, + "default": "{number}" + }, + "year_format": { + "1": {"match": "^\\d\\d?$", "format": "{formatted_decade} {bc}"}, + "2": {"match": "^\\d00$", "format": "{formatted_hundreds} {bc}"}, + "3": {"match": "^\\d{3}$", "format": "{formatted_hundreds} {formatted_decade} {bc}"}, + "4": {"match": "^\\d{2}00$", "format": "{formatted_thousand} {bc}"}, + "5": {"match": "^\\d00\\d$", "format": "{formatted_thousand} {formatted_decade} {bc}"}, + "6": {"match": "^\\d{2}0\\d$", "format": "{formatted_thousand} oh {formatted_decade} {bc}"}, + "7": {"match": "^\\d{4}$", "format": "{formatted_thousand} {formatted_decade} {bc}"}, + "default": "{number} {bc}", + "bc": "b.c." + }, + "date_format": { + "date_full": "{weekday}, {month} {day}, {formatted_year}", + "date_full_no_year": "{weekday}, {month} {day}", + "date_full_no_year_month": "{weekday}, the {day}", + "today": "today", + "tomorrow": "tomorrow", + "yesterday": "yesterday" + }, + "date_time_format": { + "date_time": "{formatted_date} at {formatted_time}" + }, + "weekday": { + "0": "monday", + "1": "tuesday", + "2": "wednesday", + "3": "thursday", + "4": "friday", + "5": "saturday", + "6": "sunday" + }, + "date": { + "1": "first", + "2": "second", + "3": "third", + "4": "fourth", + "5": "fifth", + "6": "sixth", + "7": "seventh", + "8": "eighth", + "9": "ninth", + "10": "tenth", + "11": "eleventh", + "12": "twelfth", + "13": "thirteenth", + "14": "fourteenth", + "15": "fifteenth", + "16": "sixteenth", + "17": "seventeenth", + "18": "eighteenth", + "19": "nineteenth", + "20": "twentieth", + "21": "twenty-first", + "22": "twenty-second", + "23": "twenty-third", + "24": "twenty-fourth", + "25": "twenty-fifth", + "26": "twenty-sixth", + "27": "twenty-seventh", + "28": "twenty-eighth", + "29": "twenty-ninth", + "30": "thirtieth", + "31": "thirty-first" + }, + "month": { + "1": "january", + "2": "february", + "3": "march", + "4": "april", + "5": "may", + "6": "june", + "7": "july", + "8": "august", + "9": "september", + "10": "october", + "11": "november", + "12": "december" + }, + "number": { + "0": "zero", + "1": "one", + "2": "two", + "3": "three", + "4": "four", + "5": "five", + "6": "six", + "7": "seven", + "8": "eight", + "9": "nine", + "10": "ten", + "11": "eleven", + "12": "twelve", + "13": "thirteen", + "14": "fourteen", + "15": "fifteen", + "16": "sixteen", + "17": "seventeen", + "18": "eighteen", + "19": "nineteen", + "20": "twenty", + "30": "thirty", + "40": "forty", + "50": "fifty", + "60": "sixty", + "70": "seventy", + "80": "eighty", + "90": "ninety" + } +} diff --git a/numbers/bin/main/config/en-us/day.word b/numbers/bin/main/config/en-us/day.word new file mode 100644 index 0000000..0c303a4 --- /dev/null +++ b/numbers/bin/main/config/en-us/day.word @@ -0,0 +1 @@ +day \ No newline at end of file diff --git a/numbers/bin/main/config/en-us/days.word b/numbers/bin/main/config/en-us/days.word new file mode 100644 index 0000000..5eb8de3 --- /dev/null +++ b/numbers/bin/main/config/en-us/days.word @@ -0,0 +1 @@ +days \ No newline at end of file diff --git a/numbers/bin/main/config/en-us/hour.word b/numbers/bin/main/config/en-us/hour.word new file mode 100644 index 0000000..a13960e --- /dev/null +++ b/numbers/bin/main/config/en-us/hour.word @@ -0,0 +1 @@ +hour \ No newline at end of file diff --git a/numbers/bin/main/config/en-us/hours.word b/numbers/bin/main/config/en-us/hours.word new file mode 100644 index 0000000..62c6dec --- /dev/null +++ b/numbers/bin/main/config/en-us/hours.word @@ -0,0 +1 @@ +hours \ No newline at end of file diff --git a/numbers/bin/main/config/en-us/minute.word b/numbers/bin/main/config/en-us/minute.word new file mode 100644 index 0000000..50bc2f2 --- /dev/null +++ b/numbers/bin/main/config/en-us/minute.word @@ -0,0 +1 @@ +minute \ No newline at end of file diff --git a/numbers/bin/main/config/en-us/minutes.word b/numbers/bin/main/config/en-us/minutes.word new file mode 100644 index 0000000..cde6523 --- /dev/null +++ b/numbers/bin/main/config/en-us/minutes.word @@ -0,0 +1 @@ +minutes \ No newline at end of file diff --git a/numbers/bin/main/config/en-us/second.word b/numbers/bin/main/config/en-us/second.word new file mode 100644 index 0000000..2147e41 --- /dev/null +++ b/numbers/bin/main/config/en-us/second.word @@ -0,0 +1 @@ +second \ No newline at end of file diff --git a/numbers/bin/main/config/en-us/seconds.word b/numbers/bin/main/config/en-us/seconds.word new file mode 100644 index 0000000..729866f --- /dev/null +++ b/numbers/bin/main/config/en-us/seconds.word @@ -0,0 +1 @@ +seconds \ No newline at end of file diff --git a/numbers/bin/main/config/en-us/tokenizer.json b/numbers/bin/main/config/en-us/tokenizer.json new file mode 100644 index 0000000..159401d --- /dev/null +++ b/numbers/bin/main/config/en-us/tokenizer.json @@ -0,0 +1,397 @@ +{ + "spaces": " \t\n\f\r:;_!?<>|=()[]{}»«*~^`'\"", + "characters_as_word": "%‰#-+.,/", + "raw_number_categories": [ + "number", + "raw" + ], + "plural_endings": [ + "s" + ], + "word_matches": [ + { + "categories": [ + "ignore" + ], + "values": [ + "a", + "an", + "and" + ] + }, + { + "categories": [ + "ignore", + "thousand_separator" + ], + "values": [ + "," + ] + }, + { + "categories": [ + "ordinal_suffix" + ], + "values": [ + "st", + "nd", + "rd", + "th" + ] + }, + { + "categories": [ + "point" + ], + "values": [ + "point", + "dot", + "." + ] + }, + { + "categories": [ + "fraction_separator" + ], + "values": [ + "over", + "divided", + "/" + ] + }, + { + "categories": [ + "fraction_separator_secondary" + ], + "values": [ + "by" + ] + }, + { + "categories": [ + "sign", + "positive" + ], + "values": [ + "positive", + "plus", + "+" + ] + }, + { + "categories": [ + "sign", + "negative" + ], + "values": [ + "negative", + "minus" + ] + }, + { + "categories": [ + "sign", + "negative", + "ignore" + ], + "values": [ + "-" + ] + }, + { + "categories": [ + "duration_separator" + ], + "values": [ + "of" + ] + } + ], + "number_mappings": [ + { + "categories": [ + "number", + "digit", + "digit_after_point" + ], + "values": { + "nought": 0, + "zero": 0, + "one": 1, + "two": 2, + "three": 3, + "four": 4, + "five": 5, + "six": 6, + "seven": 7, + "eight": 8, + "nine": 9 + } + }, + { + "categories": [ + "number", + "digit_after_point" + ], + "values": { + "o": 0, + "oh": 0 + } + }, + { + "categories": [ + "number", + "teen" + ], + "values": { + "ten": 10, + "eleven": 11, + "twelve": 12, + "thirteen": 13, + "fourteen": 14, + "fifteen": 15, + "sixteen": 16, + "seventeen": 17, + "eighteen": 18, + "nineteen": 19 + } + }, + { + "categories": [ + "number", + "tens" + ], + "values": { + "twenty": 20, + "thirty": 30, + "forty": 40, + "fifty": 50, + "sixty": 60, + "seventy": 70, + "eighty": 80, + "ninety": 90 + } + }, + { + "categories": [ + "number", + "hundred" + ], + "values": { + "hundred": 100 + } + }, + { + "categories": [ + "number", + "multiplier" + ], + "values": { + "thousand": 1000, + "million": 1000000, + "billion": 1000000000, + "trillion": 1000000000000, + "quadrillion": 1000000000000000, + "quintillion": 1000000000000000000 + } + }, + { + "categories": [ + "number", + "ordinal", + "digit" + ], + "values": { + "first": 1, + "second": 2, + "third": 3, + "fourth": 4, + "fifth": 5, + "sixth": 6, + "seventh": 7, + "eighth": 8, + "ninth": 9 + } + }, + { + "categories": [ + "number", + "ordinal", + "teen" + ], + "values": { + "tenth": 10, + "eleventh": 11, + "twelfth": 12, + "thirteenth": 13, + "fourteenth": 14, + "fifteenth": 15, + "sixteenth": 16, + "seventeenth": 17, + "eighteenth": 18, + "nineteenth": 19 + } + }, + { + "categories": [ + "number", + "ordinal", + "tens" + ], + "values": { + "twentieth": 20, + "thirtieth": 30, + "fortieth": 40, + "fiftieth": 50, + "sixtieth": 60, + "seventieth": 70, + "eightieth": 80, + "ninetieth": 90 + } + }, + { + "categories": [ + "number", + "ordinal", + "hundred" + ], + "values": { + "hundredth": 100 + } + }, + { + "categories": [ + "number", + "ordinal", + "multiplier" + ], + "values": { + "thousandth": 1000, + "millionth": 1000000, + "billionth": 1000000000, + "trillionth": 1000000000000, + "quadrillionth": 1000000000000000, + "quintillionth": 1000000000000000000 + } + }, + { + "categories": [ + "number", + "suffix_multiplier" + ], + "values": { + "half": 0.5, + "halves": 0.5, + "quarter": 0.25, + "quarters": 0.25, + "pair": 2, + "pairs": 2, + "couple": 2, + "couples": 2, + "dozen": 12, + "dozens": 12, + "gross": 144, + "grosses": 144, + "score": 20, + "scores": 20, + "percent": 0.01, + "pct": 0.01, + "pc": 0.01, + "%": 0.01, + "permille": 0.001, + "permill": 0.001, + "permil": 0.001, + "‰": 0.001 + } + } + ], + "duration_words": { + "1 NANOS": [ + "nanosecond", + "nanoseconds", + "ns" + ], + "1 MICROS": [ + "microsecond", + "microseconds", + "μs" + ], + "1 MILLIS": [ + "millisecond", + "milliseconds", + "ms" + ], + "1 SECONDS": [ + "second", + "seconds", + "s", + "sec", + "secs" + ], + "1 MINUTES": [ + "minute", + "minutes", + "m", + "min", + "mins" + ], + "1 HOURS": [ + "hour", + "hours", + "h", + "hr", + "hrs" + ], + "1 DAYS": [ + "day", + "days", + "d" + ], + "1 WEEKS": [ + "week", + "weeks", + "w" + ], + "1 MONTHS": [ + "month", + "months", + "mo", + "mon", + "mons" + ], + "1 YEARS": [ + "year", + "years", + "yr", + "yrs" + ], + "1 DECADES": [ + "decade", + "decades" + ], + "1 CENTURIES": [ + "century", + "centuries" + ], + "1 MILLENNIA": [ + "millenium", + "millennium", + "milleniums", + "millenniums", + "millenia", + "millennia" + ] + }, + "duration_restrict_after_number": [ + "ns", + "μs", + "ms", + "s", + "m", + "h", + "d", + "w", + "mo", + "yr" + ] +} \ No newline at end of file diff --git a/numbers/bin/main/config/fr-fr/date_time.json b/numbers/bin/main/config/fr-fr/date_time.json new file mode 100644 index 0000000..4344920 --- /dev/null +++ b/numbers/bin/main/config/fr-fr/date_time.json @@ -0,0 +1,147 @@ +{ + "decade_format": { + "1": {"match": "^\\d$", "format": "{x}"}, + "2": {"match": "^\\d0$", "format": "{x0}"}, + "3": {"match": "^[2-6]1$", "format": "{x0}-et-un"}, + "4": {"match": "^[2-6|8]\\d$", "format": "{x0}-{x}"}, + "5": {"match": "^\\d{2}$", "format": "{xx}"}, + "default": "{number}" + }, + "hundreds_format": { + "1": {"match": "^\\d{1,2}$", "format": "{formatted_decade}"}, + "2": {"match": "^100$", "format": "cent"}, + "3": {"match": "^\\d00$", "format": "{x_in_x00}-cents"}, + "4": {"match": "^1\\d{2}$", "format": "cent-{formatted_decade}"}, + "5": {"match": "^\\d{3}$", "format": "{x_in_x00}-cent-{formatted_decade}"}, + "default": "{number}" + }, + "thousand_format": { + "1": {"match": "^1000$", "format": "mille"}, + "2": {"match": "^\\d000$", "format": "{x_in_x000}-mille"}, + "3": {"match": "^1\\d{3}$", "format": "mille-{formatted_hundreds}"}, + "4": {"match": "^\\d{4}$", "format": "{x_in_x000}-mille-{formatted_hundreds}"}, + "default": "{number}" + }, + "year_format": { + "1": {"match": "^\\d\\d?$", "format": "{formatted_decade} {bc}"}, + "2": {"match": "^\\d{3}$", "format": "{formatted_hundreds} {bc}"}, + "3": {"match": "^[1-9]\\d{3}$", "format": "{formatted_thousand} {bc}"}, + "default": "{year} {bc}", + "bc": "avant Jésus Christ " + }, + "date_format": { + "date_full": "{weekday} {day} {month} {formatted_year}", + "date_full_no_year": "{weekday} {day} {month}", + "date_full_no_year_month": "{weekday} {day}", + "today": "aujourd'hui", + "tomorrow": "demain", + "yesterday": "hier" + }, + "date_time_format": { + "date_time": "{formatted_date} {formatted_time}" + }, + "weekday": { + "0": "lundi", + "1": "mardi", + "2": "mercredi", + "3": "jeudi", + "4": "vendredi", + "5": "samedi", + "6": "dimanche" + }, + "date": { + "1": "premier", + "2": "deux", + "3": "trois", + "4": "quatre", + "5": "cinq", + "6": "six", + "7": "sept", + "8": "huit", + "9": "neuf", + "10": "dix", + "11": "onze", + "12": "douze", + "13": "treize", + "14": "quatorze", + "15": "quinze", + "16": "seize", + "17": "dix-sept", + "18": "dix-huit", + "19": "dix-neuf", + "20": "vingt", + "21": "vingt-et-un", + "22": "vingt-deux", + "23": "vingt-trois", + "24": "vingt-quatre", + "25": "vingt-cinq", + "26": "vingt-six", + "27": "vingt-sept", + "28": "vingt-huit", + "29": "vingt-neuf", + "30": "trente", + "31": "trente-et-un" + }, + "month": { + "1": "janvier", + "2": "février", + "3": "mars", + "4": "avril", + "5": "mai", + "6": "juin", + "7": "juillet", + "8": "août", + "9": "septembre", + "10": "octobe", + "11": "novembre", + "12": "décembre" + }, + "number": { + "0": "zéro", + "1": "un", + "2": "deux", + "3": "trois", + "4": "quatre", + "5": "cinq", + "6": "six", + "7": "sept", + "8": "huit", + "9": "neuf", + "10": "dix", + "11": "onze", + "12": "douze", + "13": "treize", + "14": "quatorze", + "15": "quinze", + "16": "seize", + "17": "dix-sept", + "18": "dix-huit", + "19": "dix-neuf", + "20": "vingt", + "30": "trente", + "40": "quarante", + "50": "cinquante", + "60": "soixante", + "70": "soixante-dix", + "71": "soixante-et-onze", + "72": "soixante-douze", + "73": "soixante-treize", + "74": "soixante-quatorze", + "75": "soixante-quinze", + "76": "soixante-seize", + "77": "soixante-dix-sept", + "78": "soixante-dix-huit", + "79": "soixante-dix-neuf", + "80": "quatre-vingt", + "90": "quatre-vingt-dix", + "91": "quatre-vingt-onze", + "92": "quatre-vingt-douze", + "93": "quatre-vingt-treize", + "94": "quatre-vingt-quatorze", + "95": "quatre-vingt-quinze", + "96": "quatre-vingt-seize", + "97": "quatre-vingt-dix-sept", + "98": "quatre-vingt-dix-huit", + "99": "quatre-vingt-dix-neuf" + } +} diff --git a/numbers/bin/main/config/fr-fr/date_time_test.json b/numbers/bin/main/config/fr-fr/date_time_test.json new file mode 100644 index 0000000..448f219 --- /dev/null +++ b/numbers/bin/main/config/fr-fr/date_time_test.json @@ -0,0 +1,43 @@ +{ + "test_nice_year": { + "1": {"datetime_param": "1, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "un avant Jésus Christ" }, + "2": {"datetime_param": "10, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "dix avant Jésus Christ" }, + "3": {"datetime_param": "92, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "quatre-vingt-douze avant Jésus Christ" }, + "4": {"datetime_param": "803, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "huit-cent-trois" }, + "5": {"datetime_param": "111, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "cent-onze" }, + "6": {"datetime_param": "454, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "quatre-cent-cinquante-quatre" }, + "7": {"datetime_param": "2005, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "deux-mille-cinq" }, + "8": {"datetime_param": "1012, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "mille-douze" }, + "9": {"datetime_param": "1046, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "mille-quarante-six" }, + "10": {"datetime_param": "1807, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "mille-huit-cent-sept" }, + "11": {"datetime_param": "1717, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "mille-sept-cent-dix-sept" }, + "12": {"datetime_param": "1988, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "mille-neuf-cent-quatre-vingt-huit"}, + "13": {"datetime_param": "2009, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "deux-mille-neuf"}, + "14": {"datetime_param": "2018, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "deux-mille-dix-huit"}, + "15": {"datetime_param": "2021, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "deux-mille-vingt-et-un"}, + "16": {"datetime_param": "2030, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "deux-mille-trente"}, + "17": {"datetime_param": "2100, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "deux-mille-cent" }, + "18": {"datetime_param": "1000, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "mille" }, + "19": {"datetime_param": "2000, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "deux-mille" }, + "20": {"datetime_param": "3120, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "trois-mille-cent-vingt avant Jésus Christ" }, + "21": {"datetime_param": "3241, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "trois-mille-deux-cent-quarante-et-un avant Jésus Christ" }, + "22": {"datetime_param": "5200, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "cinq-mille-deux-cents" }, + "23": {"datetime_param": "1100, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "mille-cent" }, + "24": {"datetime_param": "2100, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "deux-mille-cent" } + }, + "test_nice_date": { + "1": {"datetime_param": "2017, 1, 31, 0, 2, 3", "now": "None", "assertEqual": "mardi trente-et-un janvier deux-mille-dix-sept"}, + "2": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2017, 1, 1, 0, 2, 3", "assertEqual": "dimanche quatre février deux-mille-dix-huit"}, + "3": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 1, 1, 0, 2, 3", "assertEqual": "dimanche quatre février"}, + "4": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 1, 0, 2, 3", "assertEqual": "dimanche quatre"}, + "5": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 3, 0, 2, 3", "assertEqual": "demain"}, + "6": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 4, 0, 2, 3", "assertEqual": "aujourd'hui"}, + "7": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 5, 0, 2, 3", "assertEqual": "hier"}, + "8": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 6, 0, 2, 3", "assertEqual": "dimanche quatre février"}, + "9": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2019, 2, 6, 0, 2, 3", "assertEqual": "dimanche quatre février deux-mille-dix-huit"} + }, + "test_nice_date_time": { + "1": {"datetime_param": "2017, 1, 31, 13, 22, 3", "now": "None", "use_24hour": "False", "use_ampm": "True", "assertEqual": "mardi trente-et-un janvier deux-mille-dix-sept une heure vingt-deux de l'après-midi"}, + "2": {"datetime_param": "2017, 1, 31, 13, 22, 3", "now": "None", "use_24hour": "True", "use_ampm": "False", "assertEqual": "mardi trente-et-un janvier deux-mille-dix-sept treize heures vingt-deux"} + } +} diff --git a/numbers/bin/main/config/fr-fr/day.word b/numbers/bin/main/config/fr-fr/day.word new file mode 100644 index 0000000..3e1393b --- /dev/null +++ b/numbers/bin/main/config/fr-fr/day.word @@ -0,0 +1 @@ +jour diff --git a/numbers/bin/main/config/fr-fr/days.word b/numbers/bin/main/config/fr-fr/days.word new file mode 100644 index 0000000..6a0300a --- /dev/null +++ b/numbers/bin/main/config/fr-fr/days.word @@ -0,0 +1 @@ +jours diff --git a/numbers/bin/main/config/fr-fr/hour.word b/numbers/bin/main/config/fr-fr/hour.word new file mode 100644 index 0000000..cfa09b2 --- /dev/null +++ b/numbers/bin/main/config/fr-fr/hour.word @@ -0,0 +1 @@ +heure diff --git a/numbers/bin/main/config/fr-fr/hours.word b/numbers/bin/main/config/fr-fr/hours.word new file mode 100644 index 0000000..5afb41b --- /dev/null +++ b/numbers/bin/main/config/fr-fr/hours.word @@ -0,0 +1 @@ +heures diff --git a/numbers/bin/main/config/fr-fr/minute.word b/numbers/bin/main/config/fr-fr/minute.word new file mode 100644 index 0000000..cfcd96c --- /dev/null +++ b/numbers/bin/main/config/fr-fr/minute.word @@ -0,0 +1 @@ +minute diff --git a/numbers/bin/main/config/fr-fr/minutes.word b/numbers/bin/main/config/fr-fr/minutes.word new file mode 100644 index 0000000..5cf0e30 --- /dev/null +++ b/numbers/bin/main/config/fr-fr/minutes.word @@ -0,0 +1 @@ +minutes diff --git a/numbers/bin/main/config/fr-fr/second.word b/numbers/bin/main/config/fr-fr/second.word new file mode 100644 index 0000000..110f968 --- /dev/null +++ b/numbers/bin/main/config/fr-fr/second.word @@ -0,0 +1 @@ +seconde diff --git a/numbers/bin/main/config/fr-fr/seconds.word b/numbers/bin/main/config/fr-fr/seconds.word new file mode 100644 index 0000000..7eac62a --- /dev/null +++ b/numbers/bin/main/config/fr-fr/seconds.word @@ -0,0 +1 @@ +secondes diff --git a/numbers/bin/main/config/fr-fr/tokenizer.json b/numbers/bin/main/config/fr-fr/tokenizer.json new file mode 100644 index 0000000..46b119d --- /dev/null +++ b/numbers/bin/main/config/fr-fr/tokenizer.json @@ -0,0 +1,393 @@ +{ + "spaces": " \t\n\f\r:;_!?<>|=()[]{}»«*~^`'\"", + "characters_as_word": "%‰#-+.,/", + "raw_number_categories": [ + "number", + "raw" + ], + "plural_endings": [ + "s" + ], + "word_matches": [ + { + "categories": [ + "ignore" + ], + "values": [ + "et" + ] + }, + { + "categories": [ + "ignore", + "thousand_separator" + ], + "values": [ + " ", + "-" + ] + }, + { + "categories": [ + "ordinal_suffix" + ], + "values": [ + "er", + "ier", + "ième" + ] + }, + { + "categories": [ + "point" + ], + "values": [ + "point", + "." + ] + }, + { + "categories": [ + "fraction_separator" + ], + "values": [ + "sur", + "divisé", + "/" + ] + }, + { + "categories": [ + "fraction_separator_secondary" + ], + "values": [ + "par" + ] + }, + { + "categories": [ + "sign", + "positive" + ], + "values": [ + "positif", + "plus", + "+" + ] + }, + { + "categories": [ + "sign", + "negative" + ], + "values": [ + "négatif", + "moins" + ] + }, + { + "categories": [ + "sign", + "negative", + "ignore" + ], + "values": [ + "-" + ] + }, + { + "categories": [ + "duration_separator" + ], + "values": [ + "d'" + ] + } + ], + "number_mappings": [ + { + "categories": [ + "number", + "digit", + "digit_after_point" + ], + "values": { + "zéro": 0, + "nul": 0, + "un": 1, + "deux": 2, + "trois": 3, + "quatre": 4, + "cinq": 5, + "six": 6, + "sept": 7, + "huit": 8, + "neuf": 9 + } + }, + { + "categories": [ + "number", + "digit_after_point" + ], + "values": { + "zéro": 0 + } + }, + { + "categories": [ + "number", + "teen" + ], + "values": { + "dix": 10, + "onze": 11, + "douze": 12, + "treize": 13, + "quatorze": 14, + "quinze": 15, + "seize": 16, + "dix-sept": 17, + "dix-huit": 18, + "dix-neuf": 19 + } + }, + { + "categories": [ + "number", + "tens" + ], + "values": { + "vingt": 20, + "trente": 30, + "quarante": 40, + "cinquante": 50, + "soixante": 60, + "soixante-dix": 70, + "quatre-vingts": 80, + "quatre-vingts-dix": 90 + } + }, + { + "categories": [ + "number", + "hundred" + ], + "values": { + "cent": 100 + } + }, + { + "categories": [ + "number", + "multiplier" + ], + "values": { + "mille": 1000, + "million": 1000000, + "milliard": 1000000000, + "billiard": 1000000000000, + "triliard": 1000000000000000, + "quadrilliard": 1000000000000000000 + } + }, + { + "categories": [ + "number", + "ordinal", + "digit" + ], + "values": { + "premier": 1, + "deuxième": 2, + "troisème": 3, + "quatrième": 4, + "cinqième": 5, + "sixième": 6, + "septième": 7, + "huitième": 8, + "neuvième": 9 + } + }, + { + "categories": [ + "number", + "ordinal", + "teen" + ], + "values": { + "dixième": 10, + "onzeième": 11, + "douzième": 12, + "treizième": 13, + "quatorzième": 14, + "quinzième": 15, + "seizième": 16, + "dix-septième": 17, + "dix-huitième": 18, + "dix-neuvième": 19 + } + }, + { + "categories": [ + "number", + "ordinal", + "tens" + ], + "values": { + "vingième": 20, + "trentième": 30, + "quarantième": 40, + "cinquantième": 50, + "soixantième": 60, + "soixante-dixième": 70, + "quatre-vingtième": 80, + "quatre-vingt-dixième": 90 + } + }, + { + "categories": [ + "number", + "ordinal", + "hundred" + ], + "values": { + "centième": 100 + } + }, + { + "categories": [ + "number", + "ordinal", + "multiplier" + ], + "values": { + "millième": 1000, + "millionième": 1000000, + "milliardième": 1000000000, + "billiardième": 1000000000000, + "triliardième": 1000000000000000, + "quadrilliardième": 1000000000000000000 + } + }, + { + "categories": [ + "number", + "suffix_multiplier" + ], + "values": { + "moitié": 0.5, + "moitiés": 0.5, + "quart": 0.25, + "quarts": 0.25, + "paire": 2, + "paires": 2, + "lustre": 5, + "lustres": 5, + "douzaines": 12, + "douzaine": 12, + "pourcent": 0.01, + "point": 0.01, + "%": 0.01, + "pour mille": 0.001, + "par mille": 0.001, + "par millier": 0.001, + "‰": 0.001 + } + } + ], + "duration_words": { + "1 NANOS": [ + "nanoseconde", + "nanosecondes", + "ns" + ], + "1 MICROS": [ + "microseconde", + "microsecondes", + "μs" + ], + "1 MILLIS": [ + "milliseconde", + "millisecondes", + "ms" + ], + "1 SECONDS": [ + "seconde", + "secondes", + "s", + "sec", + "secs" + ], + "1 MINUTES": [ + "minute", + "minutes", + "m", + "min", + "mins" + ], + "1 HOURS": [ + "heure", + "heures", + "h", + "hr", + "hrs" + ], + "1 DAYS": [ + "jour", + "jours", + "journée", + "journées", + "j" + ], + "1 WEEKS": [ + "semaine", + "semaines", + "S", + "w" + ], + "1 MONTHS": [ + "mois", + "M" + ], + "1 YEARS": [ + "an", + "ans", + "année", + "années", + "a", + "A" + ], + "1 DECADES": [ + "décennie", + "décennies", + "décade", + "décades" + ], + "1 CENTURIES": [ + "siècle", + "siècles" + ], + "1 MILLENNIA": [ + "millénaire", + "millénaires" + ] + }, + "duration_restrict_after_number": [ + "ns", + "μs", + "ms", + "s", + "m", + "h", + "d", + "w", + "mo", + "a", + "j", + "M", + "w", + "S", + "A" + ] +} \ No newline at end of file diff --git a/numbers/bin/main/config/it-it/date_time.json b/numbers/bin/main/config/it-it/date_time.json new file mode 100644 index 0000000..4580b11 --- /dev/null +++ b/numbers/bin/main/config/it-it/date_time.json @@ -0,0 +1,153 @@ +{ + "decade_format": { + "1": {"match": "^\\d$", "format": "{x}"}, + "2": {"match": "^1\\d$", "format": "{xx}"}, + "3": {"match": "^\\d0$", "format": "{x0}"}, + "4": {"match": "^[2-9][1|8]", "format": "{xx}"}, + "5": {"match": "^[2-9]\\d$", "format": "{x0}{x}"}, + "default": "{number}" + }, + "hundreds_format": { + "1": {"match": "^1\\d{2}$", "format": "cento"}, + "2": {"match": "^\\d{3}$", "format": "{x_in_x00}cento"}, + "default": "{number}" + }, + "thousand_format": { + "1": {"match": "^1\\d{3}$", "format": "mille"}, + "2": {"match": "^\\d{4}$", "format": "{x_in_x000}mila"}, + "default": "{number}" + }, + "year_format": { + "1": {"match": "^\\d\\d?$", "format": "{formatted_decade} {bc}"}, + "2": {"match": "^\\d00$", "format": "{formatted_hundreds} {bc}"}, + "3": {"match": "^\\d000$", "format": "{formatted_thousand} {bc}"}, + "4": {"match": "^\\d{3}$", "format": "{formatted_hundreds} {formatted_decade} {bc}"}, + "5": {"match": "^1[0-9]00$", "format": "{formatted_thousand} {formatted_hundreds} {bc}"}, + "6": {"match": "^10\\d{2}$", "format": "{formatted_thousand} e {formatted_decade} {bc}"}, + "7": {"match": "^[2-9][0-9]00$", "format": "{formatted_thousand} {formatted_hundreds} {bc}"}, + "8": {"match": "^20\\d{2}$", "format": "{formatted_thousand} {formatted_decade} {bc}"}, + "9": {"match": "^(1\\d{3})|(\\d0\\d{2})$", "format": "{formatted_thousand} {formatted_hundreds} {formatted_decade} {bc}"}, + "10": {"match": "^[2-9]000$", "format": "{formatted_thousand} {bc}"}, + "11": {"match": "^20\\d{2}$", "format": "{formatted_thousand} {formatted_decade} {bc}"}, + "12": {"match": "^([2-9]\\d{3})|(\\d0\\d{2})$", "format": "{formatted_thousand} {formatted_hundreds} {formatted_decade} {bc}"}, + "13": {"match": "^\\d{4}$", "format": "{formatted_thousand} {formatted_hundreds} {formatted_decade} {bc}"}, + "default": "{year} {bc}", + "bc": "a.C." + }, + "date_format": { + "date_full": "{weekday}, {day} {month}, {formatted_year}", + "date_full_no_year": "{weekday}, {day} {month}", + "date_full_no_year_month": "{weekday}, {day}", + "today": "oggi", + "tomorrow": "domani", + "yesterday": "ieri" + }, + "date_time_format": { + "date_time": "{formatted_date} alle {formatted_time}" + }, + "weekday": { + "0": "lunedì", + "1": "martedì", + "2": "mercoledì", + "3": "giovedì", + "4": "venerdì", + "5": "sabato", + "6": "domenica" + }, + "date": { + "1": "primo", + "2": "due", + "3": "tre", + "4": "quattro", + "5": "cinque", + "6": "sei", + "7": "sette", + "8": "otto", + "9": "nove", + "10": "dieci", + "11": "undici", + "12": "dodici", + "13": "tredici", + "14": "quattordici", + "15": "quindici", + "16": "sedici", + "17": "diciassette", + "18": "diciotto", + "19": "diciannove", + "20": "venti", + "21": "ventuno", + "22": "ventidue", + "23": "ventitre", + "24": "ventiquattro", + "25": "venticinque", + "26": "ventisei", + "27": "ventisette", + "28": "ventotto", + "29": "ventinove", + "30": "trenta", + "31": "trentuno" + }, + "month": { + "1": "gennaio", + "2": "febbraio", + "3": "marzo", + "4": "aprile", + "5": "maggio", + "6": "giugno", + "7": "luglio", + "8": "agosto", + "9": "settembre", + "10": "ottobre", + "11": "novembre", + "12": "dicembre" + }, + "number": { + "0": "zero", + "1": "uno", + "2": "due", + "3": "tre", + "4": "quattro", + "5": "cinque", + "6": "sei", + "7": "sette", + "8": "otto", + "9": "nove", + "10": "dieci", + "11": "undici", + "12": "dodici", + "13": "tredici", + "14": "quattordici", + "15": "quindici", + "16": "sedici", + "17": "diciassette", + "18": "diciotto", + "19": "diciannove", + "20": "venti", + "21": "ventuno", + "28": "ventotto", + "30": "trenta", + "31": "trentuno", + "38": "trentotto", + "40": "quaranta", + "41": "quarantuno", + "48": "quarantotto", + "50": "cinquanta", + "51": "cinquantuno", + "58": "cinquantotto", + "60": "sessanta", + "61": "sessantuno", + "68": "sessantotto", + "70": "settanta", + "71": "settantuno", + "78": "settantotto", + "80": "ottanta", + "81": "ottantuno", + "88": "ottantotto", + "90": "novanta", + "91": "novantuno", + "98": "novantotto", + "100": "cento", + "1000": "mille", + "2000": "duemila" + } +} diff --git a/numbers/bin/main/config/it-it/day.word b/numbers/bin/main/config/it-it/day.word new file mode 100644 index 0000000..e5d9b11 --- /dev/null +++ b/numbers/bin/main/config/it-it/day.word @@ -0,0 +1 @@ +giorno diff --git a/numbers/bin/main/config/it-it/days.word b/numbers/bin/main/config/it-it/days.word new file mode 100644 index 0000000..f042e0c --- /dev/null +++ b/numbers/bin/main/config/it-it/days.word @@ -0,0 +1 @@ +giorni diff --git a/numbers/bin/main/config/it-it/hour.word b/numbers/bin/main/config/it-it/hour.word new file mode 100644 index 0000000..5d842f0 --- /dev/null +++ b/numbers/bin/main/config/it-it/hour.word @@ -0,0 +1 @@ +ora \ No newline at end of file diff --git a/numbers/bin/main/config/it-it/hours.word b/numbers/bin/main/config/it-it/hours.word new file mode 100644 index 0000000..b9f40a7 --- /dev/null +++ b/numbers/bin/main/config/it-it/hours.word @@ -0,0 +1 @@ +ore diff --git a/numbers/bin/main/config/it-it/minute.word b/numbers/bin/main/config/it-it/minute.word new file mode 100644 index 0000000..9b63882 --- /dev/null +++ b/numbers/bin/main/config/it-it/minute.word @@ -0,0 +1 @@ +minuto diff --git a/numbers/bin/main/config/it-it/minutes.word b/numbers/bin/main/config/it-it/minutes.word new file mode 100644 index 0000000..a4cb0ec --- /dev/null +++ b/numbers/bin/main/config/it-it/minutes.word @@ -0,0 +1 @@ +minuti diff --git a/numbers/bin/main/config/it-it/second.word b/numbers/bin/main/config/it-it/second.word new file mode 100644 index 0000000..254add6 --- /dev/null +++ b/numbers/bin/main/config/it-it/second.word @@ -0,0 +1 @@ +secondo diff --git a/numbers/bin/main/config/it-it/seconds.word b/numbers/bin/main/config/it-it/seconds.word new file mode 100644 index 0000000..bdfb0db --- /dev/null +++ b/numbers/bin/main/config/it-it/seconds.word @@ -0,0 +1 @@ +secondi diff --git a/numbers/bin/main/config/it-it/tokenizer.json b/numbers/bin/main/config/it-it/tokenizer.json new file mode 100644 index 0000000..bbe39d5 --- /dev/null +++ b/numbers/bin/main/config/it-it/tokenizer.json @@ -0,0 +1,531 @@ +{ + "spaces": " \t\n\f\r:;_!?<>|=()[]{}»«*~^`'\"", + "characters_as_word": "%‰#-+.,/°ª", + "compound_word_piece_category": "compound_word_piece", + "raw_number_categories": [ + "number", + "raw" + ], + "plural_endings": [ + ], + "word_matches": [ + { + "categories": [ + "ignore" + ], + "values": [ + "e" + ] + }, + { + "categories": [ + "ignore", + "thousand_separator" + ], + "values": [ + "." + ] + }, + { + "categories": [ + "ordinal_suffix" + ], + "values": [ + "°", + "ª", + "esimo", + "esima", + "esimi", + "esime" + ] + }, + { + "categories": [ + "point" + ], + "values": [ + "punto", + "virgola", + "," + ] + }, + { + "categories": [ + "point", + "ignore" + ], + "values": [ + "," + ] + }, + { + "categories": [ + "fraction_separator" + ], + "values": [ + "fratto", + "diviso", + "/" + ] + }, + { + "categories": [ + "sign", + "positive" + ], + "values": [ + "piu", + "+" + ] + }, + { + "categories": [ + "sign", + "negative" + ], + "values": [ + "meno", + "-" + ] + }, + { + "categories": [ + "duration_separator" + ], + "values": [ + "di", + "d" + ] + } + ], + "number_mappings": [ + { + "categories": [ + "number", + "digit", + "digit_after_point", + "compound_word_piece" + ], + "values": { + "zero": 0, + "uno": 1, + "due": 2, + "tre": 3, + "quattro": 4, + "cinque": 5, + "sei": 6, + "sette": 7, + "otto": 8, + "nove": 9 + } + }, + { + "categories": [ + "number", + "digit", + "compound_word_piece" + ], + "values": { + "un": 1, + "una": 1 + } + }, + { + "categories": [ + "number", + "teen", + "compound_word_piece" + ], + "values": { + "dieci": 10, + "undici": 11, + "dodici": 12, + "tredici": 13, + "quattordici": 14, + "quindici": 15, + "sedici": 16, + "diciassette": 17, + "diciotto": 18, + "diciannove": 19 + } + }, + { + "categories": [ + "number", + "tens", + "compound_word_piece" + ], + "values": { + "venti": 20, + "vent": 20, + "trenta": 30, + "trent": 30, + "quaranta": 40, + "quarant": 40, + "cinquanta": 50, + "cinquant": 50, + "sessanta": 60, + "sessant": 60, + "settanta": 70, + "settant": 70, + "ottanta": 80, + "ottant": 80, + "novanta": 90, + "novant": 90 + } + }, + { + "categories": [ + "number", + "hundred", + "compound_word_piece" + ], + "values": { + "cento": 100, + "cent": 100 + } + }, + { + "categories": [ + "number", + "multiplier", + "compound_word_piece" + ], + "values": { + "mille": 1000, + "migliaio": 1000, + "migliaia": 1000, + "mila": 1000, + "milione": 1000000, + "milioni": 1000000, + "miliardo": 1000000000, + "miliardi": 1000000000, + "bilione": 1000000000000, + "bilioni": 1000000000000, + "biliardo": 1000000000000000, + "biliardi": 1000000000000000, + "trilione": 1000000000000000000, + "trilioni": 1000000000000000000 + } + }, + { + "categories": [ + "number", + "ordinal", + "digit", + "compound_word_piece" + ], + "values": { + "primo": 1, + "prima": 1, + "primi": 1, + "prime": 1, + "unesimo": 1, + "unesima": 1, + "unesimi": 1, + "unesime": 1, + "secondo": 2, + "seconda": 2, + "secondi": 2, + "seconde": 2, + "duesimo": 2, + "duesima": 2, + "duesimi": 2, + "duesime": 2, + "terzo": 3, + "terza": 3, + "terzi": 3, + "terze": 3, + "treesimo": 3, + "treesima": 3, + "treesimi": 3, + "treesime": 3, + "quarto": 4, + "quarta": 4, + "quarti": 4, + "quarte": 4, + "quattresimo": 4, + "quattresima": 4, + "quattresimi": 4, + "quattresime": 4, + "quinto": 5, + "quinta": 5, + "quinti": 5, + "quinte": 5, + "cinquesimo": 5, + "cinquesima": 5, + "cinquesimi": 5, + "cinquesime": 5, + "sesto": 6, + "sesta": 6, + "sesti": 6, + "seste": 6, + "seiesimo": 6, + "seiesima": 6, + "seiesimi": 6, + "seiesime": 6, + "settimo": 7, + "settima": 7, + "settimi": 7, + "settime": 7, + "settesimo": 7, + "settesima": 7, + "settesimi": 7, + "settesime": 7, + "ottavo": 8, + "ottava": 8, + "ottavi": 8, + "ottave": 8, + "ottesimo": 8, + "ottesima": 8, + "ottesimi": 8, + "ottesime": 8, + "nono": 9, + "nona": 9, + "noni": 9, + "none": 9, + "novesimo": 9, + "novesima": 9, + "novesimi": 9, + "novesime": 9 + } + }, + { + "categories": [ + "number", + "ordinal", + "teen", + "compound_word_piece" + ], + "values": { + "decimo": 10, + "decima": 10, + "decimi": 10, + "decime": 10, + "undicesimo": 11, + "undicesima": 11, + "undicesimi": 11, + "undicesime": 11, + "dodicesimo": 12, + "dodicesima": 12, + "dodicesimi": 12, + "dodicesime": 12, + "tredicesimo": 13, + "tredicesima": 13, + "tredicesimi": 13, + "tredicesime": 13, + "quattordicesimo": 14, + "quattordicesima": 14, + "quattordicesimi": 14, + "quattordicesime": 14, + "quindicesimo": 15, + "quindicesima": 15, + "quindicesimi": 15, + "quindicesime": 15, + "sedicesimo": 16, + "sedicesima": 16, + "sedicesimi": 16, + "sedicesime": 16, + "diciassettesimo": 17, + "diciassettesima": 17, + "diciassettesimi": 17, + "diciassettesime": 17, + "diciottesimo": 18, + "diciottesima": 18, + "diciottesimi": 18, + "diciottesime": 18, + "diciannovesimo": 19, + "diciannovesima": 19, + "diciannovesimi": 19, + "diciannovesime": 19 + } + }, + { + "categories": [ + "number", + "ordinal", + "tens", + "compound_word_piece" + ], + "values": { + "ventesimo": 20, + "ventesima": 20, + "ventesimi": 20, + "ventesime": 20, + "trentesimo": 30, + "trentesima": 30, + "trentesimi": 30, + "trentesime": 30, + "quarantesimo": 40, + "quarantesima": 40, + "quarantesimi": 40, + "quarantesime": 40, + "cinquantesimo": 50, + "cinquantesima": 50, + "cinquantesimi": 50, + "cinquantesime": 50, + "sessantesimo": 60, + "sessantesima": 60, + "sessantesimi": 60, + "sessantesime": 60, + "settantesimo": 70, + "settantesima": 70, + "settantesimi": 70, + "settantesime": 70, + "ottantesimo": 80, + "ottantesima": 80, + "ottantesimi": 80, + "ottantesime": 80, + "novantesimo": 90, + "novantesima": 90, + "novantesimi": 90, + "novantesime": 90 + } + }, + { + "categories": [ + "number", + "ordinal", + "hundred", + "compound_word_piece" + ], + "values": { + "centesimo": 100, + "centesima": 100, + "centesimi": 100, + "centesime": 100 + } + }, + { + "categories": [ + "number", + "ordinal", + "multiplier", + "compound_word_piece" + ], + "values": { + "millesimo": 1000, + "millesima": 1000, + "millesimi": 1000, + "millesime": 1000, + "milionesimo": 1000000, + "milionesima": 1000000, + "milionesimi": 1000000, + "milionesime": 1000000, + "miliardesimo": 1000000000, + "miliardesima": 1000000000, + "miliardesimi": 1000000000, + "miliardesime": 1000000000, + "bilionesimo": 1000000000000, + "bilionesima": 1000000000000, + "bilionesimi": 1000000000000, + "bilionesime": 1000000000000, + "biliardesimo": 1000000000000000, + "biliardesima": 1000000000000000, + "biliardesimi": 1000000000000000, + "biliardesime": 1000000000000000, + "trilionesimo": 1000000000000000000, + "trilionesima": 1000000000000000000, + "trilionesimi": 1000000000000000000, + "trilionesime": 1000000000000000000 + } + }, + { + "categories": [ + "number", + "suffix_multiplier" + ], + "values": { + "mezz": 0.5, + "mezzo": 0.5, + "mezza": 0.5, + "mezzi": 0.5, + "mezze": 0.5, + "meta": 0.5, + "paio": 2, + "paia": 2, + "coppia": 2, + "coppie": 2, + "dozzina": 12, + "dozzine": 12, + "percento": 0.01, + "%": 0.01, + "permille": 0.001, + "‰": 0.001, + "TODO dovrei anche aggiungere per cento e per mille???": 0 + } + } + ], + "duration_words": { + "1 NANOS": [ + "nanosecondo", + "nanosecondi", + "ns" + ], + "1 MICROS": [ + "microsecondo", + "microsecondi", + "μs" + ], + "1 MILLIS": [ + "millisecondo", + "millisecondi", + "ms" + ], + "1 SECONDS": [ + "secondo", + "secondi", + "s", + "sec" + ], + "1 MINUTES": [ + "minuto", + "minuti", + "m", + "min" + ], + "1 HOURS": [ + "ora", + "ore", + "h" + ], + "1 DAYS": [ + "giorno", + "giorni", + "giornata", + "giornate" + ], + "1 WEEKS": [ + "settimana", + "settimane" + ], + "1 MONTHS": [ + "mese", + "mesi" + ], + "1 YEARS": [ + "anno", + "anni" + ], + "1 DECADES": [ + "decennio", + "decenni" + ], + "1 CENTURIES": [ + "secolo", + "secoli" + ], + "1 MILLENNIA": [ + "millennio", + "millenni" + ] + }, + "duration_restrict_after_number": [ + "ns", + "μs", + "ms", + "s", + "m", + "h" + ] +} \ No newline at end of file diff --git a/numbers/bin/main/org/dicio/numbers/NumberParserFormatter.class b/numbers/bin/main/org/dicio/numbers/NumberParserFormatter.class new file mode 100644 index 0000000..dd92271 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/NumberParserFormatter.class differ diff --git a/numbers/bin/main/org/dicio/numbers/NumberParserFormatterBuilder$1.class b/numbers/bin/main/org/dicio/numbers/NumberParserFormatterBuilder$1.class new file mode 100644 index 0000000..f816a45 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/NumberParserFormatterBuilder$1.class differ diff --git a/numbers/bin/main/org/dicio/numbers/NumberParserFormatterBuilder$ParserFormatterClasses.class b/numbers/bin/main/org/dicio/numbers/NumberParserFormatterBuilder$ParserFormatterClasses.class new file mode 100644 index 0000000..f154a4d Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/NumberParserFormatterBuilder$ParserFormatterClasses.class differ diff --git a/numbers/bin/main/org/dicio/numbers/NumberParserFormatterBuilder$ParserFormatterPair.class b/numbers/bin/main/org/dicio/numbers/NumberParserFormatterBuilder$ParserFormatterPair.class new file mode 100644 index 0000000..1a64672 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/NumberParserFormatterBuilder$ParserFormatterPair.class differ diff --git a/numbers/bin/main/org/dicio/numbers/NumberParserFormatterBuilder.class b/numbers/bin/main/org/dicio/numbers/NumberParserFormatterBuilder.class new file mode 100644 index 0000000..89c234c Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/NumberParserFormatterBuilder.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/NumberFormatter$1.class b/numbers/bin/main/org/dicio/numbers/formatter/NumberFormatter$1.class new file mode 100644 index 0000000..7926e1c Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/NumberFormatter$1.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/NumberFormatter$2.class b/numbers/bin/main/org/dicio/numbers/formatter/NumberFormatter$2.class new file mode 100644 index 0000000..56874be Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/NumberFormatter$2.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/NumberFormatter.class b/numbers/bin/main/org/dicio/numbers/formatter/NumberFormatter.class new file mode 100644 index 0000000..4e8918a Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/NumberFormatter.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/datetime/DateTimeConfig.class b/numbers/bin/main/org/dicio/numbers/formatter/datetime/DateTimeConfig.class new file mode 100644 index 0000000..58a0671 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/datetime/DateTimeConfig.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatString$FormatPart.class b/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatString$FormatPart.class new file mode 100644 index 0000000..063e55e Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatString$FormatPart.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatString$Part.class b/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatString$Part.class new file mode 100644 index 0000000..40c2670 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatString$Part.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatString$StringPart.class b/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatString$StringPart.class new file mode 100644 index 0000000..afd435f Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatString$StringPart.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatString.class b/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatString.class new file mode 100644 index 0000000..f2d838b Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatString.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatStringCollection$PatternFormatPair.class b/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatStringCollection$PatternFormatPair.class new file mode 100644 index 0000000..09d3bde Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatStringCollection$PatternFormatPair.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatStringCollection.class b/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatStringCollection.class new file mode 100644 index 0000000..35d9ca0 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/datetime/FormatStringCollection.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/datetime/NiceYearSubstitutionTableBuilder$1.class b/numbers/bin/main/org/dicio/numbers/formatter/datetime/NiceYearSubstitutionTableBuilder$1.class new file mode 100644 index 0000000..0b4dd15 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/datetime/NiceYearSubstitutionTableBuilder$1.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/datetime/NiceYearSubstitutionTableBuilder.class b/numbers/bin/main/org/dicio/numbers/formatter/datetime/NiceYearSubstitutionTableBuilder.class new file mode 100644 index 0000000..b441734 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/datetime/NiceYearSubstitutionTableBuilder.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/param/NiceDateParameters.class b/numbers/bin/main/org/dicio/numbers/formatter/param/NiceDateParameters.class new file mode 100644 index 0000000..0a6d657 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/param/NiceDateParameters.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/param/NiceDateTimeParameters.class b/numbers/bin/main/org/dicio/numbers/formatter/param/NiceDateTimeParameters.class new file mode 100644 index 0000000..d54ce22 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/param/NiceDateTimeParameters.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/param/NiceDurationParameters.class b/numbers/bin/main/org/dicio/numbers/formatter/param/NiceDurationParameters.class new file mode 100644 index 0000000..c12dade Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/param/NiceDurationParameters.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/param/NiceNumberParameters.class b/numbers/bin/main/org/dicio/numbers/formatter/param/NiceNumberParameters.class new file mode 100644 index 0000000..84d80e6 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/param/NiceNumberParameters.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/param/NiceTimeParameters.class b/numbers/bin/main/org/dicio/numbers/formatter/param/NiceTimeParameters.class new file mode 100644 index 0000000..f0ee2c9 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/param/NiceTimeParameters.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/param/NiceYearParameters.class b/numbers/bin/main/org/dicio/numbers/formatter/param/NiceYearParameters.class new file mode 100644 index 0000000..57028c8 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/param/NiceYearParameters.class differ diff --git a/numbers/bin/main/org/dicio/numbers/formatter/param/PronounceNumberParameters.class b/numbers/bin/main/org/dicio/numbers/formatter/param/PronounceNumberParameters.class new file mode 100644 index 0000000..c5d1881 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/formatter/param/PronounceNumberParameters.class differ diff --git a/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$1.class b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$1.class new file mode 100644 index 0000000..eef5c71 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$1.class differ diff --git a/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$2.class b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$2.class new file mode 100644 index 0000000..902d554 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$2.class differ diff --git a/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$3.class b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$3.class new file mode 100644 index 0000000..b65d664 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$3.class differ diff --git a/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$4.class b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$4.class new file mode 100644 index 0000000..6c2715d Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$4.class differ diff --git a/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$5.class b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$5.class new file mode 100644 index 0000000..eed8950 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$5.class differ diff --git a/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$6.class b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$6.class new file mode 100644 index 0000000..b98b108 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter$6.class differ diff --git a/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter.class b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter.class new file mode 100644 index 0000000..27ddeed Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishFormatter.class differ diff --git a/numbers/bin/main/org/dicio/numbers/lang/en/EnglishNumberExtractor.class b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishNumberExtractor.class new file mode 100644 index 0000000..9a93a93 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishNumberExtractor.class differ diff --git a/numbers/bin/main/org/dicio/numbers/lang/en/EnglishParser.class b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishParser.class new file mode 100644 index 0000000..e9c3506 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/lang/en/EnglishParser.class differ diff --git a/numbers/bin/main/org/dicio/numbers/lang/it/ItalianFormatter$1.class b/numbers/bin/main/org/dicio/numbers/lang/it/ItalianFormatter$1.class new file mode 100644 index 0000000..9be7f40 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/lang/it/ItalianFormatter$1.class differ diff --git a/numbers/bin/main/org/dicio/numbers/lang/it/ItalianFormatter$2.class b/numbers/bin/main/org/dicio/numbers/lang/it/ItalianFormatter$2.class new file mode 100644 index 0000000..1035ebb Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/lang/it/ItalianFormatter$2.class differ diff --git a/numbers/bin/main/org/dicio/numbers/lang/it/ItalianFormatter.class b/numbers/bin/main/org/dicio/numbers/lang/it/ItalianFormatter.class new file mode 100644 index 0000000..6f724b2 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/lang/it/ItalianFormatter.class differ diff --git a/numbers/bin/main/org/dicio/numbers/lang/it/ItalianNumberExtractor.class b/numbers/bin/main/org/dicio/numbers/lang/it/ItalianNumberExtractor.class new file mode 100644 index 0000000..fa79b2f Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/lang/it/ItalianNumberExtractor.class differ diff --git a/numbers/bin/main/org/dicio/numbers/lang/it/ItalianParser.class b/numbers/bin/main/org/dicio/numbers/lang/it/ItalianParser.class new file mode 100644 index 0000000..bbf2fa6 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/lang/it/ItalianParser.class differ diff --git a/numbers/bin/main/org/dicio/numbers/parser/NumberParser.class b/numbers/bin/main/org/dicio/numbers/parser/NumberParser.class new file mode 100644 index 0000000..ecb909d Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/parser/NumberParser.class differ diff --git a/numbers/bin/main/org/dicio/numbers/parser/lexer/DurationToken.class b/numbers/bin/main/org/dicio/numbers/parser/lexer/DurationToken.class new file mode 100644 index 0000000..a27d4ed Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/parser/lexer/DurationToken.class differ diff --git a/numbers/bin/main/org/dicio/numbers/parser/lexer/MatchedToken.class b/numbers/bin/main/org/dicio/numbers/parser/lexer/MatchedToken.class new file mode 100644 index 0000000..b5ab5b6 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/parser/lexer/MatchedToken.class differ diff --git a/numbers/bin/main/org/dicio/numbers/parser/lexer/NumberToken.class b/numbers/bin/main/org/dicio/numbers/parser/lexer/NumberToken.class new file mode 100644 index 0000000..6180d01 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/parser/lexer/NumberToken.class differ diff --git a/numbers/bin/main/org/dicio/numbers/parser/lexer/Token.class b/numbers/bin/main/org/dicio/numbers/parser/lexer/Token.class new file mode 100644 index 0000000..a231992 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/parser/lexer/Token.class differ diff --git a/numbers/bin/main/org/dicio/numbers/parser/lexer/TokenStream.class b/numbers/bin/main/org/dicio/numbers/parser/lexer/TokenStream.class new file mode 100644 index 0000000..0864978 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/parser/lexer/TokenStream.class differ diff --git a/numbers/bin/main/org/dicio/numbers/parser/lexer/Tokenizer$DurationMapping.class b/numbers/bin/main/org/dicio/numbers/parser/lexer/Tokenizer$DurationMapping.class new file mode 100644 index 0000000..15d33e0 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/parser/lexer/Tokenizer$DurationMapping.class differ diff --git a/numbers/bin/main/org/dicio/numbers/parser/lexer/Tokenizer$Mapping.class b/numbers/bin/main/org/dicio/numbers/parser/lexer/Tokenizer$Mapping.class new file mode 100644 index 0000000..4fb8674 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/parser/lexer/Tokenizer$Mapping.class differ diff --git a/numbers/bin/main/org/dicio/numbers/parser/lexer/Tokenizer.class b/numbers/bin/main/org/dicio/numbers/parser/lexer/Tokenizer.class new file mode 100644 index 0000000..68fb210 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/parser/lexer/Tokenizer.class differ diff --git a/numbers/bin/main/org/dicio/numbers/parser/param/ExtractDurationParams.class b/numbers/bin/main/org/dicio/numbers/parser/param/ExtractDurationParams.class new file mode 100644 index 0000000..9bcd227 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/parser/param/ExtractDurationParams.class differ diff --git a/numbers/bin/main/org/dicio/numbers/parser/param/ExtractNumbersParams.class b/numbers/bin/main/org/dicio/numbers/parser/param/ExtractNumbersParams.class new file mode 100644 index 0000000..f350cd7 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/parser/param/ExtractNumbersParams.class differ diff --git a/numbers/bin/main/org/dicio/numbers/util/DurationExtractorUtils.class b/numbers/bin/main/org/dicio/numbers/util/DurationExtractorUtils.class new file mode 100644 index 0000000..a20156e Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/util/DurationExtractorUtils.class differ diff --git a/numbers/bin/main/org/dicio/numbers/util/MixedFraction.class b/numbers/bin/main/org/dicio/numbers/util/MixedFraction.class new file mode 100644 index 0000000..97dccd7 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/util/MixedFraction.class differ diff --git a/numbers/bin/main/org/dicio/numbers/util/Number.class b/numbers/bin/main/org/dicio/numbers/util/Number.class new file mode 100644 index 0000000..63dbc79 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/util/Number.class differ diff --git a/numbers/bin/main/org/dicio/numbers/util/NumberExtractorUtils$ExtractNumbersMethod.class b/numbers/bin/main/org/dicio/numbers/util/NumberExtractorUtils$ExtractNumbersMethod.class new file mode 100644 index 0000000..2c24c49 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/util/NumberExtractorUtils$ExtractNumbersMethod.class differ diff --git a/numbers/bin/main/org/dicio/numbers/util/NumberExtractorUtils$NumberGroupGetter.class b/numbers/bin/main/org/dicio/numbers/util/NumberExtractorUtils$NumberGroupGetter.class new file mode 100644 index 0000000..a38b029 Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/util/NumberExtractorUtils$NumberGroupGetter.class differ diff --git a/numbers/bin/main/org/dicio/numbers/util/NumberExtractorUtils.class b/numbers/bin/main/org/dicio/numbers/util/NumberExtractorUtils.class new file mode 100644 index 0000000..bd3f6bf Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/util/NumberExtractorUtils.class differ diff --git a/numbers/bin/main/org/dicio/numbers/util/ResourceOpener.class b/numbers/bin/main/org/dicio/numbers/util/ResourceOpener.class new file mode 100644 index 0000000..7d41a7a Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/util/ResourceOpener.class differ diff --git a/numbers/bin/main/org/dicio/numbers/util/Utils.class b/numbers/bin/main/org/dicio/numbers/util/Utils.class new file mode 100644 index 0000000..5fb82fd Binary files /dev/null and b/numbers/bin/main/org/dicio/numbers/util/Utils.class differ diff --git a/numbers/bin/test/config/en-us/date_time_test.json b/numbers/bin/test/config/en-us/date_time_test.json new file mode 100644 index 0000000..ffde77b --- /dev/null +++ b/numbers/bin/test/config/en-us/date_time_test.json @@ -0,0 +1,43 @@ +{ + "test_nice_year": { + "1": {"datetime_param": "1, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "one b.c." }, + "2": {"datetime_param": "10, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "ten b.c." }, + "3": {"datetime_param": "92, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "ninety two b.c." }, + "4": {"datetime_param": "803, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "eight hundred three" }, + "5": {"datetime_param": "811, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "eight hundred eleven" }, + "6": {"datetime_param": "454, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "four hundred fifty four" }, + "7": {"datetime_param": "1005, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "one thousand five" }, + "8": {"datetime_param": "1012, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "ten twelve" }, + "9": {"datetime_param": "1046, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "ten forty six" }, + "10": {"datetime_param": "1807, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "eighteen oh seven" }, + "11": {"datetime_param": "1717, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "seventeen seventeen" }, + "12": {"datetime_param": "1988, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "nineteen eighty eight"}, + "13": {"datetime_param": "2009, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "two thousand nine"}, + "14": {"datetime_param": "2018, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "twenty eighteen"}, + "15": {"datetime_param": "2021, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "twenty twenty one"}, + "16": {"datetime_param": "2030, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "twenty thirty"}, + "17": {"datetime_param": "2100, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "twenty one hundred" }, + "18": {"datetime_param": "1000, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "one thousand" }, + "19": {"datetime_param": "2000, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "two thousand" }, + "20": {"datetime_param": "3120, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "thirty one twenty b.c." }, + "21": {"datetime_param": "3241, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "thirty two forty one b.c." }, + "22": {"datetime_param": "5200, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "fifty two hundred" }, + "23": {"datetime_param": "1100, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "eleven hundred" }, + "24": {"datetime_param": "2100, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "twenty one hundred" } + }, + "test_nice_date": { + "1": {"datetime_param": "2017, 1, 31, 0, 2, 3", "now": "None", "assertEqual": "tuesday, january thirty-first, twenty seventeen"}, + "2": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2017, 1, 1, 0, 2, 3", "assertEqual": "sunday, february fourth, twenty eighteen"}, + "3": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 1, 1, 0, 2, 3", "assertEqual": "sunday, february fourth"}, + "4": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 1, 0, 2, 3", "assertEqual": "sunday, the fourth"}, + "5": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 3, 0, 2, 3", "assertEqual": "tomorrow"}, + "6": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 4, 0, 2, 3", "assertEqual": "today"}, + "7": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 5, 0, 2, 3", "assertEqual": "yesterday"}, + "8": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 6, 0, 2, 3", "assertEqual": "sunday, february fourth"}, + "9": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2019, 2, 6, 0, 2, 3", "assertEqual": "sunday, february fourth, twenty eighteen"} + }, + "test_nice_date_time": { + "1": {"datetime_param": "2017, 1, 31, 13, 22, 3", "now": "None", "use_24hour": "False", "use_ampm": "True", "assertEqual": "tuesday, january thirty-first, twenty seventeen at one twenty two p.m."}, + "2": {"datetime_param": "2017, 1, 31, 13, 22, 3", "now": "None", "use_24hour": "True", "use_ampm": "False", "assertEqual": "tuesday, january thirty-first, twenty seventeen at thirteen twenty two"} + } +} diff --git a/numbers/bin/test/config/fr-fr/date_time_test.json b/numbers/bin/test/config/fr-fr/date_time_test.json new file mode 100644 index 0000000..448f219 --- /dev/null +++ b/numbers/bin/test/config/fr-fr/date_time_test.json @@ -0,0 +1,43 @@ +{ + "test_nice_year": { + "1": {"datetime_param": "1, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "un avant Jésus Christ" }, + "2": {"datetime_param": "10, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "dix avant Jésus Christ" }, + "3": {"datetime_param": "92, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "quatre-vingt-douze avant Jésus Christ" }, + "4": {"datetime_param": "803, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "huit-cent-trois" }, + "5": {"datetime_param": "111, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "cent-onze" }, + "6": {"datetime_param": "454, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "quatre-cent-cinquante-quatre" }, + "7": {"datetime_param": "2005, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "deux-mille-cinq" }, + "8": {"datetime_param": "1012, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "mille-douze" }, + "9": {"datetime_param": "1046, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "mille-quarante-six" }, + "10": {"datetime_param": "1807, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "mille-huit-cent-sept" }, + "11": {"datetime_param": "1717, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "mille-sept-cent-dix-sept" }, + "12": {"datetime_param": "1988, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "mille-neuf-cent-quatre-vingt-huit"}, + "13": {"datetime_param": "2009, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "deux-mille-neuf"}, + "14": {"datetime_param": "2018, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "deux-mille-dix-huit"}, + "15": {"datetime_param": "2021, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "deux-mille-vingt-et-un"}, + "16": {"datetime_param": "2030, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "deux-mille-trente"}, + "17": {"datetime_param": "2100, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "deux-mille-cent" }, + "18": {"datetime_param": "1000, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "mille" }, + "19": {"datetime_param": "2000, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "deux-mille" }, + "20": {"datetime_param": "3120, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "trois-mille-cent-vingt avant Jésus Christ" }, + "21": {"datetime_param": "3241, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "trois-mille-deux-cent-quarante-et-un avant Jésus Christ" }, + "22": {"datetime_param": "5200, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "cinq-mille-deux-cents" }, + "23": {"datetime_param": "1100, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "mille-cent" }, + "24": {"datetime_param": "2100, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "deux-mille-cent" } + }, + "test_nice_date": { + "1": {"datetime_param": "2017, 1, 31, 0, 2, 3", "now": "None", "assertEqual": "mardi trente-et-un janvier deux-mille-dix-sept"}, + "2": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2017, 1, 1, 0, 2, 3", "assertEqual": "dimanche quatre février deux-mille-dix-huit"}, + "3": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 1, 1, 0, 2, 3", "assertEqual": "dimanche quatre février"}, + "4": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 1, 0, 2, 3", "assertEqual": "dimanche quatre"}, + "5": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 3, 0, 2, 3", "assertEqual": "demain"}, + "6": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 4, 0, 2, 3", "assertEqual": "aujourd'hui"}, + "7": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 5, 0, 2, 3", "assertEqual": "hier"}, + "8": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 6, 0, 2, 3", "assertEqual": "dimanche quatre février"}, + "9": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2019, 2, 6, 0, 2, 3", "assertEqual": "dimanche quatre février deux-mille-dix-huit"} + }, + "test_nice_date_time": { + "1": {"datetime_param": "2017, 1, 31, 13, 22, 3", "now": "None", "use_24hour": "False", "use_ampm": "True", "assertEqual": "mardi trente-et-un janvier deux-mille-dix-sept une heure vingt-deux de l'après-midi"}, + "2": {"datetime_param": "2017, 1, 31, 13, 22, 3", "now": "None", "use_24hour": "True", "use_ampm": "False", "assertEqual": "mardi trente-et-un janvier deux-mille-dix-sept treize heures vingt-deux"} + } +} diff --git a/numbers/bin/test/config/it-it/date_time_test.json b/numbers/bin/test/config/it-it/date_time_test.json new file mode 100644 index 0000000..2d8d3a5 --- /dev/null +++ b/numbers/bin/test/config/it-it/date_time_test.json @@ -0,0 +1,42 @@ +{ "test_nice_year": { + "1": {"datetime_param": "1, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "uno d.c." }, + "2": {"datetime_param": "10, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "dieci d.c." }, + "3": {"datetime_param": "92, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "novantadue d.c." }, + "4": {"datetime_param": "100, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "cento" }, + "5": {"datetime_param": "811, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "ottocento undici" }, + "6": {"datetime_param": "454, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "quattrocento cinquantaquattro" }, + "7": {"datetime_param": "1005, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "mille e cinque" }, + "8": {"datetime_param": "1012, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "mille e dodici" }, + "9": {"datetime_param": "1046, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "mille e quarantasei" }, + "10": {"datetime_param": "1807, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "mille ottocento sette" }, + "11": {"datetime_param": "1700, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "mille settecento" }, + "12": {"datetime_param": "1717, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "mille settecento diciassette" }, + "13": {"datetime_param": "1988, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "mille novecento ottantotto"}, + "14": {"datetime_param": "2009, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "duemila nove"}, + "15": {"datetime_param": "2018, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "duemila diciotto"}, + "16": {"datetime_param": "2021, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "duemila ventuno"}, + "17": {"datetime_param": "2030, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "duemila trenta"}, + "18": {"datetime_param": "2100, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "duemila cento" }, + "19": {"datetime_param": "1000, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "mille" }, + "20": {"datetime_param": "2000, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "duemila" }, + "21": {"datetime_param": "3120, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "tremila cento venti d.c." }, + "22": {"datetime_param": "3241, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "tremila duecento quarantuno d.c." }, + "23": {"datetime_param": "5200, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "cinquemila duecento" }, + "24": {"datetime_param": "1100, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "mille cento" } + }, + "test_nice_date": { + "1": {"datetime_param": "2017, 1, 31, 0, 2, 3", "now": "None", "assertEqual": "martedì, trentuno gennaio, duemila diciassette"}, + "2": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2017, 1, 1, 0, 2, 3", "assertEqual": "domenica, quattro febbraio, duemila diciotto"}, + "3": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 1, 1, 0, 2, 3", "assertEqual": "domenica, quattro febbraio"}, + "4": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 1, 0, 2, 3", "assertEqual": "domenica, quattro"}, + "5": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 3, 0, 2, 3", "assertEqual": "domani"}, + "6": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 4, 0, 2, 3", "assertEqual": "oggi"}, + "7": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 5, 0, 2, 3", "assertEqual": "ieri"}, + "8": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 6, 0, 2, 3", "assertEqual": "domenica, quattro febbraio"}, + "9": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2019, 2, 6, 0, 2, 3", "assertEqual": "domenica, quattro febbraio, duemila diciotto"} + }, + "test_nice_date_time": { + "1": {"datetime_param": "2017, 1, 31, 13, 22, 3", "now": "None", "use_24hour": "False", "use_ampm": "True", "assertEqual": "martedì, trentuno gennaio, duemila diciassette alle una e ventidue del pomeriggio"}, + "2": {"datetime_param": "2017, 1, 31, 13, 22, 3", "now": "None", "use_24hour": "True", "use_ampm": "False", "assertEqual": "martedì, trentuno gennaio, duemila diciassette alle tredici e ventidue"} + } +} diff --git a/numbers/bin/test/org/dicio/numbers/NumberParserFormatterBuilderTest.class b/numbers/bin/test/org/dicio/numbers/NumberParserFormatterBuilderTest.class new file mode 100644 index 0000000..c2ed74f Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/NumberParserFormatterBuilderTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/formatter/datetime/FormatStringCollectionTest$1.class b/numbers/bin/test/org/dicio/numbers/formatter/datetime/FormatStringCollectionTest$1.class new file mode 100644 index 0000000..25b8f67 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/formatter/datetime/FormatStringCollectionTest$1.class differ diff --git a/numbers/bin/test/org/dicio/numbers/formatter/datetime/FormatStringCollectionTest.class b/numbers/bin/test/org/dicio/numbers/formatter/datetime/FormatStringCollectionTest.class new file mode 100644 index 0000000..0e7cb8c Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/formatter/datetime/FormatStringCollectionTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/formatter/datetime/FormatStringTest$1.class b/numbers/bin/test/org/dicio/numbers/formatter/datetime/FormatStringTest$1.class new file mode 100644 index 0000000..440eb5d Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/formatter/datetime/FormatStringTest$1.class differ diff --git a/numbers/bin/test/org/dicio/numbers/formatter/datetime/FormatStringTest.class b/numbers/bin/test/org/dicio/numbers/formatter/datetime/FormatStringTest.class new file mode 100644 index 0000000..afce9b2 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/formatter/datetime/FormatStringTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/formatter/datetime/NiceYearSubstitutionTableBuilderTest.class b/numbers/bin/test/org/dicio/numbers/formatter/datetime/NiceYearSubstitutionTableBuilderTest.class new file mode 100644 index 0000000..a0dd64c Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/formatter/datetime/NiceYearSubstitutionTableBuilderTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/en/DateTimeConfigTest.class b/numbers/bin/test/org/dicio/numbers/lang/en/DateTimeConfigTest.class new file mode 100644 index 0000000..a2134de Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/en/DateTimeConfigTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/en/DateTimeTest.class b/numbers/bin/test/org/dicio/numbers/lang/en/DateTimeTest.class new file mode 100644 index 0000000..2b37896 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/en/DateTimeTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/en/DurationExtractorUtilsTest.class b/numbers/bin/test/org/dicio/numbers/lang/en/DurationExtractorUtilsTest.class new file mode 100644 index 0000000..b6fa0f9 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/en/DurationExtractorUtilsTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/en/ExtractDurationTest.class b/numbers/bin/test/org/dicio/numbers/lang/en/ExtractDurationTest.class new file mode 100644 index 0000000..7d75738 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/en/ExtractDurationTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/en/ExtractNumbersTest$NumberFunction.class b/numbers/bin/test/org/dicio/numbers/lang/en/ExtractNumbersTest$NumberFunction.class new file mode 100644 index 0000000..08f3e92 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/en/ExtractNumbersTest$NumberFunction.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/en/ExtractNumbersTest.class b/numbers/bin/test/org/dicio/numbers/lang/en/ExtractNumbersTest.class new file mode 100644 index 0000000..e9ac112 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/en/ExtractNumbersTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/en/NiceDurationTest.class b/numbers/bin/test/org/dicio/numbers/lang/en/NiceDurationTest.class new file mode 100644 index 0000000..30caa6d Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/en/NiceDurationTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/en/NiceNumberTest.class b/numbers/bin/test/org/dicio/numbers/lang/en/NiceNumberTest.class new file mode 100644 index 0000000..3463230 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/en/NiceNumberTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/en/NiceTimeTest.class b/numbers/bin/test/org/dicio/numbers/lang/en/NiceTimeTest.class new file mode 100644 index 0000000..a3f03a0 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/en/NiceTimeTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/en/NumberExtractorUtilsTest.class b/numbers/bin/test/org/dicio/numbers/lang/en/NumberExtractorUtilsTest.class new file mode 100644 index 0000000..95bf9b9 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/en/NumberExtractorUtilsTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/en/PronounceNumberTest.class b/numbers/bin/test/org/dicio/numbers/lang/en/PronounceNumberTest.class new file mode 100644 index 0000000..69a7836 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/en/PronounceNumberTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/fr/DateTimeTest.class b/numbers/bin/test/org/dicio/numbers/lang/fr/DateTimeTest.class new file mode 100644 index 0000000..7d9e879 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/fr/DateTimeTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/fr/FrenchFormatter.class b/numbers/bin/test/org/dicio/numbers/lang/fr/FrenchFormatter.class new file mode 100644 index 0000000..7136292 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/fr/FrenchFormatter.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/it/DateTimeConfigTest.class b/numbers/bin/test/org/dicio/numbers/lang/it/DateTimeConfigTest.class new file mode 100644 index 0000000..d87ff37 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/it/DateTimeConfigTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/it/DateTimeTest.class b/numbers/bin/test/org/dicio/numbers/lang/it/DateTimeTest.class new file mode 100644 index 0000000..4434bd0 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/it/DateTimeTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/it/DurationExtractorUtilsTest.class b/numbers/bin/test/org/dicio/numbers/lang/it/DurationExtractorUtilsTest.class new file mode 100644 index 0000000..f183d3c Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/it/DurationExtractorUtilsTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/it/ExtractDurationTest.class b/numbers/bin/test/org/dicio/numbers/lang/it/ExtractDurationTest.class new file mode 100644 index 0000000..0a0cc6c Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/it/ExtractDurationTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/it/ExtractNumbersTest$NumberFunction.class b/numbers/bin/test/org/dicio/numbers/lang/it/ExtractNumbersTest$NumberFunction.class new file mode 100644 index 0000000..3e8e5cb Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/it/ExtractNumbersTest$NumberFunction.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/it/ExtractNumbersTest.class b/numbers/bin/test/org/dicio/numbers/lang/it/ExtractNumbersTest.class new file mode 100644 index 0000000..4d3064b Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/it/ExtractNumbersTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/it/NiceDurationTest.class b/numbers/bin/test/org/dicio/numbers/lang/it/NiceDurationTest.class new file mode 100644 index 0000000..d674bfd Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/it/NiceDurationTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/it/NiceNumberTest.class b/numbers/bin/test/org/dicio/numbers/lang/it/NiceNumberTest.class new file mode 100644 index 0000000..2a60e84 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/it/NiceNumberTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/it/NiceTimeTest.class b/numbers/bin/test/org/dicio/numbers/lang/it/NiceTimeTest.class new file mode 100644 index 0000000..9ac4156 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/it/NiceTimeTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/it/NumberExtractorUtilsTest.class b/numbers/bin/test/org/dicio/numbers/lang/it/NumberExtractorUtilsTest.class new file mode 100644 index 0000000..31002f9 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/it/NumberExtractorUtilsTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/lang/it/PronounceNumberTest.class b/numbers/bin/test/org/dicio/numbers/lang/it/PronounceNumberTest.class new file mode 100644 index 0000000..0241d98 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/lang/it/PronounceNumberTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/parser/lexer/DurationTokenTest.class b/numbers/bin/test/org/dicio/numbers/parser/lexer/DurationTokenTest.class new file mode 100644 index 0000000..7e3364a Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/parser/lexer/DurationTokenTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/parser/lexer/TokenStreamTest.class b/numbers/bin/test/org/dicio/numbers/parser/lexer/TokenStreamTest.class new file mode 100644 index 0000000..657c59f Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/parser/lexer/TokenStreamTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/parser/lexer/TokenizerTest.class b/numbers/bin/test/org/dicio/numbers/parser/lexer/TokenizerTest.class new file mode 100644 index 0000000..2e92e8a Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/parser/lexer/TokenizerTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/test/DateTimeConfigTestBase.class b/numbers/bin/test/org/dicio/numbers/test/DateTimeConfigTestBase.class new file mode 100644 index 0000000..951c319 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/test/DateTimeConfigTestBase.class differ diff --git a/numbers/bin/test/org/dicio/numbers/test/DateTimeTestBase.class b/numbers/bin/test/org/dicio/numbers/test/DateTimeTestBase.class new file mode 100644 index 0000000..2f46623 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/test/DateTimeTestBase.class differ diff --git a/numbers/bin/test/org/dicio/numbers/test/DurationExtractorUtilsTestBase.class b/numbers/bin/test/org/dicio/numbers/test/DurationExtractorUtilsTestBase.class new file mode 100644 index 0000000..f5668f1 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/test/DurationExtractorUtilsTestBase.class differ diff --git a/numbers/bin/test/org/dicio/numbers/test/NiceDurationTestBase.class b/numbers/bin/test/org/dicio/numbers/test/NiceDurationTestBase.class new file mode 100644 index 0000000..864fe2c Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/test/NiceDurationTestBase.class differ diff --git a/numbers/bin/test/org/dicio/numbers/test/NumberExtractorUtilsTestBase.class b/numbers/bin/test/org/dicio/numbers/test/NumberExtractorUtilsTestBase.class new file mode 100644 index 0000000..207503d Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/test/NumberExtractorUtilsTestBase.class differ diff --git a/numbers/bin/test/org/dicio/numbers/test/TestUtils.class b/numbers/bin/test/org/dicio/numbers/test/TestUtils.class new file mode 100644 index 0000000..87dfb75 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/test/TestUtils.class differ diff --git a/numbers/bin/test/org/dicio/numbers/test/WithTokenizerTestBase.class b/numbers/bin/test/org/dicio/numbers/test/WithTokenizerTestBase.class new file mode 100644 index 0000000..6205e37 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/test/WithTokenizerTestBase.class differ diff --git a/numbers/bin/test/org/dicio/numbers/util/MixedFractionTest.class b/numbers/bin/test/org/dicio/numbers/util/MixedFractionTest.class new file mode 100644 index 0000000..430736d Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/util/MixedFractionTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/util/NumberTest.class b/numbers/bin/test/org/dicio/numbers/util/NumberTest.class new file mode 100644 index 0000000..daae59c Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/util/NumberTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/util/ResourceOpenerTest.class b/numbers/bin/test/org/dicio/numbers/util/ResourceOpenerTest.class new file mode 100644 index 0000000..91c35ba Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/util/ResourceOpenerTest.class differ diff --git a/numbers/bin/test/org/dicio/numbers/util/UtilsTest.class b/numbers/bin/test/org/dicio/numbers/util/UtilsTest.class new file mode 100644 index 0000000..94ab6f6 Binary files /dev/null and b/numbers/bin/test/org/dicio/numbers/util/UtilsTest.class differ diff --git a/numbers/src/test/java/org/dicio/numbers/lang/fr/DateTimeTest.java b/numbers/src/test/java/org/dicio/numbers/lang/fr/DateTimeTest.java new file mode 100644 index 0000000..cacc6a3 --- /dev/null +++ b/numbers/src/test/java/org/dicio/numbers/lang/fr/DateTimeTest.java @@ -0,0 +1,53 @@ +package org.dicio.numbers.lang.fr; + +import org.dicio.numbers.formatter.NumberFormatter; +import org.dicio.numbers.test.DateTimeTestBase; +import org.junit.Test; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +import static org.junit.Assert.assertEquals; + +public class DateTimeTest extends DateTimeTestBase { + + @Override + public String configFolder() { + return "config/fr-fr"; + } + + @Override + public NumberFormatter buildNumberFormatter() { + return new FrenchFormatter(); + } + + @Test + public void testNiceDate() { + // just check that the NumberParserFormatter functions do their job + assertEquals("mercredi vingt-huit avril deux mille un", + pf.niceDate(LocalDate.of(2021, 4, 28)).get()); + assertEquals("dimanche treize août", + pf.niceDate(LocalDate.of(-84, 8, 13)).now(LocalDate.of(-84, 8, 23)).get()); + } + + /* Please note that there is two way of saying years and centuries before 2000. For exemple: + 1. mille (thousand) neuf (nine) cent (hundred) quatre-vingt (90) quatre (4) + 2. dix-neuf (nineteen) cent (hundred) quatre-vingt (90) quatre (4). (Slightly old-fashioned but common for years before 1900) + */ + + @Test + public void testNiceYear() { + // just check that the NumberParserFormatter functions do their job + + + assertEquals("mille neuf cent quatre-vingt quatre", pf.niceYear(LocalDate.of(1984, 4, 28)).get()); + assertEquals("mille huit cent dix av. J-C", pf.niceYear(LocalDate.of(-810, 8, 13)).get()); + } + + @Test + public void testNiceDateTime() { + // just check that the NumberParserFormatter functions do their job + assertEquals("mercredi douze septembre mille sept cent soixante quatre à midi", pf.niceDateTime(LocalDateTime.of(1764, 9, 12, 12, 0)).get()); + assertEquals("jeudi trois novembre trois cent vingt huit av. J-C à cinq heures sept", pf.niceDateTime(LocalDateTime.of(-328, 11, 3, 5, 7)).get()); + } +} diff --git a/numbers/src/test/java/org/dicio/numbers/lang/fr/FrenchFormatter.java b/numbers/src/test/java/org/dicio/numbers/lang/fr/FrenchFormatter.java new file mode 100644 index 0000000..bc5b8eb --- /dev/null +++ b/numbers/src/test/java/org/dicio/numbers/lang/fr/FrenchFormatter.java @@ -0,0 +1,236 @@ +package org.dicio.numbers.lang.fr; + +import java.time.LocalTime; + +import org.dicio.numbers.formatter.NumberFormatter; +import org.dicio.numbers.util.MixedFraction; + +public class FrenchFormatter extends NumberFormatter { + + protected FrenchFormatter(String configFolder) { + super("config/fr-fr"); + } + + // Copied from EnglishFormatter with no changes except for strings. + @Override + public String niceNumber(MixedFraction mixedFraction, boolean speech) { + if (speech) { + final String sign = mixedFraction.negative ? "moins " : ""; + if (mixedFraction.numerator == 0) { + return sign + pronounceNumber(mixedFraction.whole, 0, true, false, false); + } + + String denominatorString; + if (mixedFraction.denominator == 2) { + denominatorString = "moitié"; + } else if (mixedFraction.denominator == 4) { + denominatorString = "quart"; + } else { + // use ordinal: only half and quarter are exceptions + denominatorString + = pronounceNumber(mixedFraction.denominator, 0, true, false, true); + } + + final String numeratorString; + if (mixedFraction.numerator == 1) { + numeratorString = "un"; + } else { + numeratorString = pronounceNumber(mixedFraction.numerator, 0, true, false, false); + denominatorString += "s"; + } + + if (mixedFraction.whole == 0) { + return sign + numeratorString + " " + denominatorString; + } else { + return sign + pronounceNumber(mixedFraction.whole, 0, true, false, false) + + " et " + numeratorString + " " + denominatorString; + } + + } else { + return niceNumberNotSpeech(mixedFraction); + } return null; + } + + // Copied from EnglishFormatter with no changes except for strings. + @Override + public String pronounceNumber(double number, int places, boolean shortScale, boolean scientific, boolean ordinal) { + if (number == Double.POSITIVE_INFINITY) { + return "infini"; + } else if (number == Double.NEGATIVE_INFINITY) { + return "moins l'infini"; + } else if (Double.isNaN(number)) { + return "non défini"; + } + + // also using scientific mode if the number is too big to be spoken fully. Checking against + // the biggest double smaller than 10^21 = 1000 * 10^18, which is the biggest pronounceable + // number, since e.g. 999.99 * 10^18 can be pronounced correctly. + if (scientific || Math.abs(number) > 999999999999999934463d) { + final String scientificFormatted = String.format(Locale.ENGLISH, "%E", number); + final String[] parts = scientificFormatted.split("E", 2); + final double power = Integer.parseInt(parts[1]); + + if (power != 0) { + // This handles negatives of powers separately from the normal + // handling since each call disables the scientific flag + final double n = Double.parseDouble(parts[0]); + return String.format("%s%s fois dix puissance %s%s", + n < 0 ? "moins " : "", + pronounceNumber(Math.abs(n), places, shortScale, false, false), + power < 0 ? "moins " : "", + pronounceNumber(Math.abs(power), places, shortScale, false, false)); + } + } + + final StringBuilder result = new StringBuilder(); + if (number < 0) { + number = -number; + // from here on number is always positive + if (places != 0 || number >= 0.5) { + // do not add minus if number will be rounded to 0 + //result.append(scientific ? "negative " : "minus "); + + // The negative/minus disctinction dosen't exist in french in this context. + result.append("moins"); + } + } + + final int realPlaces = Utils.decimalPlacesNoFinalZeros(number, places); + final boolean numberIsWhole = realPlaces == 0; + // if no decimal places to be printed, numberLong should be the rounded number + final long numberLong = (long) number + (number % 1 >= 0.5 && numberIsWhole ? 1 : 0); + + if (!ordinal && numberIsWhole && numberLong > 1000 && numberLong < 2000) { + // deal with 4 digits that can be said like a date, i.e. 1972 => nineteen seventy two + + result.append(NUMBER_NAMES.get(numberLong / 100)); + result.append(" "); + if (numberLong % 100 == 0) { + // 1900 => nineteen hundred + result.append(NUMBER_NAMES.get(100L)); + } else if (numberLong % 100 < 10 && numberLong % 100 != 0) { + // 1906 => nineteen oh six + result.append("virgule "); + result.append(NUMBER_NAMES.get(numberLong % 10)); + } else if (numberLong % 10 == 0 || numberLong % 100 < 20) { + // 1960 => nineteen sixty; 1911 => nineteen eleven + result.append(NUMBER_NAMES.get(numberLong % 100)); + } else { + // 1961 => nineteen sixty one + result.append(NUMBER_NAMES.get(numberLong % 100 - numberLong % 10)); + result.append(" "); + result.append(NUMBER_NAMES.get(numberLong % 10)); + } + + return result.toString(); + } + + if (!ordinal && NUMBER_NAMES.containsKey(numberLong)) { + if (number > 90) { + result.append("one "); + } + result.append(NUMBER_NAMES.get(numberLong)); + + } else if (shortScale) { + boolean ordi = ordinal && numberIsWhole; // not ordinal if not whole + final List groups = Utils.splitByModulus(numberLong, 1000); + final List groupNames = new ArrayList<>(); + for (int i = 0; i < groups.size(); ++i) { + final long z = groups.get(i); + if (z == 0) { + continue; // skip 000 groups + } + String groupName = subThousand(z, i == 0 && ordi); + + if (i != 0) { + final long magnitude = Utils.longPow(1000, i); + if (ordi) { + // ordi can be true only for the first group (i.e. at the end of the number) + if (z == 1) { + // remove "one" from first group (e.g. "one billion, millionth") + groupName = ORDINAL_NAMES_SHORT_SCALE.get(magnitude); + } else { + groupName += " " + ORDINAL_NAMES_SHORT_SCALE.get(magnitude); + } + } else { + groupName += " " + NUMBER_NAMES_SHORT_SCALE.get(magnitude); + } + } + + groupNames.add(groupName); + ordi = false; + } + + appendSplitGroups(result, groupNames); + + } else { + boolean ordi = ordinal && numberIsWhole; // not ordinal if not whole + final List groups = Utils.splitByModulus(numberLong, 1000000); + final List groupNames = new ArrayList<>(); + for (int i = 0; i < groups.size(); ++i) { + final long z = groups.get(i); + if (z == 0) { + continue; // skip 000000 groups + } + + String groupName; + if (z < 1000) { + groupName = subThousand(z, i == 0 && ordi); + } else { + groupName = subThousand(z / 1000, false) + " thousand"; + if (z % 1000 != 0) { + groupName += (i == 0 ? ", " : " ") + subThousand(z % 1000, i == 0 && ordi); + } else if (i == 0 && ordi) { + if (z / 1000 == 1) { + groupName = "thousandth"; // remove "one" from "one thousandth" + } else { + groupName += "th"; + } + } + } + + if (i != 0) { + final long magnitude = Utils.longPow(1000000, i); + if (ordi) { + // ordi can be true only for the first group (i.e. at the end of the number) + if (z == 1) { + // remove "one" from first group (e.g. "one billion, millionth") + groupName = ORDINAL_NAMES_LONG_SCALE.get(magnitude); + } else { + groupName += " " + ORDINAL_NAMES_LONG_SCALE.get(magnitude); + } + } else { + groupName += " " + NUMBER_NAMES_LONG_SCALE.get(magnitude); + } + } + + groupNames.add(groupName); + ordi = false; + } + + appendSplitGroups(result, groupNames); + } + + if (realPlaces > 0) { + if (number < 1.0 && (result.length() == 0 || "minus ".contentEquals(result))) { + result.append("zero"); // nothing was written before + } + result.append(" point"); + + final String fractionalPart = String.format("%." + realPlaces + "f", number % 1); + for (int i = 2; i < fractionalPart.length(); ++i) { + result.append(" "); + result.append(NUMBER_NAMES.get((long) (fractionalPart.charAt(i) - '0'))); + } + } + + return result.toString(); return null; + } + + @Override + public String niceTime(LocalTime time, boolean speech, boolean use24Hour, boolean showAmPm) { + // TODO Auto-generated method stub + return null; + } + +}