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))