{
    "tests": [
        {
            "name": "No Interpolation",
            "data": {},
            "expected": "Hello from {Mustache}!\n",
            "template": "Hello from {Mustache}!\n",
            "desc": "Mustache-free templates should render as-is."
        },
        {
            "name": "Basic Interpolation",
            "data": {
                "subject": "world"
            },
            "expected": "Hello, world!\n",
            "template": "Hello, {{subject}}!\n",
            "desc": "Unadorned tags should interpolate content into the template."
        },
        {
            "name": "HTML Escaping",
            "data": {
                "forbidden": "& \" < >"
            },
            "expected": "These characters should be HTML escaped: &amp; &quot; &lt; &gt;\n",
            "template": "These characters should be HTML escaped: {{forbidden}}\n",
            "desc": "Basic interpolation should be HTML escaped."
        },
        {
            "name": "Triple Mustache",
            "data": {
                "forbidden": "& \" < >"
            },
            "expected": "These characters should not be HTML escaped: & \" < >\n",
            "template": "These characters should not be HTML escaped: {{{forbidden}}}\n",
            "desc": "Triple mustaches should interpolate without HTML escaping."
        },
        {
            "name": "Ampersand",
            "data": {
                "forbidden": "& \" < >"
            },
            "expected": "These characters should not be HTML escaped: & \" < >\n",
            "template": "These characters should not be HTML escaped: {{&forbidden}}\n",
            "desc": "Ampersand should interpolate without HTML escaping."
        },
        {
            "name": "Basic Integer Interpolation",
            "data": {
                "mph": 85
            },
            "expected": "\"85 miles an hour!\"",
            "template": "\"{{mph}} miles an hour!\"",
            "desc": "Integers should interpolate seamlessly."
        },
        {
            "name": "Triple Mustache Integer Interpolation",
            "data": {
                "mph": 85
            },
            "expected": "\"85 miles an hour!\"",
            "template": "\"{{{mph}}} miles an hour!\"",
            "desc": "Integers should interpolate seamlessly."
        },
        {
            "name": "Ampersand Integer Interpolation",
            "data": {
                "mph": 85
            },
            "expected": "\"85 miles an hour!\"",
            "template": "\"{{&mph}} miles an hour!\"",
            "desc": "Integers should interpolate seamlessly."
        },
        {
            "name": "Basic Decimal Interpolation",
            "data": {
                "power": 1.21
            },
            "expected": "\"1.21 jiggawatts!\"",
            "template": "\"{{power}} jiggawatts!\"",
            "desc": "Decimals should interpolate seamlessly with proper significance."
        },
        {
            "name": "Triple Mustache Decimal Interpolation",
            "data": {
                "power": 1.21
            },
            "expected": "\"1.21 jiggawatts!\"",
            "template": "\"{{{power}}} jiggawatts!\"",
            "desc": "Decimals should interpolate seamlessly with proper significance."
        },
        {
            "name": "Ampersand Decimal Interpolation",
            "data": {
                "power": 1.21
            },
            "expected": "\"1.21 jiggawatts!\"",
            "template": "\"{{&power}} jiggawatts!\"",
            "desc": "Decimals should interpolate seamlessly with proper significance."
        },
        {
            "name": "Interpolation - Surrounding Whitespace",
            "data": {
                "string": "---"
            },
            "expected": "| --- |",
            "template": "| {{string}} |",
            "desc": "Interpolation should not alter surrounding whitespace."
        },
        {
            "name": "Triple Mustache - Surrounding Whitespace",
            "data": {
                "string": "---"
            },
            "expected": "| --- |",
            "template": "| {{{string}}} |",
            "desc": "Interpolation should not alter surrounding whitespace."
        },
        {
            "name": "Ampersand - Surrounding Whitespace",
            "data": {
                "string": "---"
            },
            "expected": "| --- |",
            "template": "| {{&string}} |",
            "desc": "Interpolation should not alter surrounding whitespace."
        },
        {
            "name": "Interpolation - Standalone",
            "data": {
                "string": "---"
            },
            "expected": "  ---\n",
            "template": "  {{string}}\n",
            "desc": "Standalone interpolation should not alter surrounding whitespace."
        },
        {
            "name": "Triple Mustache - Standalone",
            "data": {
                "string": "---"
            },
            "expected": "  ---\n",
            "template": "  {{{string}}}\n",
            "desc": "Standalone interpolation should not alter surrounding whitespace."
        },
        {
            "name": "Ampersand - Standalone",
            "data": {
                "string": "---"
            },
            "expected": "  ---\n",
            "template": "  {{&string}}\n",
            "desc": "Standalone interpolation should not alter surrounding whitespace."
        },
        {
            "name": "Interpolation With Padding",
            "data": {
                "string": "---"
            },
            "expected": "|---|",
            "template": "|{{ string }}|",
            "desc": "Superfluous in-tag whitespace should be ignored."
        },
        {
            "name": "Triple Mustache With Padding",
            "data": {
                "string": "---"
            },
            "expected": "|---|",
            "template": "|{{{ string }}}|",
            "desc": "Superfluous in-tag whitespace should be ignored."
        },
        {
            "name": "Ampersand With Padding",
            "data": {
                "string": "---"
            },
            "expected": "|---|",
            "template": "|{{& string }}|",
            "desc": "Superfluous in-tag whitespace should be ignored."
        }
    ]
}
