public void TestGeneration()
        {
            string input = @"
            func: 'a1: ' + {1}; + '--
            a2: ' + {2}

            baseheight: 40

            type: td
            height: {baseheight}px
            width: 60px

            type: tr
            color: white

            class: container
            background: yellow
            height: ({baseheight} + 20)px

            style: funcStyle
            2: func:(a3|a4)

            style: simple
            color: pink
            ";

            string template = @"
            dummy: 1

            OutputItems: COMP:(COUNT:({{1}})|0|''|SUM:OVER:({{1}}|x|{2}{x} + ' {' + SUM:OVER:({{1}={x}.ALL.NAME}|y|' --
            ' + COMP:({y}|INT:({y})|''|{y}  + ': ') + {{1}={x}.{y}} + ';') + '--
            } --
            ' + '--
            '))

            Output: OutputItems:(type|'') + OutputItems:(class|'.') + OutputItems:(style|'#')";

            string expected = @"td {
            height: 40px;
            width: 60px;
            }

            tr {
            color: white;
            }

            .container {
            background: yellow;
            height: 60px;
            }

            #funcStyle {
            a1: a3;
            a2: a4;
            }

            #simple {
    color: pink;
}

".Replace("\n", "\r").Replace("\r\r", "\n").Replace("\r", "\n"); // Something odd when creating expected so using this to regularise.

            GenericGenerator generator = new GenericGenerator();
            string generated = generator.Generate(input, template).Replace("\r", "");
            string soFar = "";
            //Assert.AreEqual(expected, generated);
            for (int i = 0; i < expected.Length; ++i)
            {
                char e = expected[i];
                char g = generated[i];