def test_to_df_atom_pairs(): df = to_dataframe(ifp_atoms, ["A", "B", "C"], return_atoms=True) assert df.shape == (2, 4) assert df.index.name == "Frame" assert ("LIG", "ALA1", "A") in df.columns assert df[("LIG", "ALA1", "A")][0] == (0, 1) assert ("LIG", "ALA1", "B") in df.columns assert df[("LIG", "ALA1", "B")][0] == (None, None) assert ("LIG", "ALA1", "C") not in df.columns assert ("LIG", "GLU2", "A") not in df.columns assert ("LIG", "ASP3", "B") in df.columns assert df[("LIG", "ASP3", "B")][0] == (None, None)
def test_to_df(): df = to_dataframe(ifp, ["A", "B", "C"]) assert df.shape == (2, 4) assert df.dtypes[0].type is np.bool_ assert df.index.name == "Frame" assert ("LIG", "ALA1", "A") in df.columns assert df[("LIG", "ALA1", "A")][0] is np.bool_(True) assert ("LIG", "ALA1", "B") in df.columns assert df[("LIG", "ALA1", "B")][0] is np.bool_(False) assert ("LIG", "ALA1", "C") not in df.columns assert ("LIG", "GLU2", "A") not in df.columns assert ("LIG", "ASP3", "B") in df.columns assert df[("LIG", "ASP3", "B")][0] is np.bool_(False)
def test_to_bv(): df = to_dataframe(ifp, ["A", "B", "C"]) bvs = to_bitvectors(df) assert len(bvs) == 2 assert bvs[0].GetNumOnBits() == 2
def test_to_df_raise_return_atoms_if_only_bitvector(): with pytest.raises(ValueError, match="doesn't contain atom indices"): to_dataframe(ifp, ["A", "B", "C"], return_atoms=True)
def test_to_df_raise_dtype_return_atoms(): with pytest.raises( ValueError, match="`dtype` cannot be used with `return_atoms=True`"): to_dataframe(ifp_atoms, ["A", "B", "C"], dtype=int, return_atoms=True)
def test_to_df_drop_empty(): df = to_dataframe(ifp, ["A", "B", "C"], drop_empty=False) assert df.shape == (2, 9)
def test_to_df_dtype(dtype): df = to_dataframe(ifp, ["A", "B", "C"], dtype=dtype) assert df.dtypes[0].type is dtype assert df[("LIG", "ALA1", "A")][0] == dtype(True) assert df[("LIG", "ALA1", "B")][0] == dtype(False) assert df[("LIG", "ASP3", "B")][0] == dtype(False)