export const description = `Flow control tests for if-statements.`;import { makeTestGroup } from '../../../../common/framework/test_group.js';import { AllFeaturesMaxLimitsGPUTest } from '../../../gpu_test.js';import { runFlowControlTest } from './harness.js';export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);g.test('if_true').desc("Test that flow control executes the 'true' block of an if statement and not the 'false' block").params(u => u.combine('preventValueOptimizations', [true, false])).fn(t => {runFlowControlTest(t,f => `${f.expect_order(0)}if (${f.value(true)}) {${f.expect_order(1)}} else {${f.expect_not_reached()}}${f.expect_order(2)}`);});g.test('if_false').desc("Test that flow control executes the 'false' block of an if statement and not the 'true' block").params(u => u.combine('preventValueOptimizations', [true, false])).fn(t => {runFlowControlTest(t,f => `${f.expect_order(0)}if (${f.value(false)}) {${f.expect_not_reached()}} else {${f.expect_order(1)}}${f.expect_order(2)}`);});g.test('else_if').desc("Test that flow control executes the correct 'else if' block of an if statement").params(u => u.combine('preventValueOptimizations', [true, false])).fn(t => {runFlowControlTest(t,f => `${f.expect_order(0)}if (${f.value(false)}) {${f.expect_not_reached()}} else if (${f.value(false)}) {${f.expect_not_reached()}} else if (${f.value(true)}) {${f.expect_order(1)}} else if (${f.value(false)}) {${f.expect_not_reached()}}${f.expect_order(2)}`);});g.test('nested_if_else').desc('Test flow control for nested if-else statements').params(u => u.combine('preventValueOptimizations', [true, false])).fn(t => {runFlowControlTest(t,f => `${f.expect_order(0)}if (${f.value(true)}) {${f.expect_order(1)}if (${f.value(false)}) {${f.expect_not_reached()}} else {${f.expect_order(2)}if (${f.value(true)}) {${f.expect_order(3)}} else {${f.expect_not_reached()}}${f.expect_order(4)}}${f.expect_order(5)}} else {${f.expect_not_reached()}}${f.expect_order(6)}`);});