A test suite to test APL Primitives.
Ullu is a QA for DyalogAPL (can be used to test any APL ideally) which tests specifically the functionality of primitives one by one. This test suite's main focus is finding bugs, irregularities, edge cases and code coverage.
- add (dyadic +)
- divide (dyadic ÷)
- floor (monadic ⌊)
- index of (dyadic ⍳) (Not tested for coverage)
- magnitude (monadic |)
- membership (dyadic ∊) (Not tested for coverage)
- residue (dyadic |)
- subtract (dyadic -)
- unique (monadic ∪)
- unique mask (monadic ≠)
All details about upcoming tests can be found in the project board
Pronounced as /ˈulːluː/
, The name comes from the Hindi word for owl.
Just as the owl represents both wisdom and foolishness the QA also has a dual nature of being wise and dumb at the same time.
You can use ullu in a dyalog session on any supported operating system.
Run tests using dyalogscript:
dyalogscript run.apls
After this, you will be prompted with options to choose from
Using Dyalog Interpreter (prefered):
- Load the namespaces:
]LINK.Create # <path to repository>
- Run the test cases
unittest.RunTests tests.[test_namespace] [prod=1|0] [verbose= 1|0] [stop=1|0] [⎕RL=any seed value(''?'' for random)] (0 default)
Options:
prod: Changes the result of the test suite to be completely non-verbose and just return 1 if everything passes to not clutter the Jenkins jobs
verbose: if set to 0, only output failing tests and a single summary line and version information.
stop: if set to 1, any test which fails causes the framework to stop and allows the developer to inspect the failing test.
⎕RL: Seed value to for the random link variable that generates random numbers through the tests (it gets reset after each test)
Example:
unittest.RunTests tests.membership 0 1 0 1232
or
unittest.RunTests tests.membership
- Contributing.md: Guide on how to contribute to the codebase
- Decision docs: Explains the decisions taken with each step of the codebase and also documents anomalies for future users.
Feel free to open GitHub issues for any questions, suggestions or feature requests
If you want to reach out, please email aarush[at]dyalog.com
Copyright 2023 Dyalog
Licensed under MIT License: https://opensource.org/licenses/MIT