libdpf/test
Ryan Henry 875f09fec1 Record Grotto half-ulp tables and comparison geneval, and factor shared beaver terms before the quotient.
Horner and window evaluation need those tables in the tree. Comparison geneval opens the same value words as a Doerner–Shelat key. A factor common to every polynomial term is multiplied first so that preprocessing stays smaller.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 15:16:21 -06:00
..
googletest Update googletest to 1.18.0 and SIMDe to 0.8.2. 2026-09-24 14:30:19 -06:00
tests Record Grotto half-ulp tables and comparison geneval, and factor shared beaver terms before the quotient. 2026-09-24 15:16:21 -06:00
.gitignore Initial import of libdpf. 2026-09-24 14:08:32 -06:00
CMakeLists.txt Initial import of libdpf. 2026-09-24 14:08:32 -06:00
README.md Initial import of libdpf. 2026-09-24 14:08:32 -06:00

How to build tests

To build the existing tests, simply run the following:

mkdir build && cd build
cmake ..
cmake --build .

How to run tests

Specific test executables will be placed in the bin subdirectory of the build directory. These can be run individually.

Alternatively the all_test executable in the build directory can be run which automatically runs all test executables.

How to generate coverage

First, when building the tests, make sure COVERAGE=ON as follows:

cmake -D COVERAGE=ON ..

Then after running all tests, run the following for gcovr coverage report:

mkdir coverage
gcovr --root '../..' --filter '\.\./\.\./include/.*' --html-details 'coverage/index.html' .

Building specific binaries

To build a specific binary, for example eval_point_test, use the following:

cmake --build . --target eval_point_test

Running specific tests

First, to list available tests use the following (using eval_point_test as the example executable):

./bin/eval_point_test --gtest_list_tests

Next, using the --gtest_filter option, specific tests can be run using pattern matching. ? matches a single character, * matches any substring, : seperates two patterns, and - at the beginning of a pattern makes it a negative pattern. Following is an example to only run Basic tests and ensure BasicPathMemoizer tests are not run:

./bin/eval_point_test --gtest_filter='*Basic*:-*BasicPathMemoizer*'