group if "If Statements"

	case single_statement
		version 310 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 1.0 ];
		}

		both ""
			#version 310 es
			precision highp float;
			${DECLARATIONS}
			void main()
			{
				out0 = 0.0;
				if (in0 >= 1.0)
					out0 = 1.0;
				${OUTPUT}
			}
		""
	end

	case compound_statement
		version 310 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 1.0 ];
			output float out1 = [ 1.0 | 0.0 | 0.0 ];
		}

		both ""
			#version 310 es
			precision highp float;
			${DECLARATIONS}
			void main()
			{
				out0 = 0.0;
				out1 = 1.0;
				if (in0 >= 1.0)
				{
					out0 = 1.0;
					out1 = 0.0;
				}
				${OUTPUT}
			}
		""
	end

	case sequence_statements
		version 310 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 1.0 ];
			output float out1 = [ 1.0 | 0.0 | 0.0 ];
		}

		both ""
			#version 310 es
			precision highp float;
			${DECLARATIONS}
			void main()
			{
				out0 = 0.0;
				out1 = 1.0;
				if (in0 >= 1.0)
					out0 = 1.0, out1 = 0.0;
				${OUTPUT}
			}
		""
	end

	case sequence_condition
		version 310 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 1.0 ];
			output float out1 = [ 1.0 | 0.0 | 0.0 ];
		}

		both ""
			#version 310 es
			precision highp float;
			${DECLARATIONS}
			void main()
			{
				out0 = 0.0;
				out1 = 1.0;
				if (false, in0 >= 1.0)
					out0 = 1.0, out1 = 0.0;
				${OUTPUT}
			}
		""
	end

	case complex_condition
		version 310 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 1.0 ];
			output float out1 = [ 1.0 | 0.0 | 0.0 ];
		}

		both ""
			#version 310 es
			precision highp float;
			${DECLARATIONS}
			void main()
			{
				out0 = 0.0;
				out1 = 1.0;
				if (false || (in0 >= 1.0) && (in0 - 2.0*in0 < 0.0))
					out0 = 1.0, out1 = 0.0;
				${OUTPUT}
			}
		""
	end

	case if_else
		version 310 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 1.0 ];
		}

		both ""
			#version 310 es
			precision highp float;
			${DECLARATIONS}
			void main()
			{
				if (in0 >= 1.0)
					out0 = 1.0;
				else
					out0 = 0.0;
				${OUTPUT}
			}
		""
	end

	case if_elseif
		version 310 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 2.0 ];
		}

		both ""
			#version 310 es
			precision highp float;
			${DECLARATIONS}
			void main()
			{
				out0 = 0.0;
				if (in0 >= 2.0)
					out0 = 2.0;
				else if (in0 >= 1.0)
					out0 = 1.0;
				${OUTPUT}
			}
		""
	end

	case if_elseif_else
		version 310 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 2.0 ];
		}

		both ""
			#version 310 es
			precision highp float;
			${DECLARATIONS}
			void main()
			{
				if (in0 >= 2.0)
					out0 = 2.0;
				else if (in0 >= 1.0)
					out0 = 1.0;
				else
					out0 = 0.0;
				${OUTPUT}
			}
		""
	end

	case mixed_if_elseif_else
		version 310 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 2.0 ];
		}

		both ""
			#version 310 es
			precision highp float;
			${DECLARATIONS}
			void main()
			{
				if (in0 >= 2.0)
				{
					out0 = 2.0;
				}
				else if (in0 >= 1.0)
					out0 = 2.0, out0 = 1.0;
				else
					out0 = 0.0;
				${OUTPUT}
			}
		""
	end

end # if
