def test_numeric_equal(self): kw1 = EclKW("Name1", 10, EclDataType.ECL_DOUBLE) kw2 = EclKW("Name1", 10, EclDataType.ECL_DOUBLE) shift = 0.0001 value = 1000 abs_diff = shift rel_diff = shift / (shift + 2 * value) kw1.assign(value) kw2.assign(value + shift) self.assertTrue( kw1.equal_numeric(kw2, abs_epsilon=abs_diff * 1.1, rel_epsilon=rel_diff * 1.1)) self.assertFalse( kw1.equal_numeric(kw2, abs_epsilon=abs_diff * 1.1, rel_epsilon=rel_diff * 0.9)) self.assertFalse( kw1.equal_numeric(kw2, abs_epsilon=abs_diff * 0.9, rel_epsilon=rel_diff * 1.1)) self.assertTrue( kw1.equal_numeric(kw2, abs_epsilon=0, rel_epsilon=rel_diff * 1.1)) self.assertTrue( kw1.equal_numeric(kw2, abs_epsilon=abs_diff * 1.1, rel_epsilon=0))
def test_equal(self): kw1 = EclKW("TEST", 3, EclDataType.ECL_CHAR) kw1[0] = "Test1" kw1[1] = "Test13" kw1[2] = "Test15" kw2 = EclKW("TEST", 3, EclDataType.ECL_CHAR) kw2[0] = "Test1" kw2[1] = "Test13" kw2[2] = "Test15" self.assertTrue(kw1.equal(kw2)) self.assertTrue(kw1.equal_numeric(kw2)) kw2[2] = "Test15X" self.assertFalse(kw1.equal(kw2)) self.assertFalse(kw1.equal_numeric(kw2)) unrst_file_path = self.createTestPath( "Statoil/ECLIPSE/Gurbat/ECLIPSE.UNRST") unrst_file = EclFile(unrst_file_path) kw1 = unrst_file["PRESSURE"][0] kw2 = kw1.deep_copy() self.assertTrue(kw1.equal(kw2)) self.assertTrue(kw1.equal_numeric(kw2)) kw2 *= 1.00001 self.assertFalse(kw1.equal(kw2)) self.assertFalse(kw1.equal_numeric(kw2, epsilon=1e-8)) self.assertTrue(kw1.equal_numeric(kw2, epsilon=1e-2)) kw1 = unrst_file["ICON"][10] kw2 = kw1.deep_copy() self.assertTrue(kw1.equal(kw2)) self.assertTrue(kw1.equal_numeric(kw2)) kw1[-1] += 1 self.assertFalse(kw1.equal(kw2)) self.assertFalse(kw1.equal_numeric(kw2))