Testing @jin:
@jin 5 6 => FALSE (correct)
@jin 6 5 => TRUE (correct)
@jin 0 5 => FALSE (correct)
@jin 0 0 => TRUE (correct)
Testing @get_child:
@get_child 5 => 6 (correct)
@get_child 7 => 0 (correct)
@get_child 0 => 0 (correct)
Testing @get_parent:
@get_parent 5 => 0 (correct)
@get_parent 6 => 5 (correct)
@get_parent 0 => 0 (correct)
Testing @get_sibling:
@get_sibling 5 => 0 (correct)
@get_sibling 6 => 7 (correct)
@get_sibling 0 => 0 (correct)
Testing @get_prop_addr:
@get_prop_addr 5 4 => 571 (correct)
@get_prop_addr 7 4 => 0 (correct)
@get_prop_addr 0 4 => 0 (correct)
Testing @get_prop:
@get_prop 5 4 => 1 (correct)
@get_prop 6 4 => 0 (correct)
@get_prop 0 4 => 0 (correct)
Testing @clear_attr:
@clear_attr 5 0
@clear_attr 5 1
@clear_attr 0 0
@clear_attr 0 1
Testing @set_attr:
@set_attr 5 0
@set_attr 5 1
@set_attr 0 0
(Note: An attempt has been made to set attribute number 0 in object number 0. If
the @test_attr test below indicates that this attribute has been set, the
interpreter did not ignore the instruction as it should have done.)
Testing @test_attr:
@test_attr 5 0 => TRUE (correct)
@test_attr 5 1 => TRUE (correct)
@test_attr 6 0 => FALSE (correct)
@test_attr 6 1 => FALSE (correct)
@test_attr 0 0 => TRUE (incorrect; shouldn't set attributes in object 0)
@test_attr 0 1 => FALSE (correct)
Testing @insert_obj:
@insert_obj 7 5
@insert_obj 0 5
@insert_obj 5 0
@insert_obj 0 0
Testing remove_obj:
@remove_obj 7
@remove_obj 0
Testing get_next_prop:
@get_next_prop 5 5 => 4 (correct)
@get_next_prop 6 4 => 0 (correct)
Fatal error: No such property