uniform half4 input, expected;
uniform half4 colorGreen, colorRed;

half4 main(float2 coords) {
    const half4 constVal = half4(-1.5, -0.5, 0.5, 1.5);
    return (round(input.x)       == expected.x     &&
            round(input.xy)      == expected.xy    &&
            round(input.xyz)     == expected.xyz   &&
            round(input.xyzw)    == expected.xyzw  &&
            round(constVal.x)    == expected.x     &&
            round(constVal.xy)   == expected.xy    &&
            round(constVal.xyz)  == expected.xyz   &&
            round(constVal.xyzw) == expected.xyzw) ? colorGreen : colorRed;
}
