$soap_tests['base'][] = new SOAP_Test('echoBoolean(0)', array('inputBoolean' => soap_value('inputBoolean', 0, XSD_BOOLEAN)), false);
//***********************************************************
// GROUP B
//***********************************************************
// GroupB echoStructAsSimpleTypes
$expect = array('outputString' => 'arg', 'outputInteger' => 34, 'outputFloat' => 325.325);
$soap_tests['GroupB'][] = new SOAP_Test('echoStructAsSimpleTypes', array('inputStruct' => (object) array('varString' => 'arg', 'varInt' => 34, 'varFloat' => 325.325)), $expect);
$soap_tests['GroupB'][] = new SOAP_Test('echoStructAsSimpleTypes', array('inputStruct' => soap_value('inputStruct', (object) array('varString' => 'arg', 'varInt' => 34, 'varFloat' => 325.325), SOAP_ENC_OBJECT, "SOAPStruct", "http://soapinterop.org/xsd")), $expect);
//***********************************************************
// GroupB echoSimpleTypesAsStruct
$expect = (object) array('varString' => 'arg', 'varInt' => 34, 'varFloat' => 325.325);
$soap_tests['GroupB'][] = new SOAP_Test('echoSimpleTypesAsStruct', array('inputString' => 'arg', 'inputInteger' => 34, 'inputFloat' => 325.325), $expect);
$soap_tests['GroupB'][] = new SOAP_Test('echoSimpleTypesAsStruct', array(soap_value('inputString', 'arg', XSD_STRING), soap_value('inputInteger', 34, XSD_INT), soap_value('inputFloat', 325.325, XSD_FLOAT)), $expect);
//***********************************************************
// GroupB echo2DStringArray
$soap_tests['GroupB'][] = new SOAP_Test('echo2DStringArray', array('input2DStringArray' => make_2d(3, 3)));
$multidimarray = soap_value('input2DStringArray', array(array('row0col0', 'row0col1', 'row0col2'), array('row1col0', 'row1col1', 'row1col2')), SOAP_ENC_ARRAY);
//$multidimarray->options['flatten'] = TRUE;
$soap_tests['GroupB'][] = new SOAP_Test('echo2DStringArray', array('input2DStringArray' => $multidimarray));
//***********************************************************
// GroupB echoNestedStruct
$strstr = (object) array('varString' => 'arg', 'varInt' => 34, 'varFloat' => 325.325, 'varStruct' => (object) array('varString' => 'arg', 'varInt' => 34, 'varFloat' => 325.325));
$soap_tests['GroupB'][] = new SOAP_Test('echoNestedStruct', array('inputStruct' => $strstr));
$soap_tests['GroupB'][] = new SOAP_Test('echoNestedStruct', array('inputStruct' => soap_value('inputStruct', (object) array('varString' => 'arg', 'varInt' => 34, 'varFloat' => 325.325, 'varStruct' => new SoapVar((object) array('varString' => 'arg', 'varInt' => 34, 'varFloat' => 325.325), SOAP_ENC_OBJECT, "SOAPStruct", "http://soapinterop.org/xsd")), SOAP_ENC_OBJECT, "SOAPStructStruct", "http://soapinterop.org/xsd")), $strstr);
//***********************************************************
// GroupB echoNestedArray
$arrstr = (object) array('varString' => 'arg', 'varInt' => 34, 'varFloat' => 325.325, 'varArray' => array('red', 'blue', 'green'));
$soap_tests['GroupB'][] = new SOAP_Test('echoNestedArray', array('inputStruct' => $arrstr));
$soap_tests['GroupB'][] = new SOAP_Test('echoNestedArray', array('inputStruct' => soap_value('inputStruct', (object) array('varString' => 'arg', 'varInt' => 34, 'varFloat' => 325.325, 'varArray' => new SoapVar(array("red", "blue", "green"), SOAP_ENC_ARRAY, "ArrayOfstring", "http://soapinterop.org/xsd")), SOAP_ENC_OBJECT, "SOAPArrayStruct", "http://soapinterop.org/xsd")), $arrstr);
//***********************************************************
// GROUP C header tests
$decimal_soapval = new SOAP_Value('inputDecimal', 'decimal', $decimal);
$dateTime = '2001-05-24T17:31:41Z';
$dateTime_soapval = new SOAP_Value('inputDate', 'dateTime', $dateTime);
$boolean_true = true;
$boolean_true_soapval = new SOAP_Value('inputBoolean', 'boolean', true);
$boolean_false = false;
$boolean_false_soapval = new SOAP_Value('inputBoolean', 'boolean', false);
$boolean_one = 1;
$boolean_one_soapval = new SOAP_Value('inputBoolean', 'boolean', 1);
$boolean_zero = 0;
$boolean_zero_soapval = new SOAP_Value('inputBoolean', 'boolean', 0);
// XXX I know this isn't quite right, need to deal with this better
function &make_2d($x, $y)
{
    $a = array();
    for ($_x = 0; $_x < $x; $_x++) {
        $a[$_x] = array();
        for ($_y = 0; $_y < $y; $_y++) {
            $a[$_x][$_y] = "x{$_x}y{$_y}";
        }
    }
    return $a;
}
$multidimarray = make_2d(3, 3);
$multidimarray_soapval = new SOAP_Value('input2DStringArray', 'Array', array(array(new SOAP_Value('item', 'string', 'row0col0'), new SOAP_Value('item', 'string', 'row0col1'), new SOAP_Value('item', 'string', 'row0col2')), array(new SOAP_Value('item', 'string', 'row1col0'), new SOAP_Value('item', 'string', 'row1col1'), new SOAP_Value('item', 'string', 'row1col2'))));
$multidimarray_soapval->options['flatten'] = true;
// Round2GroupC values
$_person = new Person(32, 12345, 'Shane', true);
$person = $_person->__to_soap();
$_employee = new Employee($_person, 12345, 1000000.0);
$employee = $_employee->__to_soap();