From ee628379d7ac7445cbac22abd055d561eb84d805 Mon Sep 17 00:00:00 2001 From: Arnas Udovic Date: Fri, 21 Jun 2024 13:33:03 +0300 Subject: [PATCH] =?UTF-8?q?J.Pabrie=C5=BEa=20noted:=20dual=20only=20on=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 12 ++++++++++++ plural.c | 17 ++++++++++++----- result.txt | 8 +++++--- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index a4cd0b8..0737048 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,18 @@ https://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms * 2 - other plural. Ex. 25 lapā * 3 - plural for 11-19, 10, 20, 100... Ex. 12 lapu +## Build and run + +Code should be compilled: +``` +$ gcc -o plural plural.c +``` + +Then it can be run to see testing results. +``` +$ ./plural +``` + ## Result See result.txt diff --git a/plural.c b/plural.c index 68ddeee..21f78c2 100644 --- a/plural.c +++ b/plural.c @@ -13,7 +13,7 @@ #include -main() { +int main() { int i; int n; int plural; @@ -21,25 +21,32 @@ main() { printf("This is test of plural forms for Samogitian languages\n"); printf("Written by Arns Udovič in 2021 \n\n"); printf("0 - singular or ending in 1 with exception for 11. Ex., 1 laps\n"); - printf("1 - dual or ending in 2 with exception for 12. Ex. 2 lapo\n"); + printf("1 - dual. Ex. 2 lapo\n"); printf("2 - other plural. Ex. 25 lapā\n"); printf("3 - plural for 11-19, 10, 20, 100... Ex. 12 lapu\n\n"); int data[] = {0, 1, 2, 3, 10, 11, 15, 20, 21, 22, 25, 100, 101, 102, 115, 200, 1000, 100000}; - int result[] = {3, 0, 1, 2, 3, 3, 3, 3, 0, 1, 2, 3, 0, 1, 3, 3, 3, 3}; + int result[] = {3, 0, 1, 2, 3, 3, 3, 3, 0, 2, 2, 3, 0, 2, 3, 3, 3, 3}; for (i = 0; i < sizeof(data)/sizeof(int); ++i) { n = data[i]; plural=(n % 10 == 1 && n % 100 != 11) ? 0 - : ((n % 10 == 2 && n % 100 != 12) ? 1 - : ((n % 10 >= 3 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? 2 + : ((n == 2) ? 1 + : ((n != 2 && n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? 2 : 3)); printf("Testing %i, should be: %i, got %i\n", n, result[i], plural); + if (result[i] != plural) { + printf("ERR!\n"); + + return 1; + } } + printf("\nPASS\n"); + return 0; } diff --git a/result.txt b/result.txt index ee72641..33ab453 100644 --- a/result.txt +++ b/result.txt @@ -2,7 +2,7 @@ This is test of plural forms for Samogitian languages Written by Arns Udovič in 2021 0 - singular or ending in 1 with exception for 11. Ex., 1 laps -1 - dual or ending in 2 with exception for 12. Ex. 2 lapo +1 - dual. Ex. 2 lapo 2 - other plural. Ex. 25 lapā 3 - plural for 11-19, 10, 20, 100... Ex. 12 lapu @@ -15,12 +15,14 @@ Testing 11, should be: 3, got 3 Testing 15, should be: 3, got 3 Testing 20, should be: 3, got 3 Testing 21, should be: 0, got 0 -Testing 22, should be: 1, got 1 +Testing 22, should be: 2, got 2 Testing 25, should be: 2, got 2 Testing 100, should be: 3, got 3 Testing 101, should be: 0, got 0 -Testing 102, should be: 1, got 1 +Testing 102, should be: 2, got 2 Testing 115, should be: 3, got 3 Testing 200, should be: 3, got 3 Testing 1000, should be: 3, got 3 Testing 100000, should be: 3, got 3 + +PASS