uniform half4 inputVal, expected;
uniform half4 colorGreen, colorRed;

half4 main(float2 coords) {
    const half4 constVal = half4(0);
    return (tan(inputVal.x)    == expected.x     &&
            tan(inputVal.xy)   == expected.xy    &&
            tan(inputVal.xyz)  == expected.xyz   &&
            tan(inputVal.xyzw) == expected.xyzw  &&
            tan(constVal.x)    == expected.x     &&
            tan(constVal.xy)   == expected.xy    &&
            tan(constVal.xyz)  == expected.xyz   &&
            tan(constVal.xyzw) == expected.xyzw) ? colorGreen : colorRed;
}
