Browse Source

Merge branch 'reorganise-tests'

master
Reece H. Dunn 7 years ago
parent
commit
f4ff5c6802
6 changed files with 64 additions and 75 deletions
  1. 3
    3
      .gitignore
  2. 4
    4
      Makefile.am
  3. 0
    0
      tests/language-phonemes.test
  4. 57
    0
      tests/language-pronunciation.test
  5. 0
    65
      tests/languages.test
  6. 0
    3
      tests/translate.test

+ 3
- 3
.gitignore View File

@@ -97,10 +97,10 @@ src/espeakedit
src/speak-ng

tests/*.test
!tests/languages.test
!tests/phoneme-output.test
!tests/phoneme-audio.test
!tests/language-phonemes.test
!tests/language-pronunciation.test
!tests/ssml.test
!tests/translate.test

espeak-ng.pc


+ 4
- 4
Makefile.am View File

@@ -250,11 +250,11 @@ tests_api_test_SOURCES = tests/api.c

check: tests/encoding.check \
tests/readclause.check \
tests/api.check \
tests/phoneme-output.check \
tests/phoneme-audio.check \
tests/translate.check \
tests/ssml.check \
tests/languages.check
tests/api.check \
tests/language-phonemes.check \
tests/language-pronunciation.check

##### phoneme data:


tests/phoneme-audio.test → tests/language-phonemes.test View File


+ 57
- 0
tests/language-pronunciation.test View File

@@ -0,0 +1,57 @@
#!/bin/sh

test_phonemes() {
TEST_LANG=$1
EXPECTED=$2
TEST_TEXT=$3

echo "testing ${TEST_LANG}"
ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \
src/espeak-ng -xq -v ${TEST_LANG} "${TEST_TEXT}" > actual.txt
echo "${EXPECTED}" > expected.txt
diff expected.txt actual.txt || exit 1
}

test_phonemes de \
" dr'Uk3 l'amp@ (en)k@mpj'u:t3(de) St'Ern St'Ern@" \
"drucker lampe computer stern sterne"
test_phonemes en \
" k'It dr'Es tr'ap l'0t str'Vt f'Ut fl'i:s p'A:m T'O:t g'u:s n'3:s st'A@t n'O@T f'o@s kj'U@ n,i@3 skw'e@ t'3:m b'3:d h'api k'0m@ l'Et3r- Ekspl'o@ r'oUzI2z r'abIt f'eIs pr'aIs tS'OIs g'oUt m'aUT b'aaT kl'0T m'Ili@n" \
"kit dress trap lot strut foot fleece palm thought goose nurse start north force cure near square term bird happy comma letter explore roses rabbit face price choice goat mouth bath cloth million"
test_phonemes en-029 \
" k'It dr'Es tr'ap l'0t str'Vt f'Ut fl'i:s p'A:m t['O:t g'u:s n'3:s st'A@t n'O@t[ f'o@s kj'o@ n,i@3 skw'e@ t'3:m b'3:d h'api k'0ma# l'Eta# Ekspl'o@ r'oUzI2z r'abIt f'eIs pr'aIs tS'OIs g'oUt m'aUt[ b'aat[ kl'0t[ m'Ili@n" \
"kit dress trap lot strut foot fleece palm thought goose nurse start north force cure near square term bird happy comma letter explore roses rabbit face price choice goat mouth bath cloth million"
test_phonemes en-GB-scotland \
" k'It dr'Es tr'ap l'0t str'Vt f'Ut fl'i:s p'A:m T'O:t g'u:s n'VRs st'A@rt n'O@rT f'o@rs kj'U@ n,i@3r skw'e@r t'3:m b'IRd h'api k'0mV l'Et@r- Ekspl'o@r r'oUzI2z r'abIt f'eIs pr'aIs tS'OIs g'oUt m'aUT b'aaT kl'0T m'Ili@n" \
"kit dress trap lot strut foot fleece palm thought goose nurse start north force cure near square term bird happy comma letter explore roses rabbit face price choice goat mouth bath cloth million"
test_phonemes en-GB-x-gbclan \
" k'It dr'Es tr'ap l'0t str'Vt f'Ut fl'i:s p'A:m T'O:t g'u:s n'3:s st'A@t n'O@T f'o@s kj'U@ n,i@3 skw'e@ t'3:m b'3:d h'apI2 k'0m@ l'Et3r- Ekspl'o@ r'oUzI2z r'abIt f'eIs pr'aIs tS'OIs g'oUt m'aUT b'aaT kl'0T m'Ili@n" \
"kit dress trap lot strut foot fleece palm thought goose nurse start north force cure near square term bird happy comma letter explore roses rabbit face price choice goat mouth bath cloth million"
test_phonemes en-GB-x-gbcwmd \
" k'It dr'Es tr'ap l'0t str'Vt f'Ut fl'i:s p'A:m T'O:t g'u:s n'3:s st'A@t n'O@T f'O@s kj'U@ n,i@3 skw'e@ t'3:m b'3:d'api k'0m@ l'Et3r- Ekspl'O@ r'oUzI2z r'abIt f'eIs pr'aIs tS'OIs g'oUt m'aUT b'aaT kl'0T m'Ili@n" \
"kit dress trap lot strut foot fleece palm thought goose nurse start north force cure near square term bird happy comma letter explore roses rabbit face price choice goat mouth bath cloth million"
test_phonemes en-GB-x-rp \
" k'It dr'Es tr'ap l'0t str'Vt f'Ut fl'i:s p'A:m T'O:t g'u:s n'3:s st'A@t n'O@T f'O@s kj'U@ n,i@3 skw'e@ t'3:m b'3:d h'api k'0ma# l'Eta#r- Ikspl'O@ r'oUzI2z r'abIt f'eIs pr'aIs tS'OIs g'oUt m'aUT b'aaT kl'0T m'Ili@n" \
"kit dress trap lot strut foot fleece palm thought goose nurse start north force cure near square term bird happy comma letter explore roses rabbit face price choice goat mouth bath cloth million"
test_phonemes en-US \
" k'It dr'Es tr'ap l'0t str'Vt f'Ut fl'i:s p'A:m T'O:t g'u:s n'3:s st'A@t n'O@T f'o@s kj'U@ n,i@3 skw'e@ t'3:m b'3:d h'api k'0m@ l'Et#3r- Ekspl'o@ r'oUzI#z r'abIt f'eIs pr'aIs tS'OIs g'oUt m'aUT b'aaT kl'O2T m'Ili@n" \
"kit dress trap lot strut foot fleece palm thought goose nurse start north force cure near square term bird happy comma letter explore roses rabbit face price choice goat mouth bath cloth million"
test_phonemes ja \
" k'a k'i k'u k'e k'o" \
"か き く け こ"
test_phonemes lv \
" nev'ie:na nuo\`_ 'eiRo:pas v'al>sti:m nek,ad nav p'a:Rga:jusi nuo\`_ 'univERsa:la:s_:_: nuo\` v'ispa:Re:jiem n'uoduok}l^iem f'inanse:tas_:_: s'iste:mas uz 'obliga:ta:s 'apdRuoSina:Sanas s'iste:mu b'eigas" \
"Neviena no Eiropas valstīm nekad nav pārgājusi no universālās (no vispārējiem nodokļiem finansētas) sistēmas uz obligātās apdrošināšanas sistēmu Beigas."

# Languages with non-Latin characters fall back to en when speaking Latin characters.
# TODO: Include words in their native script and move to the main tests above.

test_phonemes bg \
" (en)f'Ut str'Vt(bg)" \
"foot strut"
test_phonemes fa \
" (en)f'Ut str'Vt(fa)" \
"foot strut"
test_phonemes ka \
" (en)f'Ut str'Vt(ka)" \
"foot strut"

+ 0
- 65
tests/languages.test View File

@@ -1,65 +0,0 @@
#!/bin/sh

# Test a command for presence and ability to output the sha1 hash of a file.
check_hashcmd() {
which $1 &&
$1 </dev/null 2>/dev/null |
awk '{if ($1 != "da39a3ee5e6b4b0d3255bfef95601890afd80709") { exit 1; }}'
}

# Test some common commands to find the correct one for the system being tested on.
echo -n "checking for SHA1 hashing command ... "
if check_hashcmd sha1sum; then
sha1sum=sha1sum
elif check_hashcmd sha1; then
sha1sum=sha1
elif check_hashcmd shasum; then
sha1sum=shasum
else
echo "no"
exit 1
fi

test_lang() {
if test "$#" -eq 3; then
TEST_LANG=$1
TEST_NAME=$1
EXPECTED=$2
TEST_TEXT=$3
else
TEST_LANG=$1
TEST_NAME=$2
EXPECTED=$3
TEST_TEXT=$4
fi

echo "testing ${TEST_NAME}"
ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \
src/espeak-ng --stdout -v ${TEST_LANG} "${TEST_TEXT}" | \
$sha1sum | awk '{ print $1 }' > actual.txt
echo "${EXPECTED}" > expected.txt
diff expected.txt actual.txt || exit 1
}

# To add a new test:
# 1. add a test line for the language with an appropriate test string, using a placeholder hash;
# 2. run the tests to determine the correct hash;
# 3. copy the correct hash onto the test line;
# 4. re-run the tests to ensure they pass.

test_lang de 8f9bd0211a8d0d7a4f78970b8ac8ed7a50242bb0 "drucker lampe computer stern sterne"

test_lang en 13464f360acc31b7d266164245c15b11e2fb6145 "foot strut north force cure thought lot cloth trap bath"
test_lang en-029 7587e73b30806a360d40088d4f00fa158472fbab "foot strut north force cure thought lot cloth trap bath"
test_lang en-GB-scotland c2a65df79d0da41a4590a0ba6e231e13bc4439b3 "foot strut north force cure thought lot cloth trap bath"
test_lang en-GB-x-gbclan da12c9fd6bfad8aed5644918fc97e683b01b2386 "foot strut north force cure thought lot cloth trap bath"
test_lang en-GB-x-gbcwmd 480e4c024cc06224f1352618e57d0ec4bf223e9a "foot strut north force cure thought lot cloth trap bath"
test_lang en-GB-x-rp 8f1f36267f10c88ca822355ecd9d4ee37faa8228 "foot strut north force cure thought lot cloth trap bath"
test_lang en-US 1653355ef008d67d315aa20e630e00614472a045 "foot strut north force cure thought lot cloth trap bath"

test_lang ja a3651d81da9158ee8b76bd6a31025220b4d84932 "か き く け こ"

# Languages with non-Latin characters fall back to en when speaking Latin characters.
test_lang bg "bg (English text)" ad98e816727288c7f3c525a4b4c30e72c7ea0c00 "foot strut north force cure thought lot cloth trap bath"
test_lang fa "fa (English text)" 9460f3dcd6cc7b4f3f45a9021f7706f1bdc7ae8f "foot strut north force cure thought lot cloth trap bath"
test_lang ka "ka (English text)" 4995fdb0fbe16bd97061c762badea03c1c44ba63 "foot strut north force cure thought lot cloth trap bath"

tests/phoneme-output.test → tests/translate.test View File

@@ -18,9 +18,6 @@ test_phonemes en " h@l'oU" "hello"
# correct word stress
test_phonemes en " s'VmTIN Imp'o@t@nt" "something important"

# spelling rules for suffices (-mas, -mu)
test_phonemes lv " nev'ie:na nuo\`_ 'eiRo:pas v'al>sti:m nek,ad nav p'a:Rga:jusi nuo\`_ 'univERsa:la:s_:_: nuo\` v'ispa:Re:jiem n'uoduok}l^iem f'inanse:tas_:_: s'iste:mas uz 'obliga:ta:s 'apdRuoSina:Sanas s'iste:mu b'eigas" "Neviena no Eiropas valstīm nekad nav pārgājusi no universālās (no vispārējiem nodokļiem finansētas) sistēmas uz obligātās apdrošināšanas sistēmu Beigas."

# Emoji

# ED-3 - emoji_character [http://www.unicode.org/reports/tr51/tr51-12.html#def_emoji_character]

Loading…
Cancel
Save