# ZTestSuite

Unit test suite covering the libsst and ZUtil libraries.

## Running

```sh
make ztestsuite
./ZTestSuite.bin        # interactive menu
./ZTestSuite.bin -n     # run all tests non-interactively
./ZTestSuite.bin -r 5   # run test block #5
./ZTestSuite.bin -c     # print total test count
```

## Test framework

Custom lightweight framework (`ZUnitTest.hpp`):

```cpp
static const char* testExample() {
    TASSERT(1 + 1 == 2, "math is broken");
    return ZTEST_SUCCESS;
}
```

Tests return an error string on failure or `ZTEST_SUCCESS` (empty string)
on pass.

## Coverage (48 test blocks, 60 test files)

**Math** -- Vec2/3/4 and Mat22/33/44 in float/double/int/unsigned variants,
geometry, transforms, safe arithmetic, endianness

**Containers** -- ZArray, ZList, ZHashMap, ZRingBuffer, ZBasicString (with
algorithm suites)

**Memory** -- ZAlloc, ZAllocWindow, ZSlabAllocator, ZReferenceCounter,
ZSmartPointer, ZWeakPointer

**I/O** -- JSON, XML, INI readers/writers, binary data writer

**Concurrency** -- threads, task streams

**Utilities** -- assertions, ZName, ZRegistry, random generation, simplex noise
