packages feed

numerals-0.4: src-test/Text/Numeral/Language/BG/TestData.hs

{-# LANGUAGE NoImplicitPrelude   #-}
{-# LANGUAGE OverloadedStrings   #-}
{-# LANGUAGE PackageImports      #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE UnicodeSyntax       #-}

{-|
[@ISO639-1@]        bg

[@ISO639-2@]        bul

[@ISO639-3@]        bul

[@Native name@]     български език

[@English name@]    Bulgarian
-}

module Text.Numeral.Language.BG.TestData (cardinals) where


--------------------------------------------------------------------------------
-- Imports
--------------------------------------------------------------------------------

import "base" Prelude     ( Integral, (+) )
import "base-unicode-symbols" Prelude.Unicode ( (⋅) )
import "numerals" Text.Numeral.Grammar
import "numerals" Text.Numeral.Grammar.Reified ( defaultInflection )
import "numerals" Text.Numeral.Misc ( dec )
import "this" Text.Numeral.Test ( TestData )


--------------------------------------------------------------------------------
-- Test data
--------------------------------------------------------------------------------

{-
Sources:
  http://www.languagesandnumbers.com/how-to-count-in-bulgarian/en/bul/
  http://en.wikipedia.org/wiki/Bulgarian_grammar#Numbers
  http://bg.wikipedia.org/wiki/Имена_на_числата
-}

cardinals ∷ (Integral i) ⇒ TestData i
cardinals =
  [ ( "neuter"
    , neuter defaultInflection
    , [ (-3, "минус три")
      , (0, "нула")
      , (1, "едно")
      , (2, "две")
      , (3, "три")
      , (4, "четири")
      , (5, "пет")
      , (6, "шест")
      , (7, "седем")
      , (8, "осем")
      , (9, "девет")
      , (10, "десет")
      , (11, "единадесет")
      , (12, "дванадесет")
      , (13, "тринадесет")
      , (14, "четиринадесет")
      , (15, "петнадесет")
      , (16, "шестнадесет")
      , (17, "седемнадесет")
      , (18, "осемнадесет")
      , (19, "деветнадесет")
      , (20, "двадесет")
      , (21, "двадесет и едно")
      , (22, "двадесет и две")
      , (23, "двадесет и три")
      , (24, "двадесет и четири")
      , (25, "двадесет и пет")
      , (26, "двадесет и шест")
      , (27, "двадесет и седем")
      , (28, "двадесет и осем")
      , (29, "двадесет и девет")
      , (30, "тридесет")
      , (31, "тридесет и едно")
      , (32, "тридесет и две")
      , (33, "тридесет и три")
      , (34, "тридесет и четири")
      , (35, "тридесет и пет")
      , (36, "тридесет и шест")
      , (37, "тридесет и седем")
      , (38, "тридесет и осем")
      , (39, "тридесет и девет")
      , (40, "четиридесет")
      , (41, "четиридесет и едно")
      , (42, "четиридесет и две")
      , (43, "четиридесет и три")
      , (44, "четиридесет и четири")
      , (45, "четиридесет и пет")
      , (46, "четиридесет и шест")
      , (47, "четиридесет и седем")
      , (48, "четиридесет и осем")
      , (49, "четиридесет и девет")
      , (50, "петдесет")
      , (51, "петдесет и едно")
      , (52, "петдесет и две")
      , (53, "петдесет и три")
      , (54, "петдесет и четири")
      , (55, "петдесет и пет")
      , (56, "петдесет и шест")
      , (57, "петдесет и седем")
      , (58, "петдесет и осем")
      , (59, "петдесет и девет")
      , (60, "шестдесет")
      , (61, "шестдесет и едно")
      , (62, "шестдесет и две")
      , (63, "шестдесет и три")
      , (64, "шестдесет и четири")
      , (65, "шестдесет и пет")
      , (66, "шестдесет и шест")
      , (67, "шестдесет и седем")
      , (68, "шестдесет и осем")
      , (69, "шестдесет и девет")
      , (70, "седемдесет")
      , (71, "седемдесет и едно")
      , (72, "седемдесет и две")
      , (73, "седемдесет и три")
      , (74, "седемдесет и четири")
      , (75, "седемдесет и пет")
      , (76, "седемдесет и шест")
      , (77, "седемдесет и седем")
      , (78, "седемдесет и осем")
      , (79, "седемдесет и девет")
      , (80, "осемдесет")
      , (81, "осемдесет и едно")
      , (82, "осемдесет и две")
      , (83, "осемдесет и три")
      , (84, "осемдесет и четири")
      , (85, "осемдесет и пет")
      , (86, "осемдесет и шест")
      , (87, "осемдесет и седем")
      , (88, "осемдесет и осем")
      , (89, "осемдесет и девет")
      , (90, "деветдесет")
      , (91, "деветдесет и едно")
      , (92, "деветдесет и две")
      , (93, "деветдесет и три")
      , (94, "деветдесет и четири")
      , (95, "деветдесет и пет")
      , (96, "деветдесет и шест")
      , (97, "деветдесет и седем")
      , (98, "деветдесет и осем")
      , (99, "деветдесет и девет")
      , (100, "сто")
      , (101, "сто и едно")
      , (102, "сто и две")
      , (110, "сто и десет")
      , (115, "сто и петнадесет")
      , (120, "сто и двадесет")
      , (121, "сто двадесет и едно")
      , (130, "сто и тридесет")
      , (133, "сто тридесет и три")
      , (200, "двеста")
      , (202, "двеста и две")
      , (216, "двеста и шестнадесет")
      , (265, "двеста шестдесет и пет")
      , (300, "триста")
      , (400, "четиристотин")
      , (500, "петстотин")
      , (507, "петстотин и седем")
      , (600, "шестстотин")
      , (700, "седемстотин")
      , (800, "осемстотин")
      , (900, "деветстотин")
      , (1000, "хиляда")
      , (1234, "хиляда двеста тридесет и четири")
      , (2000, "две хиляди")
      , (3000, "три хиляди")
      , (5000, "пет хиляди")
      , (6000, "шест хиляди")
      , (9000, "девет хиляди")
      , (16000, "шестнадесет хиляди")
      , (21000, "двадесет и едно хиляди")
      , (22000, "двадесет и две хиляди")
      , (22136, "двадесет и две хиляди сто тридесет и шест")
      , (23000, "двадесет и три хиляди")
      , (28000, "двадесет и осем хиляди")
      , (41000, "четиридесет и едно хиляди")
      , (42000, "четиридесет и две хиляди")
      , (49000, "четиридесет и девет хиляди")
      , (100000, "сто хиляди")
      , (200000, "двеста хиляди")
      , (255383, "двеста петдесет и пет хиляди триста осемдесет и три")
      , (300000, "триста хиляди")
      , (300001, "триста хиляди и едно")
      , (300020, "триста хиляди и двадесет")
      , (300825, "триста хиляди осемстотин двадесет и пет")
      , (dec 6, "един милион")
      , (1300825, "един милион триста хиляди осемстотин двадесет и пет")
      , (1021000, "един милион двадесет и едно хиляди")
      , (1001234, "един милион хиляда двеста тридесет и четири")
      , (1000216, "един милион двеста и шестнадесет")
      , (1000074, "един милион седемдесет и четири")
      , (1000004, "един милион и четири")
      , (2 ⋅ dec 6, "два милиона")
      , (5 ⋅ dec 6, "пет милиона")
      , (dec 9, "един милиард")
      , (2 ⋅ dec 9, "два милиарда")
      , (3 ⋅ dec 12, "три трилиона")
      , (dec 15, "един квадрилион")
      , (15 ⋅ dec 15 + 41, "петнадесет квадрилиона четиридесет и едно")
      , (dec 18, "един квинтилион")
      , (dec 21, "един секстилион")
      , (dec 24, "един септилион")
      , (dec 27, "един октилион")
      , (dec 30, "един нонилион")
      , (dec 33, "един децилион")
      , (dec 36, "един индецилион")
      , (dec 39, "един дуодецилион")
      , (dec 42, "един тридецилион")
      , (dec 45, "един куадродецилион")
      , (900 ⋅ dec 45, "деветстотин куадродецилиона")
      ]
    )
    , ( "feminine"
      , feminine defaultInflection
      , [ (1, "една")
        , (2, "две")
        , (200, "двеста")
        , (202, "двеста и две")
        ]
      )
    , ( "masculine"
      , masculine defaultInflection
      , [ (1, "един")
        , (2, "два")
        , (200, "двеста")
        , (202, "двеста и два")
        ]
      )
  ]