def test_java_subclass(self): s = SubVisible() self.assertEquals(Results.PUBLIC_FIELD, s.visibleField) self.assertEquals(Results.PUBLIC_STATIC_FIELD, SubVisible.visibleStaticField) self.assertEquals(Results.SUBCLASS_STATIC_OVERRIDE, SubVisible.visibleStatic(3)) self.assertEquals(Results.SUBCLASS_STATIC_OVERLOAD, SubVisible.visibleStatic(3.0, 'a')) self.assertEquals(Results.SUBCLASS_OVERRIDE, s.visibleInstance(3)) self.assertEquals(Results.SUBCLASS_OVERLOAD, s.visibleInstance(3.0, 'a')) self.assertEquals(Results.PACKAGE_METHOD, s.packageMethod()) # Java methods don't allow direct calling of the superclass method, so it should # return the subclass value here. self.assertEquals(Results.SUBCLASS_OVERRIDE, Visible.visibleInstance(s, 3)) self.assertEquals(Results.PUBLIC_STATIC_FIELD, SubVisible.StaticInner.visibleStaticField) self.assertEquals(Results.VISIBLE_SHARED_NAME_FIELD, Visible.sharedNameField) self.assertEquals(Results.SUBVISIBLE_SHARED_NAME_FIELD, SubVisible.sharedNameField) self.assertEquals(Results.VISIBLE_SHARED_NAME_FIELD * 10, Visible().sharedNameField) self.assertEquals(Results.SUBVISIBLE_SHARED_NAME_FIELD * 10, s.sharedNameField)
def test_array_coercion(self): self.assertEquals("double", Coercions.takeArray(array.zeros('d', 2))) self.assertEquals("float", Coercions.takeArray(array.zeros('f', 2))) self.assertEquals("4", Coercions.takePyObj(1, 2, 3, 4)) c = Coercions() self.assertEquals("5", c.takePyObjInst(1, 2, 3, 4, 5)) self.assertEquals("OtherSubVisible[]", c.takeArray([OtherSubVisible()])) self.assertEquals("SubVisible[]", c.takeArray([SubVisible()]))