### ----------------------------------------------------
### -- Lingua::NumericWordForms
### -- Licenses: Artistic-2.0
### -- Authors: Anton Antonov
### -- File: t/Worded-number-specs-parsing-Armenian.rakutest
### ----------------------------------------------------
use Test;

# use lib <. ./lib>;

use Lingua::NumericWordForms::Roles::Armenian::WordedNumberSpec;
use Lingua::NumericWordForms::Actions::Armenian::WordedNumberSpec;

grammar ParseObj
        does Lingua::NumericWordForms::Roles::Armenian::WordedNumberSpec {
    rule TOP { <numeric-word-form>  }
};

sub parse-func(Str:D $spec) {
    ParseObj.parse(
            $spec.lc,
            rule => 'numeric-word-form',
            actions => Lingua::NumericWordForms::Actions::Armenian::WordedNumberSpec.new).made,
}

plan 43;

## 1
is parse-func('զրո'), 0,
        'զրո';

## 2
is parse-func('երեք'), 3,
        'երեք';

## 3
is parse-func('չորս'), 4,
        'չորս';

## 4
is parse-func('ինը'), 9,
        'ինը';

## 5
is parse-func('տասն-ութ'), 18,
        'տասն-ութ';

## 6
is parse-func('տասն-ինը'), 19,
        'տասն-ինը';

## 7
is parse-func('քսան-մեկ'), 21,
        'քսան-մեկ';

## 8
is parse-func('քսան-ինը'), 29,
        'քսան-ինը';

## 9
is parse-func('հիսուն-վեց'), 56,
        'հիսուն-վեց';

## 10
is parse-func('յոթանասուն-վեց'), 76,
        'յոթանասուն-վեց';

## 11
is parse-func('ութսուն-հինգ'), 85,
        'ութսուն-հինգ';

## 12
is parse-func('իննասուն-յոթ'), 97,
        'իննասուն-յոթ';

## 13
is parse-func('մեկ-հարյուր վաթսուն-երեք'), 163,
        'մեկ-հարյուր վաթսուն-երեք';

## 14
is parse-func('մեկ-հարյուր վաթսուն-ութ'), 168,
        'մեկ-հարյուր վաթսուն-ութ';

## 15
is parse-func('երկու-հարյուր չորս'), 204,
        'երկու-հարյուր չորս';

## 16
is parse-func('երկու-հարյուր վաթսուն'), 260,
        'երկու-հարյուր վաթսուն';

## 17
is parse-func('չորս-հարյուր քսան-յոթ'), 427,
        'չորս-հարյուր քսան-յոթ';

## 18
is parse-func('ութ-հարյուր չորս'), 804,
        'ութ-հարյուր չորս';

## 19
is parse-func('երկու հազար յոթանասուն-երկու'), 2072,
        'երկու հազար յոթանասուն-երկու';

## 20
is parse-func('երկու հազար երկու-հարյուր քսան-ութ'), 2228,
        'երկու հազար երկու-հարյուր քսան-ութ';

## 21
is parse-func('հինգ հազար հինգ-հարյուր քսան-ութ'), 5528,
        'հինգ հազար հինգ-հարյուր քսան-ութ';

## 22
is parse-func('հինգ հազար ութ-հարյուր հիսուն'), 5850,
        'հինգ հազար ութ-հարյուր հիսուն';

## 23
is parse-func('վեց հազար հինգ-հարյուր ութ'), 6508,
        'վեց հազար հինգ-հարյուր ութ';

## 24
is parse-func('յոթ հազար չորս-հարյուր տասն-երկու'), 7412,
        'յոթ հազար չորս-հարյուր տասն-երկու';

## 25
is parse-func('երկու-հարյուր քառասուն-հինգ հազար երեք-հարյուր քսան-չորս'), 245324,
        'երկու-հարյուր քառասուն-հինգ հազար երեք-հարյուր քսան-չորս';

## 26
is parse-func('վեց-հարյուր տասն-հինգ հազար երկու-հարյուր իննասուն-ութ'), 615298,
        'վեց-հարյուր տասն-հինգ հազար երկու-հարյուր իննասուն-ութ';

## 27
is parse-func('յոթ-հարյուր երեսուն-մեկ հազար մեկ-հարյուր վեց'), 731106,
        'յոթ-հարյուր երեսուն-մեկ հազար մեկ-հարյուր վեց';

## 28
is parse-func('ութ-հարյուր քսան-երեք հազար ութ-հարյուր քսան-չորս'), 823824,
        'ութ-հարյուր քսան-երեք հազար ութ-հարյուր քսան-չորս';

## 29
is parse-func('ութ-հարյուր իննասուն-մեկ հազար ութ-հարյուր յոթանասուն-մեկ'), 891871,
        'ութ-հարյուր իննասուն-մեկ հազար ութ-հարյուր յոթանասուն-մեկ';

## 30
is parse-func('ինը-հարյուր քառասուն-մեկ հազար հինգ-հարյուր վեց'), 941506,
        'ինը-հարյուր քառասուն-մեկ հազար հինգ-հարյուր վեց';

