class complex_value(HasTraits): num1 = Trait(1, TraitRange(1, 5), TraitRange(-5, -1)) num2 = Trait( 1, TraitRange(1, 5), TraitPrefixList("one", "two", "three", "four", "five"), ) num3 = Trait( 1, TraitRange(1, 5), TraitPrefixMap({"one": 1, "two": 2, "three": 3, "four": 4, "five": 5}), ) num4 = Trait(1, Trait(1, Tuple, slow), 10) num5 = Trait(1, 10, Trait(1, Tuple, slow))
class AnOddClass(HasTraits): oddball = Trait(1, TraitOddInteger()) very_odd = Trait(-1, TraitOddInteger(), TraitRange(-10, -1))
class FloatRangeTrait(HasTraits): value = Trait(3.0, TraitRange(2.0, 5.0))
class IntRangeTrait(HasTraits): value = Trait(3, TraitRange(2, 5))
# Uncommenting the following line allows # the last assertions to pass. However, this # may not be intended behavior, so keeping # the line commented. # del parent2.value self.assertEqual(obj.value, 99.0) self.assertEqual(parent1.value, 99.0) self.assertEqual(parent2.value, 99.0) self.assertEqual(parent3.value, 99.0) # Complex(i.e. 'composite') Traits tests: # Make a TraitCompound handler that does not have a fast_validate so we can # check for a particular regression. slow = Trait(1, TraitRange(1, 3), TraitRange(-3, -1)) try: del slow.handler.fast_validate except AttributeError: pass class complex_value(HasTraits): num1 = Trait(1, TraitRange(1, 5), TraitRange(-5, -1)) num2 = Trait( 1, TraitRange(1, 5), TraitPrefixList("one", "two", "three", "four", "five"), ) num3 = Trait( 1,