| uniform half4 colorWhite, colorGreen, colorRed; | 
 | uniform float2x2 testMatrix2x2; | 
 | uniform float3x3 testMatrix3x3; | 
 | uniform float4x4 testMatrix4x4; | 
 |  | 
 | bool test_fscalar() { | 
 |     float x = colorWhite.r; | 
 |     x = +x; | 
 |     x = -x; | 
 |     return x == -1; | 
 | } | 
 |  | 
 | bool test_iscalar() { | 
 |     int x = int(colorWhite.r); | 
 |     x = +x; | 
 |     x = -x; | 
 |     return x == -1; | 
 | } | 
 |  | 
 | bool test_fvec() { | 
 |     half2 x = colorWhite.rg; | 
 |     x = +x; | 
 |     x = -x; | 
 |     return x == half2(-1); | 
 | } | 
 |  | 
 | bool test_ivec() { | 
 |     int2 x = int2(colorWhite.r); | 
 |     x = +x; | 
 |     x = -x; | 
 |     return x == int2(-1); | 
 | } | 
 |  | 
 | bool test_mat2() { | 
 |     const float2x2 negated = float2x2(-1, -2, | 
 |                                       -3, -4); | 
 |     float2x2 x = testMatrix2x2; | 
 |     x = +x; | 
 |     x = -x; | 
 |     return x == negated; | 
 | } | 
 |  | 
 | bool test_mat3() { | 
 |     const float3x3 negated = float3x3(-1, -2, -3, | 
 |                                       -4, -5, -6, | 
 |                                       -7, -8, -9); | 
 |     float3x3 x = testMatrix3x3; | 
 |     x = +x; | 
 |     x = -x; | 
 |     return x == negated; | 
 | } | 
 |  | 
 | bool test_mat4() { | 
 |     const float4x4 negated = float4x4(-1,  -2,  -3,  -4, | 
 |                                       -5,  -6,  -7,  -8, | 
 |                                       -9,  -10, -11, -12, | 
 |                                       -13, -14, -15, -16); | 
 |     float4x4 x = testMatrix4x4; | 
 |     x = +x; | 
 |     x = -x; | 
 |     return x == negated; | 
 | } | 
 |  | 
 | half4 main(float2 coords) { | 
 |     return test_fscalar() | 
 |             && test_iscalar() | 
 |             && test_fvec() | 
 |             && test_ivec() | 
 |             && test_mat2() | 
 |             && test_mat3() | 
 |             && test_mat4() ? colorGreen : colorRed; | 
 | } |