## 31
is parse-func('հիսուն-հինգ միլիօն երեք-հարյուր իննասուն հազար հինգ-հարյուր քսան-յոթ'), 55390527,
        'հիսուն-հինգ միլիօն երեք-հարյուր իննասուն հազար հինգ-հարյուր քսան-յոթ';

## 32
is parse-func('յոթանասուն-վեց միլիօն յոթ-հարյուր քսան-չորս հազար չորս-հարյուր երեսուն-վեց'), 76724436,
        'յոթանասուն-վեց միլիօն յոթ-հարյուր քսան-չորս հազար չորս-հարյուր երեսուն-վեց';

## 33
is parse-func('երկու-հարյուր քառասուն-յոթ միլիօն հինգ-հարյուր յոթ հազար տասն-ութ'), 247507018,
        'երկու-հարյուր քառասուն-յոթ միլիօն հինգ-հարյուր յոթ հազար տասն-ութ';

## 34
is parse-func('հինգ-հարյուր տասն-վեց միլիօն յոթ-հարյուր հիսուն-երեք հազար երեք-հարյուր յոթանասուն-ութ'), 516753378,
        'հինգ-հարյուր տասն-վեց միլիօն յոթ-հարյուր հիսուն-երեք հազար երեք-հարյուր յոթանասուն-ութ';

## 35
is parse-func('ութ-հարյուր քառասուն-երկու միլիօն յոթ-հարյուր չորս հազար յոթ-հարյուր ութսուն-երեք'), 842704783,
        'ութ-հարյուր քառասուն-երկու միլիօն յոթ-հարյուր չորս հազար յոթ-հարյուր ութսուն-երեք';

## 36
is parse-func('ինը-հարյուր ութսուն-ութ միլիօն ինը-հարյուր վաթսուն-մեկ հազար երեք-հարյուր քսան-չորս'), 988961324,
        'ինը-հարյուր ութսուն-ութ միլիօն ինը-հարյուր վաթսուն-մեկ հազար երեք-հարյուր քսան-չորս';

## 37
is
        parse-func('հինգ-հարյուր ութսուն-յոթ միլիար յոթ-հարյուր քսան-յոթ միլիօն երկու-հարյուր երեսուն հազար մեկ-հարյուր իննասուն-ինը'),
        587727230199,
        'հինգ-հարյուր ութսուն-յոթ միլիար յոթ-հարյուր քսան-յոթ միլիօն երկու-հարյուր երեսուն հազար մեկ-հարյուր իննասուն-ինը';

## 38
is
        parse-func('վեց-հարյուր քսան-յոթ միլիար հինգ-հարյուր ութսուն միլիօն ինը-հարյուր երեսուն-հինգ հազար յոթանասուն-երկու'),
        627580935072,
        'վեց-հարյուր քսան-յոթ միլիար հինգ-հարյուր ութսուն միլիօն ինը-հարյուր երեսուն-հինգ հազար յոթանասուն-երկու';

## 39
is
        parse-func('յոթ-հարյուր ութսուն-չորս միլիար վեց-հարյուր երեսուն միլիօն յոթ-հարյուր երեսուն-ութ հազար մեկ-հարյուր քսան'),
        784630738120,
        'յոթ-հարյուր ութսուն-չորս միլիար վեց-հարյուր երեսուն միլիօն յոթ-հարյուր երեսուն-ութ հազար մեկ-հարյուր քսան';

## 40
is
        parse-func('ութ-հարյուր չորս միլիար երեք-հարյուր իննասուն-յոթ միլիօն չորս-հարյուր տասն-վեց հազար յոթ-հարյուր երեսուն-վեց'),
        804397416736,
        'ութ-հարյուր չորս միլիար երեք-հարյուր իննասուն-յոթ միլիօն չորս-հարյուր տասն-վեց հազար յոթ-հարյուր երեսուն-վեց';

## 41
is
        parse-func('ութ-հարյուր վաթսուն-յոթ միլիար հինգ-հարյուր վաթսուն-մեկ միլիօն երեք-հարյուր ութսուն հազար չորս-հարյուր տասն-չորս'),
        867561380414,
        'ութ-հարյուր վաթսուն-յոթ միլիար հինգ-հարյուր վաթսուն-մեկ միլիօն երեք-հարյուր ութսուն հազար չորս-հարյուր տասն-չորս';

## 42
is
        parse-func('ինը-հարյուր ութսուն միլիար յոթ-հարյուր երեսուն-վեց միլիօն մեկ-հարյուր երեսուն-ութ հազար ութ-հարյուր երեսուն-ինը'),
        980736138839,
        'ինը-հարյուր ութսուն միլիար յոթ-հարյուր երեսուն-վեց միլիօն մեկ-հարյուր երեսուն-ութ հազար ութ-հարյուր երեսուն-ինը';

## 43
is parse-func('երկու հազար չորս հարյուր յոթանասուն երեք'), 2473,
        'երկու հազար չորս հարյուր յոթանասուն երեք';

done-testing;


