1cb93a386Sopenharmony_ciuniform half4 I, N; 2cb93a386Sopenharmony_ciuniform half4 colorGreen, colorRed; 3cb93a386Sopenharmony_ci 4cb93a386Sopenharmony_cihalf4 main(float2 xy) { 5cb93a386Sopenharmony_ci const half4 constI = half4(1, -2, 3, -4); 6cb93a386Sopenharmony_ci const half4 constN = half4(-5, 6, -7, 8); 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ci half expectedX = half (-49); 9cb93a386Sopenharmony_ci half2 expectedXY = half2(-169, 202); 10cb93a386Sopenharmony_ci half3 expectedXYZ = half3(-379, 454, -529); 11cb93a386Sopenharmony_ci half4 expectedXYZW = half4(-699, 838, -977, 1116); 12cb93a386Sopenharmony_ci 13cb93a386Sopenharmony_ci return (reflect(I.x, N.x ) == expectedX && 14cb93a386Sopenharmony_ci reflect(I.xy, N.xy ) == expectedXY && 15cb93a386Sopenharmony_ci reflect(I.xyz, N.xyz ) == expectedXYZ && 16cb93a386Sopenharmony_ci reflect(I.xyzw, N.xyzw ) == expectedXYZW && 17cb93a386Sopenharmony_ci reflect(constI.x, constN.x ) == expectedX && 18cb93a386Sopenharmony_ci reflect(constI.xy, constN.xy ) == expectedXY && 19cb93a386Sopenharmony_ci reflect(constI.xyz, constN.xyz ) == expectedXYZ && 20cb93a386Sopenharmony_ci reflect(constI.xyzw, constN.xyzw) == expectedXYZW) ? colorGreen 21cb93a386Sopenharmony_ci : colorRed; 22cb93a386Sopenharmony_ci} 23