|
|
@@ -11,6 +11,7 @@ |
|
|
|
- [Phoneme Definition File](#phoneme-definition-file) |
|
|
|
- [Dictionary Files](#dictionary-files) |
|
|
|
- [Building Phonemes](#building-phonemes) |
|
|
|
- [Adding tests](#adding-tests) |
|
|
|
- [Program Code](#program-code) |
|
|
|
- [Compiling Rules File for Debugging](#compiling-rules-file-for-debugging) |
|
|
|
- [Improving a Language](#improving-a-language) |
|
|
@@ -284,6 +285,38 @@ or by: |
|
|
|
|
|
|
|
make fr |
|
|
|
|
|
|
|
### Adding tests |
|
|
|
|
|
|
|
All languages require automated tests to make sure accidental changes |
|
|
|
in program code don't change how the languages sound. |
|
|
|
|
|
|
|
Tests are run with `make check`. It will print an error if a language |
|
|
|
is missing tests. |
|
|
|
|
|
|
|
Most tests are bash scripts in tests/ and follow the syntax: |
|
|
|
<test name> <language code> <expected result> <input> |
|
|
|
|
|
|
|
Depending on the test, expected result can be a phoneme string, an md5 hash or something else. |
|
|
|
|
|
|
|
To add a test: |
|
|
|
|
|
|
|
1. First add a test line with arbitrary expected result. |
|
|
|
Example line in tests/language-phonemes.test: |
|
|
|
test_phwav fi this_should_fail "ma na Na pa ba ta da" |
|
|
|
|
|
|
|
2. run `make check` to see expected and actual results: |
|
|
|
testing fi |
|
|
|
1c1 |
|
|
|
< this_should_fail |
|
|
|
--- |
|
|
|
> 7541590a29e2392b827d9f1563e6579774fb15ea |
|
|
|
|
|
|
|
3. change the expected result in the test: |
|
|
|
test_phwav fi 7541590a29e2392b827d9f1563e6579774fb15ea "ma na Na pa ba ta da" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Program Code |
|
|
|
|
|
|
|
The behaviour of the eSpeak program is controlled by various options |