forked from toolshed/abra
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.0 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())
 |