Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 4 additions & 8 deletions lib/src/util/datasets_util.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,11 @@ class DatasetsUtil {

/// Get maximum value of [datasets].
static int getMaxValue(Map<DateTime, int>? 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].
Expand Down
33 changes: 33 additions & 0 deletions test/src/util/datasets_util_test.dart
Original file line number Diff line number Diff line change
@@ -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<DateTime, int> 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<DateTime, int> 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<DateTime, int>? nullDataset = null;

final result = DatasetsUtil.getMaxValue(nullDataset);

expect(result, 0); // The dataset is null, so the result should be 0
});
}