def test_all_level_stacks(self, crandall_data_array): """ Test stacking the data array on all supported levels, and that it can be unstacked. """ # get a dataframe which splits network, station, location, and chan seed_df = get_seed_id_df(crandall_data_array) # iterate each level and stack, then unstack for level in seed_df.columns: dar1 = crandall_data_array.copy() dar2 = dar1.ops.stack_seed(level) assert len(dar2[level]) == len(seed_df[level].unique()) assert (~dar1.isnull()).sum() == (~dar2.isnull()).sum() # unstack, ensure dataarrays are equal and such dar3 = dar2.ops.unstack_seed() assert dar1.shape == dar3.shape assert dar1.dims == dar3.dims # all elements should be equal or null assert ((dar1.values == dar3.values) | dar3.isnull().values).all()
def test_sliced_by_one_seed(self, sliced_by_seed): """ ensure only the selected seed is taken """ df = get_seed_id_df(sliced_by_seed) assert len(df) == 1 expected = set([self.default_seed_id]) assert expected == set(sliced_by_seed.seed_id.values)
def test_slice_by_wild(self, sliced_by_wildcard): """ ensure the wildcard sloce works """ df = get_seed_id_df(sliced_by_wildcard) assert set(df.channel.values) == set(["EHZ"])
def test_iter_station(self, many_sid_array): """ ensure iterstation works """ for dar in many_sid_array.ops.iter_seed("station"): df = get_seed_id_df(dar) assert len(df.station.unique()) == 1