Each tabtest is represented as a table, where:
Generally, literals for tabtests are the same that are used in the Inspector. But also there are few special literals for tabtests only.
|It's "valid" Number, that can be produced sometimes. For example, by diving zero by zero.
|Note, that these Numbers are bigger or smaller even than maximum or minimum possible values of type uint32.
|Special literals for tabtests and for expected outputs only. Since we're dealing with floats in the XOD some math can give us float numbers like
0.49999999999 or sometimes the same calculation may give us
0.50000000001, but both of them expected as
0.5. Alternatively, another one example:
-384.75833333 can be expected as
-384.7583. So when you put a tilde at the end of the number it tells to test runner with desired precision we want to test:
-384.7583~. All the next numbers are rounded.
|Note that string should be enquoted
"He said: \"Hello\""
|String with quotes
|To use quotes inside string escape them with backslashes
|Send or Expect Pulse
pulse is defined for input it means that we send pulse. For output — expecting pulse in this transaction.
|Do not send or expect no pulse
no-pulse is defined for input it means that we do not send pulse. For output — expecting there will be no pulse in this transaction.
Name the column:
Values can be non-negative integers.
If you test something with
defer nodes inside, do not forget to increment the time on each test case or
defer node on the execution of the next test case will think that is the same transaction and won’t fire the output pulse or output-value.