def testUnwrap(self): # NUMS plain assert 0 == unwrap(0) assert 1 == unwrap(1) assert 0.0 == unwrap(0.0) assert 1.0 == unwrap(1.0) # NUMS rtyped assert 0 == unwrap(rint(0)) assert 0 == unwrap(rlong(0)) assert 1 == unwrap(rint(1)) assert 1 == unwrap(rlong(1)) assert 0.0 == unwrap(rfloat(0.0)) assert 0.0 == unwrap(rdouble(0.0)) assert 1.0 == unwrap(rfloat(1.0)) assert 1.0 == unwrap(rdouble(1.0)) # STRINGS assert "" == unwrap("") assert "str" == unwrap("str") # BOOL assert True == unwrap(True) assert False == unwrap(False) assert True == unwrap(rbool(True)) assert False == unwrap(rbool(False)) # TIME # Bit odd, do we want the long for time, or transformed? assert 0 == unwrap(rtime(0)) assert 1 == unwrap(rtime(1)) # CLASS # same for class, should we map it? assert "k" == unwrap(rclass("k")) # INTERNAL color = omero.Color() assert color == unwrap(rinternal(color)) # OBJECT image = omero.model.ImageI() assert image == unwrap(robject(image)) # COLLECTIONS # empty assert [] == unwrap([]) assert {} == unwrap({}) assert set() == unwrap(set()) # plain in collection assert [1] == unwrap([1]) # rtype in collection assert [1] == unwrap([rint(1)]) assert {"a": 1} == unwrap({"a": 1}) # plain in rcollection ILLEGAL # assert [1] == unwrap(rlist([1])) # assert {"a":1} == unwrap(rmap({"a":1})) # rtype in rcollection assert [1] == unwrap(rlist([rint(1)])) assert {"a": 1} == unwrap(rmap({"a": rint(1)})) # rtype keys ILLEGAL # assert {"a":1} == unwrap(rmap({rstring("a"):rint(1)})) # recursion, ticket:1977 m1 = rmap({"a": rint(1)}) m1.val["m1"] = m1 m2 = {"a": 1} m2["m1"] = m2 unwrap(m1) assert m2["a"] == unwrap(m1)["a"] # Can't compare directly "maximum recursion depth exceeded in cmp" assert type(m2["m1"]) == type(unwrap(m1)["m1"])
def testUnwrap(self): # NUMS plain self.assertEquals(0, unwrap(0)) self.assertEquals(1, unwrap(1)) self.assertEquals(0.0, unwrap(0.0)) self.assertEquals(1.0, unwrap(1.0)) # NUMS rtyped self.assertEquals(0, unwrap(rint(0))) self.assertEquals(0, unwrap(rlong(0))) self.assertEquals(1, unwrap(rint(1))) self.assertEquals(1, unwrap(rlong(1))) self.assertEquals(0.0, unwrap(rfloat(0.0))) self.assertEquals(0.0, unwrap(rdouble(0.0))) self.assertEquals(1.0, unwrap(rfloat(1.0))) self.assertEquals(1.0, unwrap(rdouble(1.0))) # STRINGS self.assertEquals("", unwrap("")) self.assertEquals("str", unwrap("str")) # BOOL self.assertEquals(True, unwrap(True)) self.assertEquals(False, unwrap(False)) self.assertEquals(True, unwrap(rbool(True))) self.assertEquals(False, unwrap(rbool(False))) # TIME # Bit odd, do we want the long for time, or transformed? self.assertEquals(0, unwrap(rtime(0))) self.assertEquals(1, unwrap(rtime(1))) # CLASS # same for class, should we map it? self.assertEquals("k", unwrap(rclass("k"))) # INTERNAL color = omero.Color() self.assertEquals(color, unwrap(rinternal(color))) # OBJECT image = omero.model.ImageI() self.assertEquals(image, unwrap(robject(image))) # COLLECTIONS # empty self.assertEquals([], unwrap([])) self.assertEquals({}, unwrap({})) self.assertEquals(set(), unwrap(set())) # plain in collection self.assertEquals([1], unwrap([1])) # rtype in collection self.assertEquals([1], unwrap([rint(1)])) self.assertEquals({"a":1}, unwrap({"a":1})) ## plain in rcollection ILLEGAL ## self.assertEquals([1], unwrap(rlist([1]))) ## self.assertEquals({"a":1}, unwrap(rmap({"a":1}))) # rtype in rcollection self.assertEquals([1], unwrap(rlist([rint(1)]))) self.assertEquals({"a":1}, unwrap(rmap({"a":rint(1)}))) # rtype keys ILLEGAL ## self.assertEquals({"a":1}, unwrap(rmap({rstring("a"):rint(1)}))) # recursion, ticket:1977 m1 = rmap({"a":rint(1)}) m1.val["m1"] = m1 m2 = {"a":1} m2["m1"] = m2 m3 = unwrap(m1) self.assertEquals(m2["a"], unwrap(m1)["a"]) self.assertEquals(type(m2["m1"]), type(unwrap(m1)["m1"])) # Can't compare directly "maximum recursion depth exceeded in cmp"