From 298a778e53d4417b4a0d9ef750dc4cb291591fc7 Mon Sep 17 00:00:00 2001 From: Konstantin Bochkarev Date: Fri, 29 Sep 2023 18:04:48 +0300 Subject: [PATCH 1/2] refactor: Improved getMaxValue function --- lib/src/util/datasets_util.dart | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/src/util/datasets_util.dart b/lib/src/util/datasets_util.dart index fa98e92..0a991ba 100644 --- a/lib/src/util/datasets_util.dart +++ b/lib/src/util/datasets_util.dart @@ -17,15 +17,11 @@ class DatasetsUtil { /// Get maximum value of [datasets]. static int getMaxValue(Map? datasets) { - int result = 0; - - datasets?.forEach((date, value) { - if (value > result) { - result = value; - } - }); + if (datasets == null || datasets.isEmpty) { + return 0; // Return 0 for empty or null datasets + } - return result; + return datasets.values.reduce((max, value) => value > max ? value : max); } /// Get color from [colorsets] using [dataValue]. From c336726f02a53badd8156ed86fadb2452d607d9c Mon Sep 17 00:00:00 2001 From: Konstantin Bochkarev Date: Fri, 29 Sep 2023 18:05:35 +0300 Subject: [PATCH 2/2] test: Add tests for getMaxValue function --- test/src/util/datasets_util_test.dart | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 test/src/util/datasets_util_test.dart diff --git a/test/src/util/datasets_util_test.dart b/test/src/util/datasets_util_test.dart new file mode 100644 index 0000000..8872a72 --- /dev/null +++ b/test/src/util/datasets_util_test.dart @@ -0,0 +1,33 @@ +import 'package:flutter_heatmap_calendar/src/util/datasets_util.dart'; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + test('getMaxValue returns the maximum value from the dataset', () { + final Map datasets = { + DateTime(2023, 9, 1): 10, + DateTime(2023, 9, 2): 20, + DateTime(2023, 9, 3): 5, + DateTime(2023, 9, 4): 15, + }; + + final result = DatasetsUtil.getMaxValue(datasets); + + expect(result, 20); // The maximum value in the dataset is 20 + }); + + test('getMaxValue handles an empty dataset and returns 0', () { + final Map emptyDataset = {}; + + final result = DatasetsUtil.getMaxValue(emptyDataset); + + expect(result, 0); // The dataset is empty, so the result should be 0 + }); + + test('getMaxValue handles a null dataset and returns 0', () { + const Map? nullDataset = null; + + final result = DatasetsUtil.getMaxValue(nullDataset); + + expect(result, 0); // The dataset is null, so the result should be 0 + }); +}