{
  "schema": "https://bars.commonsware.com/conformance/schema/render-fixture.schema.json",
  "version": "0.1.0",
  "cases": [
    {
      "name": "abs-non-numeric-input-reports-kb-5001",
      "description": "abs on a non-numeric input soft-fails to null and reports a KB-5001 TypeMismatch soft failure.",
      "template": "{{ x | abs }}",
      "context": {
        "x": "not-a-number"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      },
      "expectedSoftFails": ["KB-5001"]
    },
    {
      "name": "plus-non-numeric-argument-reports-kb-5001",
      "description": "plus with a non-numeric argument soft-fails to null and reports a KB-5001 TypeMismatch soft failure.",
      "template": "{{ x | plus: \"nope\" }}",
      "context": {
        "x": 5
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      },
      "expectedSoftFails": ["KB-5001"]
    },
    {
      "name": "compact-non-list-input-reports-kb-5001",
      "description": "compact on a non-list input soft-fails to null and reports a KB-5001 TypeMismatch soft failure.",
      "template": "{{ x | compact }}",
      "context": {
        "x": "not-a-list"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      },
      "expectedSoftFails": ["KB-5001"]
    },
    {
      "name": "divided-by-zero-reports-kb-5002",
      "description": "divided_by 0 soft-fails to null and reports a KB-5002 DegenerateValue soft failure.",
      "template": "{{ x | divided_by: 0 }}",
      "context": {
        "x": 10
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      },
      "expectedSoftFails": ["KB-5002"]
    },
    {
      "name": "modulo-by-zero-reports-kb-5002",
      "description": "modulo 0 soft-fails to null and reports a KB-5002 DegenerateValue soft failure.",
      "template": "{{ x | modulo: 0 }}",
      "context": {
        "x": 10
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      },
      "expectedSoftFails": ["KB-5002"]
    },
    {
      "name": "round-negative-places-reports-kb-5002",
      "description": "round with a negative places argument is degenerate; soft-fails to null and reports KB-5002 DegenerateValue.",
      "template": "{{ x | round: -1 }}",
      "context": {
        "x": 12.3
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      },
      "expectedSoftFails": ["KB-5002"]
    },
    {
      "name": "truncate-negative-length-reports-kb-5002",
      "description": "truncate with a negative length argument is degenerate; soft-fails to null and reports KB-5002 DegenerateValue.",
      "template": "{{ x | truncate: -1 }}",
      "context": {
        "x": "hello"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      },
      "expectedSoftFails": ["KB-5002"]
    },
    {
      "name": "parse-date-time-unparseable-input-reports-kb-5003",
      "description": "parse_date_time on a string that is not a valid ISO-8601 instant soft-fails to null and reports a KB-5003 UnparseableInput soft failure.",
      "template": "{{ x | parse_date_time }}",
      "context": {
        "x": "not-a-date"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      },
      "expectedSoftFails": ["KB-5003"]
    },
    {
      "name": "url-decode-malformed-percent-encoding-reports-kb-5003",
      "description": "url_decode on a malformed percent-encoded sequence soft-fails to null and reports a KB-5003 UnparseableInput soft failure.",
      "template": "{{ x | url_decode }}",
      "context": {
        "x": "%zz"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      },
      "expectedSoftFails": ["KB-5003"]
    },
    {
      "name": "find-no-match-reports-kb-5006",
      "description": "find whose predicate matches no element soft-fails to null and reports a KB-5006 NoMatch soft failure.",
      "template": "{{ items | find: \"k\" \"nope\" }}",
      "context": {
        "items": [{ "k": "a" }, { "k": "b" }]
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      },
      "expectedSoftFails": ["KB-5006"]
    },
    {
      "name": "find-index-no-match-reports-kb-5006",
      "description": "find_index whose predicate matches no element soft-fails to null and reports a KB-5006 NoMatch soft failure.",
      "template": "{{ items | find_index: \"k\" \"nope\" }}",
      "context": {
        "items": [{ "k": "a" }, { "k": "b" }]
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      },
      "expectedSoftFails": ["KB-5006"]
    }
  ]
}
