GiellaLT provides an infrastructure for rule-based language technology aimed at minority and indigenous languages, and streamlines building anything from keyboards to speech technology. Read more about Why. See also How to get started, and our Privacy document.
Most of the repositories in GiellaLT come with a lot of tests. Tests are used to
verify that the language models work correctly within the specified parametres:
every update to language data triggers automatic build followed by automatic
checks. If checks are successful, new versions of stuff may be distributed to
users, e.g. via nightly channel. The main command to run automated tests is
make check -j
. This runs tests (in parallel) until at least one fails, if one
or more fails it means the language model is not good enough to be used in
tools or research. Similarly, when we update something for all language repos at
once, it is make check
that shows whether or not the update was compatible
with all of the languages.
make check
is good for automated testing. It runs fast, in parallel, in
background, but it is not ideal for developers who are working on fixing things.
For development use make devtest
can be more useful, it runs all the tests one
by one, ignoring the results and shows more output in order. For some of the
tests, there are helpful scripts in the devtools/
folder, these can provide
more output and open relevant files in a graphical editor for example.
Following is a list of all tests enabled for all languages and what they do.
These tests are run by the make check
command and automated testing in the
build infra.
No common tests yet.
generate-{adjective,noun,propernoun,verb}-lemmas.sh
gets lemmas from
src/fst/morphology/stems/{adjectives,nouns,propernouns,verbs}.lexc
files
respectively and ensures that all of them can be generated by the normative
generator using specific analysis tags. Use
devtools/generate-{adj,noun,prop,verb}-lemmas.sh
to get more information about
lemmas that are not generated.
generate-{adjective,noun,verb}-paradigm.sh
gets lemmas from src/fst/morphology/stems/{adjectives,nouns,verbs}.lexc
files
respectively and generates paradigms defined by
test{adj,noun,verb}paradigm.txt
respectively, with the descriptive generator.
Use devtools/generate-{adj,noun,prop,verb}-wordforms.sh
to get more
information about paradigms that are not generated.
src/fst/morphology/phonology/pair-test-hfst.sh
runs pair tests against twol rules.
src/fst/orthography/test/run-initcaps-genyaml-testcases.sh
runs YAML tests from the same directory for generating word-forms with initial caps or titlecasing if any.
src/fst/phonetics/tests/
no common tests.
src/fst/test/run-*-yaml-testscases.sh
runs YAML tests from subdirectories like: dict-gt-yamls
, gt-desc-yamls
,
gt-norm-yamls
etc. if any are found.
src/fst/test/run-lexc-testcases.sh
runs YAML testcases from lexc doccomments if any are found.
tools/analysers/test/
no common tests
tools/grammarcheckers/tests/
runs yaml checks in the directory against grammar checker, if any. Grammar checker testing is documented here.
tools/hyphenators/test/
no common tests
tools/mt/apertium/test/run-mt-gt-desc-anayaml-tests.sh
runs YAML checks in the same folder if any for machine translation analyser.
tools/spellcheckers/test/accept-all-lemmas.sh
gets lemmas from src/fst/morphology/stems/*.lexc
and ensures that they
are accepted by spell-checker.
tools/spellcheckers/test/run-*-yaml-testcases.sh
runs YAML checks in the desktopspeller-gt-norm-yamls
subdirectory if any.
tools/spellcheckers/test/suggestion-quality.sh
runs spelling corrector against typos.tsv
and ensures that number of correct
suggestions is within specified parametres.
tools/spellcheckers/test/test-zhfst-basic-sugg-speed.sh
verifies spell-checker produces suggestions within reasonable time
tools/spellcheckers/test/test-zhfst-file.sh
checks that the spell-checker archive is usable at all
tools/tokenisers/tests/
no common tests
tools/tts/test
no common tests
devtools/
contains scripts for manually running tests and seeing more results and opening the result files in an editor.