Finalization for first release
Opened this issue · 0 comments
Here are things we are supposed to do currently to have a tested, completed working package release:
- Inside
lilcom_c_extension.c
: There shouldn't be any miss-calculation on parameter passing and procedure inside extension functions. Following notes should be considered;
-
There are no default value and optional arguments passed to function. Any of these should be postponed to the wrapper module.
-
Return codes from both
lilcom_c_extension.c
andlilcom.c
must be documented in thereadme.md
-
Error codes must be the same as what is commented inside the code. All error values are better to be more than 100 in order not to be mistaken with conversion exponent.
- The wrapper:
- Quoted from @danpovey:
I want to have the top-level interface callable from c as just lilcom.compress() and lilcom.decompress(), you can add import statements in the init file to make this possible.
Also, please test with close-to-denormal and close-to-infinite numbers.
- Double-checking the code to check whether all conditions of the input array are handled.
- Test Procedure: These are the main testing procedures we might design:
-
Testing all possible workflows which call any function inside
lilcom_c_extension.c
. -
Testing all possible workflows calling the wrapper
-
Quoted by @danpovey:
Please test with close-to-denormal and close-to-infinite numbers. I suggest to generate random normal data and then multiply by 2^n for n in, say, [-40, 40]. It should work as long as, when converted to single precision float, there is no inf or nan.
I'd like some graphs of SNR versus lpc_order for some real speech or music data; and also time taken versus lpc_order (to check it's roughly linear).
This is what I am going to figure out.
After doing these we are ready to go for a finalized distribution.