#! /bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src

# Test range dependent checking of format strings with plural forms.

# Take as example a plural formula which takes all values infinitely often.
# Test: 1 - lack %d for value 0 - error
#       2 - lack %d for value 0 but limited range such that only one n - ok
#       3 - lack %d for value 1 - error
#       4 - lack %d for value 1 but limited range such that multiple n - error

cat <<\EOF > mf-17.po1
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: GNU bison\n"
"PO-Revision-Date: 2001-04-05 19:47+0200\n"
"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
"Language-Team: test <test@li.org>\n"
"Language: test\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"

#: ../roundup/date.py:851
#, python-format
msgid "1 %(number)s/4 hours"
msgid_plural "1 %(number)s/4 hours"
msgstr[0] "час с четвертью"
msgstr[1] "час и %(number)s четверти"
msgstr[2] "час и %(number)s четвертей"
EOF

: ${MSGFMT=msgfmt}
${MSGFMT} --check -o /dev/null mf-17.po1 2>/dev/null
test $? = 1 || { Exit 1; }

cat <<\EOF > mf-17.po2
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: GNU bison\n"
"PO-Revision-Date: 2001-04-05 19:47+0200\n"
"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
"Language-Team: test <test@li.org>\n"
"Language: test\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"

#: ../roundup/date.py:851
#, python-format, range: 1..3
msgid "1 %(number)s/4 hours"
msgid_plural "1 %(number)s/4 hours"
msgstr[0] "час с четвертью"
msgstr[1] "час и %(number)s четверти"
msgstr[2] "час и %(number)s четвертей"
EOF

: ${MSGFMT=msgfmt}
${MSGFMT} --check -o /dev/null mf-17.po2 || Exit 1

cat <<\EOF > mf-17.po3
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: GNU bison\n"
"PO-Revision-Date: 2001-04-05 19:47+0200\n"
"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
"Language-Team: test <test@li.org>\n"
"Language: test\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"

#: ../roundup/date.py:851
#, python-format
msgid "1 %(number)s/4 hours"
msgid_plural "1 %(number)s/4 hours"
msgstr[0] "час и %(number)s четверти"
msgstr[1] "час с четвертью"
msgstr[2] "час и %(number)s четвертей"
EOF

: ${MSGFMT=msgfmt}
${MSGFMT} --check -o /dev/null mf-17.po3 2>/dev/null
test $? = 1 || { Exit 1; }

cat <<\EOF > mf-17.po4
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: GNU bison\n"
"PO-Revision-Date: 2001-04-05 19:47+0200\n"
"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
"Language-Team: test <test@li.org>\n"
"Language: test\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"

#: ../roundup/date.py:851
#, python-format, range: 1..3
msgid "1 %(number)s/4 hours"
msgid_plural "1 %(number)s/4 hours"
msgstr[0] "час и %(number)s четверти"
msgstr[1] "час с четвертью"
msgstr[2] "час и %(number)s четвертей"
EOF

: ${MSGFMT=msgfmt}
${MSGFMT} --check -o /dev/null mf-17.po4 2>/dev/null
test $? = 1 || { Exit 1; }

exit $result
