invariant function
Implementation
String invariant(Iterable<CaseSpec> cases, {String obj = ""}) => cartprod2(
cases,
cases,
tuple: (CaseSpec expected, CaseSpec other) => other == expected
? "${obj.isNotEmpty ? "$obj." : ""}${expected.name} != null"
: "${obj.isNotEmpty ? "$obj." : ""}${other.name} == null",
row: (tuples) => tuples.join("&&"),
result: (rows) => rows.join("||"),
);