{
  "schema": "https://bars.commonsware.com/conformance/schema/render-fixture.schema.json",
  "version": "0.1.0",
  "cases": [
    {
      "name": "modulo-integers",
      "spotlight": true,
      "description": "modulo returns the remainder of the input divided by its argument via {{ n | modulo: 3 }}.",
      "template": "{{ n | modulo: 3 }}",
      "context": {
        "n": 7
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "1"
      }
    },
    {
      "name": "modulo-fractional-result",
      "spotlight": true,
      "description": "modulo with a fractional remainder keeps the fractional part.",
      "template": "{{ n | modulo: 1 }}",
      "context": {
        "n": 2.5
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "0.5"
      }
    },
    {
      "name": "modulo-zero-is-null",
      "description": "A zero divisor is a soft failure, so modulo yields null.",
      "template": "{{ n | modulo: 0 }}",
      "context": {
        "n": 7
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      }
    },
    {
      "name": "modulo-non-numeric-input-is-null",
      "description": "A non-numeric input is a soft failure, so modulo yields null.",
      "template": "{{ n | modulo: 3 }}",
      "context": {
        "n": "x"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      }
    },
    {
      "name": "modulo-non-numeric-argument-is-null",
      "description": "A non-numeric argument is a soft failure, so modulo yields null.",
      "template": "{{ n | modulo: \"x\" }}",
      "context": {
        "n": 7
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      }
    },
    {
      "name": "modulo-zero-args-is-error",
      "description": "Calling modulo with zero arguments produces an arity error.",
      "template": "{{ n | modulo }}",
      "context": {
        "n": 7
      },
      "expect": {
        "kind": "error",
        "errorCode": "KB-2002"
      }
    }
  ]
}
