gotext/plurals/genfixture.py
Florian Vogt fe1eafc9a2
Proposal
2022-04-24 23:09:15 +02:00

41 lines
1 KiB
Python

#!/usr/bin/python
#
# Copyright (c) 2016 Jonas Obrist (https://github.com/ojii/gettext.go)
#
# Licensed under the 3-Clause BSD License. See LICENSE in the project root for license information.
import json
from gettext import c2py
PLURAL_FORMS = [
"0",
"n!=1",
"n>1",
"n%10==1&&n%100!=11?0:n!=0?1:2",
"n==1?0:n==2?1:2",
"n==1?0:(n==0||(n%100>0&&n%100<20))?1:2",
"n%10==1&&n%100!=11?0:n%10>=2&&(n%100<10||n%100>=20)?1:2",
"n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2",
"(n==1)?0:(n>=2&&n<=4)?1:2",
"n==1?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2",
"n%100==1?0:n%100==2?1:n%100==3||n%100==4?2:3",
"n==0?0:n==1?1:n==2?2:n%100>=3&&n%100<=10?3:n%100>=11?4:5",
]
NUM = 1000
def gen():
tests = []
for plural_form in PLURAL_FORMS:
expr = c2py(plural_form)
tests.append({
'pluralform': plural_form,
'fixture': [expr(n) for n in range(NUM + 1)]
})
return json.dumps(tests)
if __name__ == "__main__":
print(gen())