From 67f727867c81497ccc172057ead2780b45e7784e Mon Sep 17 00:00:00 2001 From: Roland Geider Date: Sun, 5 Nov 2023 14:52:35 +0100 Subject: [PATCH] Some improvements to interval handling --- lib/helpers/charts.dart | 5 +++-- lib/widgets/core/charts.dart | 4 +++- test/measurements/measurement_entries_screen_test.dart | 10 +++++----- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/helpers/charts.dart b/lib/helpers/charts.dart index 522d059d..64a0b6e8 100644 --- a/lib/helpers/charts.dart +++ b/lib/helpers/charts.dart @@ -1,4 +1,5 @@ -double chartGetInterval(DateTime first, DateTime last, {divider: 3}) { +double chartGetInterval(DateTime first, DateTime last, {divider = 3}) { final dayDiff = last.difference(first); - return dayDiff.inMilliseconds.toDouble() / 3; + + return dayDiff.inMilliseconds == 0 ? 1000 : dayDiff.inMilliseconds.abs() / divider; } diff --git a/lib/widgets/core/charts.dart b/lib/widgets/core/charts.dart index 0b62ed2d..1a33cf98 100644 --- a/lib/widgets/core/charts.dart +++ b/lib/widgets/core/charts.dart @@ -93,7 +93,9 @@ class _MeasurementChartWidgetFlState extends State { DateFormat.yMd(Localizations.localeOf(context).languageCode).format(date), ); }, - interval: chartGetInterval(widget._entries.last.date, widget._entries.first.date), + interval: widget._entries.isNotEmpty + ? chartGetInterval(widget._entries.last.date, widget._entries.first.date) + : 1000, ), ), leftTitles: AxisTitles( diff --git a/test/measurements/measurement_entries_screen_test.dart b/test/measurements/measurement_entries_screen_test.dart index 6182ab37..321a94bf 100644 --- a/test/measurements/measurement_entries_screen_test.dart +++ b/test/measurements/measurement_entries_screen_test.dart @@ -73,8 +73,8 @@ void main() { expect(find.text('body fat'), findsOneWidget); // Entries - expect(find.text('10.2 %'), findsOneWidget); - expect(find.text('18.1 %'), findsOneWidget); + expect(find.text('10.2 %'), findsNWidgets(2)); + expect(find.text('18.1 %'), findsNWidgets(2)); }); testWidgets('Tests the localization of dates - EN', (WidgetTester tester) async { @@ -83,8 +83,8 @@ void main() { await tester.pumpAndSettle(); // From the entries list and from the chart - expect(find.text('8/1/2021'), findsNWidgets(3)); - expect(find.text('8/10/2021'), findsNWidgets(2)); + expect(find.text('8/1/2021'), findsNWidgets(2)); + expect(find.text('8/10/2021'), findsOneWidget); }); testWidgets('Tests the localization of dates - DE', (WidgetTester tester) async { @@ -92,7 +92,7 @@ void main() { await tester.tap(find.byType(TextButton)); await tester.pumpAndSettle(); - expect(find.text('1.8.2021'), findsOneWidget); + expect(find.text('1.8.2021'), findsNWidgets(2)); expect(find.text('10.8.2021'), findsOneWidget); }); }