diff --git a/rowers/dataroutines.py b/rowers/dataroutines.py index 083dce8d..40333cdf 100644 --- a/rowers/dataroutines.py +++ b/rowers/dataroutines.py @@ -193,7 +193,7 @@ def remove_nulls_pl(data): if not data.is_empty(): try: data = data.drop_nulls() - except: + except: # pragma: no cover pass return data @@ -401,7 +401,7 @@ def filter_df(datadf, fieldname, value, largerthan=True): mask = datadf[fieldname] >= value datadf.loc[mask, fieldname] = np.nan - except TypeError: + except TypeError: # pragma: no cover pass return datadf @@ -430,7 +430,7 @@ def clean_df_stats(datadf, workstrokesonly=True, ignorehr=True, except KeyError: try: datadf['workoutid'] = 0 - except TypeError: + except TypeError: # pragma: no cover datadf = datadf.with_columns(pl.lit(0).alias("workoutid")) before = {} @@ -525,7 +525,7 @@ def clean_df_stats(datadf, workstrokesonly=True, ignorehr=True, pass # clean data for useful ranges per column - if not ignorehr: + if not ignorehr: # pragma: no cover try: mask = datadf['hr'] < 30 datadf.mask(mask, inplace=True) @@ -676,7 +676,7 @@ def clean_df_stats(datadf, workstrokesonly=True, ignorehr=True, after = {} - if for_chart: + if for_chart: # pragma: no cover return datadf for workoutid in data_orig['workoutid'].unique(): after[workoutid] = len( @@ -685,22 +685,22 @@ def clean_df_stats(datadf, workstrokesonly=True, ignorehr=True, if ratio < 0.01 or after[workoutid] < 2: return data_orig - return datadf + return datadf # pragma: no cover -def replace_zeros_with_nan(x): +def replace_zeros_with_nan(x): # pragma: no cover return np.nan if x == 0 else x def clean_df_stats_pl(datadf, workstrokesonly=True, ignorehr=True, - ignoreadvanced=False, for_chart=False): + ignoreadvanced=False, for_chart=False): # pragma: no cover # clean data remove zeros and negative values try: _ = datadf['workoutid'].unique() - except KeyError: + except KeyError: # pragma: no cover try: datadf['workoutid'] = 0 except TypeError: datadf = datadf.with_columns(pl.lit(0).alias("workoutid")) - except ColumnNotFoundError: + except ColumnNotFoundError: # pragma: no cover datadf = datadf.with_columns(pl.lit(0).alias("workoutid")) before = {} @@ -711,23 +711,23 @@ def clean_df_stats_pl(datadf, workstrokesonly=True, ignorehr=True, data_orig = datadf.clone() # bring metrics which have negative values to positive domain - if len(datadf) == 0: + if len(datadf) == 0: # pragma: no cover return data_orig try: datadf = datadf.with_columns((-pl.col('catch')).alias('catch')) - except (KeyError, TypeError): + except (KeyError, TypeError): # pragma: no cover pass except(ComputeError, InvalidOperationError, ColumnNotFoundError): return data_orig - try: + try: # pragma: no cover datadf = datadf.with_columns((pl.col('peakforceangle')+1000).alias('peakforceangle')) except (KeyError, TypeError): pass except(ComputeError, InvalidOperationError, ColumnNotFoundError): return data_orig - try: + try: # pragma: no cover datadf = datadf.with_columns((pl.col('hr')+10).alias('hr')) except (KeyError, TypeError): pass @@ -735,7 +735,7 @@ def clean_df_stats_pl(datadf, workstrokesonly=True, ignorehr=True, return data_orig # protect 0 spm values from being nulled - try: + try: # pragma: no cover datadf = datadf.with_columns((pl.col('spm')+1.0).alias('spm')) except (KeyError, TypeError): pass @@ -743,14 +743,14 @@ def clean_df_stats_pl(datadf, workstrokesonly=True, ignorehr=True, return data_orig # protect 0 workoutstate values from being nulled - try: + try: # pragma: no cover datadf = datadf.with_columns((pl.col('workoutstate')+1).alias('workoutstate')) except (KeyError, TypeError): pass except(ComputeError, InvalidOperationError, ColumnNotFoundError): return data_orig - try: + try: # pragma: no cover datadf = datadf.select(pl.all().clip(lower_bound=0)) # datadf = datadf.clip(lower=0) except (TypeError): @@ -774,9 +774,9 @@ def clean_df_stats_pl(datadf, workstrokesonly=True, ignorehr=True, 'wash', 'peakforceangle', 'effectiveangle', - ] + ] # pragma: no cover - for col in datadf.columns: + for col in datadf.columns: # pragma: no cover datadf = datadf.with_columns( pl.when(datadf[col] == 0).then(pl.lit(np.nan)).otherwise(datadf[col]), name=col @@ -785,24 +785,24 @@ def clean_df_stats_pl(datadf, workstrokesonly=True, ignorehr=True, # datadf = datadf.map_partitions(lambda df:df.replace(to_replace=0,value=np.nan)) # bring spm back to real values - try: + try: # pragma: no cover datadf = datadf.with_columns((pl.col('spm')-1.0).alias('spm')) except (TypeError, KeyError): pass # bring workoutstate back to real values - try: + try: # pragma: no cover datadf = datadf.with_columns((pl.col('workoutstate')-1).alias('workoutstate')) except (TypeError, KeyError): pass # return from positive domain to negative - try: + try: # pragma: no cover datadf = datadf.with_columns((-pl.col('catch')).alias('catch')) except (KeyError, TypeError): pass - try: + try: # pragma: no cover datadf = datadf.with_columns((pl.col('peakforceangle')-1000).alias('peakforceangle')) except (KeyError, TypeError): pass diff --git a/rowers/tests/test_unit_tests.py b/rowers/tests/test_unit_tests.py index e1311d81..4903774b 100644 --- a/rowers/tests/test_unit_tests.py +++ b/rowers/tests/test_unit_tests.py @@ -705,7 +705,7 @@ class InteractivePlotTests(TestCase): @patch('rowers.dataprep.create_engine') @patch('rowers.dataprep.read_data', side_effect=mocked_read_data) def test_interactive_chart(self, mocked_sqlalchemy, - mocked_getsmallrowdata_db): + mocked_read_data): workout = Workout.objects.filter(user=self.r,workouttype__in=mytypes.rowtypes)[0] id = workout.id diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index ef4b2add..22b60c9f 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