def test_dataframe_equality_with_multi_sort(self): shuffidx = numpy.arange(size) shuffle(shuffidx) df1 = pd.DataFrame(self.cols) df2 = pd.DataFrame({ K : self.cols[K][shuffidx] for K in self.cols.keys()}) self.assertTrue(checkeq(df1,df2,sort_columns=["strB","chrA"])) self.assertTrue(checkeq(df2,df1,sort_columns=["strB","chrA"]))
def test_dataframe_inequality_wrong_rows(self): df1 = pd.DataFrame(self.cols) df2 = pd.DataFrame( {K: self.cols[K][:size - 1000] for K in self.cols.keys()}) self.assertFalse(checkeq(df1, df2)) self.assertFalse(checkeq(df2, df1))
def test_dataframe_equality_without_sort(self): shuffidx = numpy.arange(size) shuffle(shuffidx) df1 = pd.DataFrame(self.cols) df2 = pd.DataFrame({ K : self.cols[K][shuffidx] for K in self.cols.keys()}) self.assertFalse(checkeq(df1,df2)) self.assertFalse(checkeq(df2,df1))
def test_dataframe_inequality_wrong_columns(self): df1 = pd.DataFrame(self.cols) df2 = pd.DataFrame({ K: copy.deepcopy(self.cols[K]) for K in sorted(self.cols.keys())[:-2] }) self.assertFalse(checkeq(df1, df2)) self.assertFalse(checkeq(df2, df1))
def test_dataframe_equality_with_multi_sort(self): shuffidx = numpy.arange(size) shuffle(shuffidx) df1 = pd.DataFrame(self.cols) df2 = pd.DataFrame( {K: self.cols[K][shuffidx] for K in self.cols.keys()}) self.assertTrue(checkeq(df1, df2, sort_columns=["strB", "chrA"])) self.assertTrue(checkeq(df2, df1, sort_columns=["strB", "chrA"]))
def test_dataframe_equality_without_sort(self): shuffidx = numpy.arange(size) shuffle(shuffidx) df1 = pd.DataFrame(self.cols) df2 = pd.DataFrame( {K: self.cols[K][shuffidx] for K in self.cols.keys()}) self.assertFalse(checkeq(df1, df2)) self.assertFalse(checkeq(df2, df1))
def test_dataframe_inequality_above_tol(self): tol = 10**-8 noiseA = tol * 10**2 * numpy.random.randn(size) noiseB = tol * 10**2 * numpy.random.randn(size) df1 = pd.DataFrame(self.cols) df2 = copy.deepcopy(df1) df2["floatA"] += noiseA df2["floatB"] -= noiseB self.assertFalse(checkeq(df1, df2, tol=tol)) self.assertFalse(checkeq(df2, df1, tol=tol))
def test_dataframe_inequality_above_tol(self): tol = 10**-8 noiseA = tol*10**2 * numpy.random.randn(size) noiseB = tol*10**2 * numpy.random.randn(size) df1 = pd.DataFrame(self.cols) df2 = copy.deepcopy(df1) df2["floatA"] += noiseA df2["floatB"] -= noiseB self.assertFalse(checkeq(df1,df2,tol=tol)) self.assertFalse(checkeq(df2,df1,tol=tol))
def check_dataframe_equality_same(self,special_val): """Helper function for checking equality when various special values are in the same location in both dataframes Parameters ---------- special_val : numpy.nan, numpy.inf, -numpy.inf, or None Value that is ignored by :py:meth:`plastid.bin.test_dataframe_equality` if it occurs in the same cells of both dataframes """ idx = numpy.random.randint(0,high=size,size=500) tmpcols = copy.deepcopy(self.cols) tmpcols["floatA"][idx] = special_val df1 = pd.DataFrame(tmpcols) df2 = pd.DataFrame(copy.deepcopy(tmpcols)) self.assertTrue(checkeq(df1,df2)) self.assertTrue(checkeq(df2,df1))
def check_dataframe_equality_same(self, special_val): """Helper function for checking equality when various special values are in the same location in both dataframes Parameters ---------- special_val : numpy.nan, numpy.inf, -numpy.inf, or None Value that is ignored by :py:meth:`plastid.bin.test_dataframe_equality` if it occurs in the same cells of both dataframes """ idx = numpy.random.randint(0, high=size, size=500) tmpcols = copy.deepcopy(self.cols) tmpcols["floatA"][idx] = special_val df1 = pd.DataFrame(tmpcols) df2 = pd.DataFrame(copy.deepcopy(tmpcols)) self.assertTrue(checkeq(df1, df2)) self.assertTrue(checkeq(df2, df1))
def check_dataframe_inequality_different(self,special_val): """Helper function for checking inequality when various special values appear in the different locations in both dataframes Parameters ---------- special_val : numpy.nan, numpy.inf, -numpy.inf, or None Value that is ignored by :py:meth:`plastid.bin.test_dataframe_equality` if it occurs in the same cells of both dataframes """ idxA = numpy.random.randint(0,high=size,size=500) idxB = numpy.random.randint(0,high=size,size=500) colsA = copy.deepcopy(self.cols) colsA["floatA"][idxA] = special_val colsB = copy.deepcopy(self.cols) colsB["floatA"][idxB] = special_val df1 = pd.DataFrame(colsA) df2 = pd.DataFrame(colsB) self.assertFalse(checkeq(df1,df2)) self.assertFalse(checkeq(df2,df1))
def check_dataframe_inequality_different(self, special_val): """Helper function for checking inequality when various special values appear in the different locations in both dataframes Parameters ---------- special_val : numpy.nan, numpy.inf, -numpy.inf, or None Value that is ignored by :py:meth:`plastid.bin.test_dataframe_equality` if it occurs in the same cells of both dataframes """ idxA = numpy.random.randint(0, high=size, size=500) idxB = numpy.random.randint(0, high=size, size=500) colsA = copy.deepcopy(self.cols) colsA["floatA"][idxA] = special_val colsB = copy.deepcopy(self.cols) colsB["floatA"][idxB] = special_val df1 = pd.DataFrame(colsA) df2 = pd.DataFrame(colsB) self.assertFalse(checkeq(df1, df2)) self.assertFalse(checkeq(df2, df1))
def test_dataframe_inequality_wrong_rows(self): df1 = pd.DataFrame(self.cols) df2 = pd.DataFrame({K : self.cols[K][:size-1000] for K in self.cols.keys()}) self.assertFalse(checkeq(df1,df2)) self.assertFalse(checkeq(df2,df1))
def test_dataframe_inequality_wrong_columns(self): df1 = pd.DataFrame(self.cols) df2 = pd.DataFrame({ K : copy.deepcopy(self.cols[K]) for K in sorted(self.cols.keys())[:-2] }) self.assertFalse(checkeq(df1,df2)) self.assertFalse(checkeq(df2,df1))
def test_dataframe_quality_when_identical(self): df1 = pd.DataFrame(self.cols) self.assertTrue(checkeq(df1, df1))
def test_dataframe_equality_no_sort(self): df1 = pd.DataFrame(self.cols) df2 = pd.DataFrame(copy.deepcopy(self.cols)) self.assertTrue(checkeq(df1,df2)) self.assertTrue(checkeq(df2,df1))
def test_dataframe_quality_when_identical(self): df1 = pd.DataFrame(self.cols) self.assertTrue(checkeq(df1,df1))
def test_dataframe_equality_no_sort(self): df1 = pd.DataFrame(self.cols) df2 = pd.DataFrame(copy.deepcopy(self.cols)) self.assertTrue(checkeq(df1, df2)) self.assertTrue(checkeq(df2, df1))