# Functions
Compare compares two strings, a for actual, e for expected, and returns true or false.
DiffMessage creates a diff dump message for test failures.
ExprCall creates a call Expr.
ExprComprehension returns a comprehension Expr.
ExprEntry creates a map entry for a create struct Expr.
ExprField creates a field entry for a create struct Expr.
ExprIdent creates an ident (variable) Expr.
ExprList creates a create list Expr.
ExprLiteral creates a literal (constant) Expr.
ExprMap creates a create struct Expr for a map.
ExprMemberCall creates a receiver-style call Expr.
ExprSelect creates a select Expr.
ExprType creates creates a create struct Expr for a message.
# Variables
Conditional generates "a ? b < 1.0 : c == ["hello"]".
DynMap generates a map literal: {"hello": "world".size(), "dur": duration.Duration{10}, "ts": timestamp.Timestamp{1000}, "null": null, "bytes": b"bytes-string"}.
Empty generates a program with no instructions.
Equality generates "a == 42".
Exists generates "[1, 1u, 1.0].exists(x, type(x) == uint)".
ExistsWithInput generates "elems.exists(x, type(x) == uint)".
LogicalAnd generates "a && {c: true}.c".
LogicalAndMissingType generates "a && TestProto{c: true}.c" where the type 'TestProto' is undefined.
LogicalOr generates "{c: false}.c || a".
LogicalOrEquals generates "a || b == 'b'".
Select generates "a.b.c".
TypeEquality generates "type(a) == uint".