{"initial":{"base":{"palette":"warm","tempo":90,"shape":"circle"},"candidate":{"palette":"cool","tempo":90,"shape":"circle"},"changed":["palette"]},"counterexample":{"base":{"palette":"warm","tempo":90,"shape":"circle"},"candidate":{"palette":"cool","tempo":100,"shape":"circle"},"changed":["palette","tempo"]},"tests":[{"name":"one-parameter-change","input":{"base":{"palette":"warm","tempo":90,"shape":"circle"},"candidate":{"palette":"cool","tempo":90,"shape":"circle"},"changed":["palette"]},"expected":{"pass":true,"summary":"The candidate varies one declared parameter.","checks":[{"name":"objects-present","pass":true},{"name":"one-change","pass":true},{"name":"declared-change-matches","pass":true}]}},{"name":"two-parameter-change","input":{"base":{"palette":"warm","tempo":90,"shape":"circle"},"candidate":{"palette":"cool","tempo":100,"shape":"circle"},"changed":["palette","tempo"]},"expected":{"pass":false,"summary":"The candidate varies zero or multiple parameters, or the declaration is wrong.","checks":[{"name":"objects-present","pass":true},{"name":"one-change","pass":false},{"name":"declared-change-matches","pass":true}]}},{"name":"one-change-boundary","input":{"base":{"palette":"warm"},"candidate":{"palette":"cool"},"changed":["palette"]},"expected":{"pass":true,"summary":"The candidate varies one declared parameter.","checks":[{"name":"objects-present","pass":true},{"name":"one-change","pass":true},{"name":"declared-change-matches","pass":true}]}},{"name":"array-is-not-map","input":{"base":[],"candidate":{"palette":"cool"},"changed":["palette"]},"expected":{"pass":false,"summary":"The candidate varies zero or multiple parameters, or the declaration is wrong.","checks":[{"name":"objects-present","pass":false},{"name":"one-change","pass":false},{"name":"declared-change-matches","pass":false}]}}]}
