def testBoolean(self): k0 = "compat.boolean" v0 = das.get_schema_type(k0) for k1 in das.list_schema_types("compat"): v1 = das.get_schema_type(k1) rv = v0.is_type_compatible(v1) if k1 == k0: self.assertTrue(rv) else: self.assertFalse(rv)
def testSequence(self): k0 = "compat.sequence" v0 = das.get_schema_type(k0) for k1 in das.list_schema_types("compat"): v1 = das.get_schema_type(k1) rv = v0.is_type_compatible(v1) if k1.startswith("compat.sequence"): self.assertTrue(rv, "%s vs %s" % (k0, k1)) else: self.assertFalse(rv)
def testStringMatch(self): st = das.get_schema_type("compat.stringMatch") self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.string"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.stringChoice1"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.stringChoice2"))) self.assertTrue( st.is_type_compatible(das.get_schema_type("compat.stringChoice3")))
def testString(self): k0 = "compat.string" v0 = das.get_schema_type(k0) for k1 in das.list_schema_types("compat"): v1 = das.get_schema_type(k1) rv = v0.is_type_compatible(v1) if k1.startswith("compat.string"): self.assertTrue(rv) else: self.assertFalse(rv)
def testIntegerEnum(self): st = das.get_schema_type("compat.integerEnum1") self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.integer"))) self.assertTrue( st.is_type_compatible(das.get_schema_type("compat.integerEnum1"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.integerEnum2"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.integerEnum3")))
def testInteger(self): k0 = "compat.integer" v0 = das.get_schema_type(k0) for k1 in das.list_schema_types("compat"): v1 = das.get_schema_type(k1) rv = v0.is_type_compatible(v1) if k1.startswith("compat.integer"): if "Enum" in k1: self.assertFalse(rv) else: self.assertTrue(rv) else: self.assertFalse(rv)
def testTuple(self): k0 = "compat.tuple" v0 = das.get_schema_type(k0) for k1 in das.list_schema_types("compat"): v1 = das.get_schema_type(k1) rv = v0.is_type_compatible(v1) if k1.startswith("compat.tuple"): erv = { "compat.tuple": True, "compat.tuple1": False, "compat.tuple2": False, "compat.tuple3": True, "compat.tuple4": True } if erv.get(k1, False): self.assertTrue(rv, "%s vs %s" % (k0, k1)) else: self.assertFalse(rv, "%s vs %s" % (k0, k1)) else: self.assertFalse(rv) st = das.get_schema_type("compat.tuple3") self.assertTrue( st.is_type_compatible(das.get_schema_type("compat.tuple4"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.tuple"))) st = das.get_schema_type("compat.tuple4") self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.tuple3"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.tuple")))
def testOr(self): k0 = "compat.or2" v0 = das.get_schema_type(k0) for k1 in das.list_schema_types("compat"): if k1.startswith("compat.or"): continue elif (k1.startswith("compat.integer") and not k1.startswith("compat.integerEnum")) or \ k1.startswith("compat.real") or \ k1.startswith("compat.string") or \ (k1.startswith("compat.set") and k1 != "compat.set3"): self.assertTrue(v0.is_type_compatible(das.get_schema_type(k1)), "%s / %s" % (k0, k1)) else: self.assertFalse( v0.is_type_compatible(das.get_schema_type(k1)), "%s / %s" % (k0, k1))
def testStruct(self): k0 = "compat.struct2" v0 = das.get_schema_type(k0) for k1 in das.list_schema_types("compat"): if k1.startswith("compat.struct"): continue else: self.assertFalse(v0.is_type_compatible( das.get_schema_type(k1))) st = das.get_schema_type("compat.struct") self.assertTrue( st.is_type_compatible(das.get_schema_type("compat.struct1"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.struct2"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.struct3"))) st = das.get_schema_type("compat.struct2") self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.struct4"))) st = das.get_schema_type("compat.struct4") self.assertTrue( st.is_type_compatible(das.get_schema_type("compat.struct2")))
def do_multior(): b = das.make_default("multior.Parameter") das.pprint(b) b.min = 1 b.max = 10.0 b.softMin = False b.softMax = "hello" try: b.min = [0] except: pass das.pprint(b) print(b._get_schema_type()) print(das.get_schema_type("multior.Value"))
def testInheritDynamic(self): st = das.get_schema_type("extend.Margins").copy() st.extend("extend.Resolution") st.extend("extend.Scale") sr = st.make_default() sr.width = 20 sr.height = 10 sr.x = 2 sr.y = 1 sx = int(round(sr.width * sr.x)) sy = int(round(sr.height * sr.y)) self.assertTrue(sr.pixel_count() == 200) self.assertTrue((sx * sy) == 400) self.assertFalse(sr.is_uniform())
def testSet(self): k0 = "compat.set" v0 = das.get_schema_type(k0) for k1 in das.list_schema_types("compat"): v1 = das.get_schema_type(k1) rv = v0.is_type_compatible(v1) if k1.startswith("compat.set"): if k1 == "compat.set3": self.assertFalse(rv, "%s vs %s" % (k0, k1)) else: self.assertTrue(rv, "%s vs %s" % (k0, k1)) else: self.assertFalse(rv) st = das.get_schema_type("compat.set3") self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.set"))) self.assertTrue( st.is_type_compatible(das.get_schema_type("compat.set1"))) self.assertTrue( st.is_type_compatible(das.get_schema_type("compat.set2")))
def testFieldOverride(self): st = das.get_schema_type("extend.ScaledResolution") st.extend("extend.Rect3")
def testFieldConflict2(self): st = das.get_schema_type("extend.ScaledResolution") with self.assertRaises(Exception): st.extend("extend.Rect2")
def testIntegerMax(self): st = das.get_schema_type("compat.integerMax1") self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.integer"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.integerMax2"))) self.assertTrue( st.is_type_compatible(das.get_schema_type("compat.integerMax3"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.integerMin1"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.integerMin2"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.integerMin3"))) self.assertTrue( st.is_type_compatible(das.get_schema_type("compat.integerRange1"))) self.assertTrue( st.is_type_compatible(das.get_schema_type("compat.integerRange2"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.integerRange3"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.integerRange4"))) self.assertTrue( st.is_type_compatible(das.get_schema_type("compat.integerRange5")))
def testSequenceRange(self): st = das.get_schema_type("compat.sequenceRange1") self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.sequence"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.sequenceMin1"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.sequenceMin2"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.sequenceMin3"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.sequenceMax1"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.sequenceMax2"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.sequenceMax3"))) self.assertTrue( st.is_type_compatible( das.get_schema_type("compat.sequenceRange2"))) self.assertFalse( st.is_type_compatible( das.get_schema_type("compat.sequenceRange3"))) self.assertFalse( st.is_type_compatible( das.get_schema_type("compat.sequenceRange4"))) self.assertFalse( st.is_type_compatible( das.get_schema_type("compat.sequenceRange5")))
def testRealRange(self): st = das.get_schema_type("compat.realRange1") self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.real"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.realMin1"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.realMin2"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.realMin3"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.realMax1"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.realMax2"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.realMax3"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.realRange2"))) self.assertTrue( st.is_type_compatible(das.get_schema_type("compat.realRange3"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.realRange4"))) self.assertFalse( st.is_type_compatible(das.get_schema_type("compat.realRange5")))