Home / File Formats / .cahtt Format (Native)
.cahtt Format (Native)¶
The .cahtt file is ProTest's native model format. It is a JSON file that stores the complete test model including parameters, constraints, seeds, sub-models, generation settings, and optionally saved results.
Full Example¶
{
"Version": 1,
"GlobalOrder": 2,
"Randomize": true,
"RandomSeed": 0,
"CaseSensitive": false,
"UseSipo": true,
"SipoBase": 10000,
"SipoTempInitial": 5.0,
"SipoTempFinal": 0.1,
"ConstraintText": "IF [OS] = \"Windows\" THEN [Browser] <> \"Safari\";",
"Parameters": [
{
"Name": "OS",
"Values": [
{ "Name": "Windows", "Weight": 1, "IsNegative": false },
{ "Name": "Linux", "Weight": 1, "IsNegative": false },
{ "Name": "Mac", "Weight": 1, "IsNegative": false }
]
},
{
"Name": "Browser",
"Values": [
{ "Name": "Chrome", "Weight": 2, "IsNegative": false },
{ "Name": "Firefox", "Weight": 1, "IsNegative": false },
{ "Name": "Safari", "Weight": 1, "IsNegative": false }
]
}
],
"SubModels": [
{
"Name": "BrowserGroup",
"Order": 3,
"MemberParameterNames": ["OS", "Browser"]
}
],
"Seeds": [
{ "OS": "Windows", "Browser": "Chrome" }
],
"SavedResult": null
}
Field Reference¶
Top-Level Settings¶
| Field | Type | Default | Description |
|---|---|---|---|
Version |
integer | 1 | File format version |
GlobalOrder |
integer | 2 | Default interaction strength |
Randomize |
boolean | true | Enable randomized generation |
RandomSeed |
integer | 0 | Specific random seed (0 = auto) |
CaseSensitive |
boolean | false | Case-sensitive matching |
UseSipo |
boolean | false | Use SIPO engine instead of PICT |
SipoBase |
integer | 10000 | SIPO iteration count |
SipoTempInitial |
float | 5.0 | SIPO initial temperature |
SipoTempFinal |
float | 0.1 | SIPO final temperature |
ConstraintText |
string | "" | PICT constraint syntax |
Parameters¶
Each parameter has:
| Field | Type | Description |
|---|---|---|
Name |
string | Parameter name (must be unique) |
Values |
array | List of parameter values |
Each value has:
| Field | Type | Default | Description |
|---|---|---|---|
Name |
string | — | Value name |
Weight |
integer | 1 | Generation weight (higher = more frequent) |
IsNegative |
boolean | false | Negative test value (~ prefix) |
SubModels¶
| Field | Type | Description |
|---|---|---|
Name |
string | Sub-model name |
Order |
integer | Interaction strength for this group |
MemberParameterNames |
array | Parameter names in this sub-model |
Seeds¶
Each seed is an object mapping parameter names to values. Omitted parameters (or null values) represent partial seeds.
SavedResult¶
When a model is saved after generation, the SavedResult field contains the generated test cases. This is null if no results have been generated.