The keys are test names (must correspond with the `name` column of the `exercise_test`) and the values has to be integers.
The keys are test names (must correspond with the `name` column of the `exercise_test`) and the values has to be integers. When all weights are equal, the weighted calculator behaves exactly as uniform calculator.
## Universal
The most complex calculator which was added last. It holds an AST (Abstract Syntax Tree) of an expression used to compute the score in the configuration.
The AST is encoded directly into Yaml structure -- each node is represented as a collection (object). A node must always have property `type`, which holds a string identifier of the node type (types of nodes are below).
Leaf nodes (without children):
* `value` - a literal value, which holds one float (the value itself is stored in `value` property)
* `test-result` - reference to a test score, which is also a float between 0 and 1 (name of the test is in the `test` property)