1cb93a386Sopenharmony_ci
2cb93a386Sopenharmony_ciout vec4 sk_FragColor;
3cb93a386Sopenharmony_ciuniform vec4 testInputs;
4cb93a386Sopenharmony_ciuniform vec4 colorGreen;
5cb93a386Sopenharmony_ciuniform vec4 colorRed;
6cb93a386Sopenharmony_civec4 main() {
7cb93a386Sopenharmony_ci    vec4 expectedA = vec4(-1.0, 0.0, 0.75, 1.0);
8cb93a386Sopenharmony_ci    const vec4 clampLow = vec4(-1.0, -2.0, -2.0, 1.0);
9cb93a386Sopenharmony_ci    vec4 expectedB = vec4(-1.0, 0.0, 0.5, 2.25);
10cb93a386Sopenharmony_ci    const vec4 clampHigh = vec4(1.0, 2.0, 0.5, 3.0);
11cb93a386Sopenharmony_ci    return ((((((((((((((clamp(testInputs.x, -1.0, 1.0) == expectedA.x && clamp(testInputs.xy, -1.0, 1.0) == expectedA.xy) && clamp(testInputs.xyz, -1.0, 1.0) == expectedA.xyz) && clamp(testInputs, -1.0, 1.0) == expectedA) && -1.0 == expectedA.x) && vec2(-1.0, 0.0) == expectedA.xy) && vec3(-1.0, 0.0, 0.75) == expectedA.xyz) && vec4(-1.0, 0.0, 0.75, 1.0) == expectedA) && clamp(testInputs.x, -1.0, 1.0) == expectedB.x) && clamp(testInputs.xy, vec2(-1.0, -2.0), vec2(1.0, 2.0)) == expectedB.xy) && clamp(testInputs.xyz, vec3(-1.0, -2.0, -2.0), vec3(1.0, 2.0, 0.5)) == expectedB.xyz) && clamp(testInputs, clampLow, clampHigh) == expectedB) && -1.0 == expectedB.x) && vec2(-1.0, 0.0) == expectedB.xy) && vec3(-1.0, 0.0, 0.5) == expectedB.xyz) && vec4(-1.0, 0.0, 0.5, 2.25) == expectedB ? colorGreen : colorRed;
12cb93a386Sopenharmony_ci}
13