# Check usage of template attributes import li_attribute_template chell = li_attribute_template.Cintint(1,2,3) def rassert( what, master ): if what != master: print what raise RuntimeError ## Testing primitive by value attribute rassert( chell.a, 1 ) chell.a = 3 rassert( chell.a, 3 ) ## Testing primitive by ref attribute rassert( chell.b, 2 ) chell.b = 5 rassert( chell.b,5 ) ## Testing string chell.str = "abc" rassert( chell.str, "abc" ) # Testing class by value rassert( chell.d.value, 1 ) chell.d = li_attribute_template.Foo(2) rassert( chell.d.value, 2 ) # Testing class by reference rassert( chell.e.value, 2 ) chell.e= li_attribute_template.Foo(3) rassert( chell.e.value, 3 ) chell.e.value = 4 rassert( chell.e.value, 4 ) # Testing moderately complex template by value rassert( chell.f.first, 1 ) rassert( chell.f.second, 2 ) pair = li_attribute_template.pair_intint(3,4) chell.f = pair rassert( chell.f.first, 3 ) rassert( chell.f.second, 4 ) # Testing moderately complex template by ref rassert( chell.g.first, 2 ) rassert( chell.g.second, 3 ) pair = li_attribute_template.pair_intint(4,5) chell.g = pair rassert( chell.g.first, 4 ) rassert( chell.g.second, 5 ) chell.g.first = 6 chell.g.second = 7 rassert( chell.g.first, 6 ) rassert( chell.g.second, 7 )