tame/progtest/README.md

39 lines
1.2 KiB
Markdown

# Program Testing
<!--
Copyright (C) 2014-2023 Ryan Specialty, LLC.
This file is part of TAME.
Copying and distribution of this file, with or without modification, are
permitted in any medium without royalty provided the copyright notice and
this notice are preserved. This file is offered as-is, without warranty
of any kind.
-->
A /program/ is a top-level package (either marked as with `@program="true"`,
or with a root `rater` node). This system provides a means of writing and
running test cases.
## Test Case Format
Test cases must be provided in a YAML file. Each test case has a
description (`description`), input data (`data`), and expected results
(`expect`).
```yaml
- description: >-
Example test case
data:
state: [ STATE_AK ]
prem_total: [ 9000 ]
effective_date: 12/05/2017
expect:
premTaxStamping: [ 1234 ]
premTaxSurplus: [ 1010 ]
```
A file may contain any number of test cases. All identifiers in `data` and
`expect` must be valid inputs (params) and outputs (classifications and
calculations) respectively. Inputs are passed as-is to the program, and
outputs are recursively (deeply) compared.