def test_read_fit_course(example): course = sweat.read_fit(example.path) assert isinstance(course, pd.DataFrame) assert isinstance(course.index, pd.DatetimeIndex) included_data = set(i.value for i in example.included_data) assert included_data <= set(course.columns.to_list())
def test_accessor_time_in_zone(self): example = sweat.examples(path="4078723797.fit") data = sweat.read_fit(example.path) time_in_zone = data["heartrate"].sweat.time_in_zone( [0, 100, 150, np.inf], ["zone 1", "zone 2", "zone 3"]) assert set(time_in_zone.index.unique()) == set( ["zone 1", "zone 2", "zone 3"])
def test_accessor_compute_zones(self): example = sweat.examples(path="4078723797.fit") data = sweat.read_fit(example.path) zones = data["heartrate"].sweat.calculate_zones( [0, 100, 150, np.inf], ["zone 1", "zone 2", "zone 3"]) assert len(zones) == len(data) assert set(zones.unique()) == set(["zone 1", "zone 2", "zone 3"])
def test_accessor(self): example = sweat.examples(path="4078723797.fit") data = sweat.read_fit(example.path) mean_max_data = data.sweat.mean_max("power") assert isinstance(mean_max_data, pd.DataFrame) assert isinstance(mean_max_data.index, pd.TimedeltaIndex) assert "mean_max_power" in mean_max_data.columns assert len(mean_max_data) == len(data) - 1
def test_accessor_relative_index(self): example = sweat.examples(path="4078723797.fit") data = sweat.read_fit(example.path) data = data["power"].sweat.to_timedelta_index() assert isinstance(data, pd.Series) assert isinstance(data.index, pd.TimedeltaIndex) assert data.name == "power"
def test_accessor(self): example = sweat.examples(path="4078723797.fit") data = sweat.read_fit(example.path) mean_max = data["power"].sweat.mean_max() assert isinstance(mean_max, pd.Series) assert isinstance(mean_max.index, pd.TimedeltaIndex) assert mean_max.name == "mean_max_power" assert len(mean_max) == len(data) - 1
def test_accessor_relative_index(self): example = sweat.examples(path="4078723797.fit") data = sweat.read_fit(example.path) data = data.sweat.to_timedelta_index() assert isinstance(data, pd.DataFrame) assert isinstance(data.index, pd.TimedeltaIndex) assert "power" in data.columns
def test_accessor_not_1hz(self): example = sweat.examples(path="2020-06-01-16-52-40.fit") data = sweat.read_fit(example.path) with pytest.raises(AttributeError): data["power"].sweat.mean_max()
def test_read_fit_no_fit(): example_tcx = sweat.examples(path="activity_4078723797.tcx") with pytest.raises(exceptions.InvalidFitFile): sweat.read_fit(example_tcx.path)
def read_fit_file_py(f): d = read_fit(f) d = d.reset_index() return d