def test_first_feature_data_retained(self): d1 = pd.Series(['ACGT', 'ACCT'], index=['f1', 'f2']) d2 = pd.Series(['ACGAAA', 'ACCA'], index=['f1', 'f3']) obs = _merge_feature_data([d1, d2]) exp = pd.Series(['ACGT', 'ACCT', 'ACCA'], index=['f1', 'f2', 'f3']) pdt.assert_series_equal(obs, exp) # swapping input order changes f1 data obs = _merge_feature_data([d2, d1]) exp = pd.Series(['ACGAAA', 'ACCT', 'ACCA'], index=['f1', 'f2', 'f3']) pdt.assert_series_equal(obs, exp)
def test_multiple_overlapping_feature_ids_order_maintained(self): d1 = pd.Series(['ACGT', 'ACCT'], index=['f1', 'f2']) d2 = pd.Series(['ACGAAA', 'ACCA'], index=['f1', 'f3']) d3 = pd.Series(['AGGA', 'ATAT'], index=['f3', 'f4']) obs = _merge_feature_data([d1, d2, d3]) exp = pd.Series(['ACGT', 'ACCT', 'ACCA', 'ATAT'], index=['f1', 'f2', 'f3', 'f4']) pdt.assert_series_equal(obs, exp) # swapping input order changes f1 and f3 obs = _merge_feature_data([d3, d2, d1]) exp = pd.Series(['ACGAAA', 'ACCT', 'AGGA', 'ATAT'], index=['f1', 'f2', 'f3', 'f4']) pdt.assert_series_equal(obs, exp)
def test_valid_non_overlapping_feature_ids(self): d1 = pd.Series(['ACGT', 'ACCT'], index=['f1', 'f2']) d2 = pd.Series(['ACGT', 'ACCA'], index=['f3', 'f4']) obs = _merge_feature_data([d1, d2]) exp = pd.Series(['ACGT', 'ACCT', 'ACGT', 'ACCA'], index=['f1', 'f2', 'f3', 'f4']) pdt.assert_series_equal(obs, exp)
def test_merge_single(self): d = pd.Series(['ACGT', 'ACCT'], index=['f1', 'f2']) obs = _merge_feature_data([d]) pdt.assert_series_equal(obs, d)