{
  "schema": "https://bars.commonsware.com/conformance/schema/render-fixture.schema.json",
  "version": "0.1.0",
  "cases": [
    {
      "name": "downcase-string",
      "spotlight": true,
      "description": "A string literal downcased via the built-in downcase transform.",
      "template": "{{ \"HI\" | downcase }}",
      "context": {},
      "expect": {
        "kind": "output",
        "expectedOutput": "hi"
      }
    },
    {
      "name": "downcase-identifier-string",
      "description": "An identifier pointing to a string value is downcased.",
      "template": "{{ foo | downcase }}",
      "context": {
        "foo": "HELLO"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "hello"
      }
    },
    {
      "name": "downcase-null-context",
      "description": "A missing key (resolves to null) coerces to \"null\" then downcases to \"null\" (already lowercase).",
      "template": "{{ missing | downcase }}",
      "context": {},
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      }
    },
    {
      "name": "downcase-json-null",
      "description": "An explicit JSON null value coerces to \"null\" then downcases to \"null\".",
      "template": "{{ foo | downcase }}",
      "context": {
        "foo": null
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "null"
      }
    },
    {
      "name": "downcase-number",
      "description": "A number coerces to its string form; downcasing has no effect on digits.",
      "template": "{{ n | downcase }}",
      "context": {
        "n": 5
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "5"
      }
    },
    {
      "name": "downcase-boolean",
      "description": "A boolean true coerces to \"true\" then downcases to \"true\" (no-op, already lowercase).",
      "template": "{{ b | downcase }}",
      "context": {
        "b": true
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "true"
      }
    },
    {
      "name": "downcase-chained-with-upcase",
      "spotlight": true,
      "description": "Two-transform chain: downcase then upcase. Final result is uppercase.",
      "template": "{{ foo | downcase | upcase }}",
      "context": {
        "foo": "Hello"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "HELLO"
      }
    },
    {
      "name": "downcase-on-binary-false",
      "description": "Downcase applied to the result of a false binary comparison. false renders as \"false\", downcased to \"false\".",
      "template": "{{ a == b | downcase }}",
      "context": {
        "a": 1,
        "b": 2
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "false"
      }
    },
    {
      "name": "downcase-greek-capital",
      "description": "Unicode default case mapping downcases a Greek capital letter to its lowercase form.",
      "template": "{{ s | downcase }}",
      "context": {
        "s": "Β"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "β"
      }
    }
  ]
}
