
void Test1()
{
    struct mystruct { float2 a; };
    mystruct test1 = {
        { 1, 2, },          // test trailing commas in list
    };

    mystruct test2 = {
        float2(3, 4),
    };

    // mystruct test3 = {
    //     { { 5, 6, } },   // TODO: test unneeded levels
    // };

    float test4 = { 7, } ;   // test scalar initialization

    struct mystruct2 { float a; float b; float c; };
    mystruct2 test5 = { {8,}, {9,}, {10}, };
    const mystruct2 constTest5 = { {8,}, {9,}, {10}, };
    constTest5.c;

    const float step = 1.f;
    float n = 0;
    const float3 a[8] = {
            normalize(float3(1, 1, 1)) * (n += step),
            normalize(float3(-1, -1, -1)) * (n += step),
            normalize(float3(-1, -1, 1)) * (n += step),
            normalize(float3(-1, 1, -1)) * (n += step),
            normalize(float3(-1, 1, 1)) * (n += step),
            normalize(float3(1, -1, -1)) * (n += step),
            normalize(float3(1, -1, 1)) * (n += step),
            normalize(float3(1, 1, -1)) * (n += step) };

    const struct one { float3 a; } oneNonConst = { normalize(float3(-1, 1, 1)) * (n += step) };
    const struct two { float3 a;
                       float3 b; } twoNonConst = { normalize(float3(-1, 1, 1)) * (n += step),
                                                   normalize(float3(-1, 1, 1)) * (n += step) };
}

struct PS_OUTPUT { float4 color : SV_Target0; };

PS_OUTPUT main()
{
    Test1();

    PS_OUTPUT ps_output;
    ps_output.color = 1.0;
    return ps_output;
}
