<launch>

  <arg name="required" />
  <arg name="if_test" />

  <arg name="optional" default="not_set" />
  <arg name="grounded" value="set" />

  <arg name="include_arg" value="initial" />
  
  <arg name="param1_name" value="p1" />
  <arg name="param2_name" value="p2" />
  <arg name="param3_name" value="p3" />
  
  <arg name="param1_value" value="$(arg required)" />
  <arg name="param2_value" value="$(arg optional)" />
  <arg name="param3_value" value="$(arg grounded)" />

  <arg name="int_value" value="1234" />
  <arg name="float_value" value="3.0" />
  
  <arg if="$(arg if_test)" name="if_param_value" value="true" />
  <arg unless="$(arg if_test)" name="if_param_value" value="false" />

  <arg if="$(arg if_test)" name="py_if_param_value" value="$(eval 1 == 1)"/>
  <arg unless="$(arg if_test)" name="py_if_param_value" value="$(eval 1 == 0)"/>

  <param name="$(arg param1_name)_test" value="$(arg param1_value)" />
  <param name="$(arg param2_name)_test" value="$(arg param2_value)" />
  <param name="$(arg param3_name)_test" value="$(arg param3_value)" />

  <param name="if_param" value="$(arg if_param_value)" />
  <param name="py_if_param" value="$(arg py_if_param_value)" />
  <param name="int_param" value="$(arg int_value)" />
  <param name="float_param" value="$(arg float_value)" />  
  
  <group>
    <arg name="context" value="group1" />
    <param name="context1" value="$(arg context)" />
  </group>

  <group>
    <arg name="context" value="group2" />
    <param name="context2" value="$(arg context)" />
  </group>

  <arg name="fail" value="0" />
  <group if="$(arg fail)">
    <param name="fail" value="fail" />
  </group>

  <group unless="$(arg fail)">
    <param name="succeed" value="yes" />
  </group>

  <group if="$(arg if_test)">
    <param name="if_test" value="ran" />
  </group>

  <group unless="$(arg if_test)">
    <param name="if_test" value="not_ran" />
  </group>

  <arg name="py_fail" value="$(eval 0 &gt; 1)"/>
  <group if="$(eval py_fail == True)">
    <param name="py_fail" value="fail" />
  </group>

  <group unless="$(eval arg('py_fail') == True)">
    <param name="py_succeed" value="yes" />
  </group>

  <group if="$(eval if_test == True)">
    <param name="py_if_test" value="ran" />
  </group>

  <group unless="$(eval arg('if_test') == True)">
    <param name="py_if_test" value="not_ran" />
  </group>

  <include file="$(find roslaunch)/test/xml/test-arg-include.xml">
    <arg name="required" value="required1" />
    <arg name="include_arg" value="$(arg include_arg)" />
  </include>

  <include ns="include2" file="$(find roslaunch)/test/xml/test-arg-include.xml">
    <arg name="required" value="required2" />
    <arg name="optional" value="optional2" />
    <arg name="include_arg" value="new2" />
  </include>

  <include if="$(arg if_test)" ns="include3" file="$(find roslaunch)/test/xml/test-arg-include.xml">
    <arg name="required" value="required3" />
    <arg name="optional" value="optional3" />
    <arg name="include_arg" value="new3" />
  </include>
  
</launch>
