{
  "schema": "https://bars.commonsware.com/conformance/schema/render-fixture.schema.json",
  "version": "0.1.0",
  "cases": [
    {
      "name": "over-long-integer-renders-fixed-notation",
      "description": "An integer literal too large for Long (20 nines) falls back to the ECMA-262 double formatter, which renders it in fixed notation.",
      "template": "{{ /n }}",
      "context": {
        "n": 99999999999999999999
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "100000000000000000000"
      }
    },
    {
      "name": "exponent-1e20-renders-fixed-notation",
      "description": "1e20 is within ECMA-262's fixed-notation range (n <= 21) and renders without an exponent.",
      "template": "{{ /n }}",
      "context": {
        "n": 1e20
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "100000000000000000000"
      }
    },
    {
      "name": "exponent-1e21-renders-exponential-notation",
      "description": "1e21 is just past ECMA-262's fixed-notation threshold and renders in exponential notation.",
      "template": "{{ /n }}",
      "context": {
        "n": 1e21
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "1e+21"
      }
    },
    {
      "name": "exponent-1e-minus-6-renders-fixed-notation",
      "description": "1e-6 is within ECMA-262's fixed-notation range (n >= -5) and renders with leading zeros, not an exponent.",
      "template": "{{ /n }}",
      "context": {
        "n": 1e-6
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "0.000001"
      }
    },
    {
      "name": "exponent-1e-minus-7-renders-exponential-notation",
      "description": "1e-7 is just past ECMA-262's fixed-notation threshold on the small side and renders in exponential notation.",
      "template": "{{ /n }}",
      "context": {
        "n": 1e-7
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "1e-7"
      }
    },
    {
      "name": "negative-zero-renders-as-zero",
      "description": "Negative zero renders as \"0\", not \"-0\", per ECMA-262 Number::toString.",
      "template": "{{ /n }}",
      "context": {
        "n": -0.0
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "0"
      }
    },
    {
      "name": "float-addition-renders-shortest-round-trip-digits",
      "description": "0.1 + 0.2 via the plus transform renders the shortest round-trip decimal for the resulting double, exposing the classic binary-floating-point artifact rather than hiding it.",
      "template": "{{ /a | plus: /b }}",
      "context": {
        "a": 0.1,
        "b": 0.2
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "0.30000000000000004"
      }
    },
    {
      "name": "double-max-value-renders-exponential-notation",
      "description": "Double.MAX_VALUE is far past the fixed-notation threshold and renders in exponential notation.",
      "template": "{{ /n }}",
      "context": {
        "n": 1.7976931348623157e308
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "1.7976931348623157e+308"
      }
    }
  ]
}
