Commit f336be3

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2024-03-15 17:31:40
remove unnecessary groups from model tests
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent 722aef8
test/model/export_import/csv_converter_test.dart
@@ -11,299 +11,297 @@ import 'package:flutter/material.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 void main() {
-  group('CsvConverter', () {
-    test('should create csv string bigger than 0', () {
-      final converter = CsvConverter(CsvExportSettings(), ExportColumnsManager());
-      final csv = converter.create(createRecords());
-      expect(csv.length, isNonZero);
-    });
+  test('should create csv string bigger than 0', () {
+    final converter = CsvConverter(CsvExportSettings(), ExportColumnsManager());
+    final csv = converter.create(createRecords());
+    expect(csv.length, isNonZero);
+  });
 
-    test('should create first line', () {
-      final converter = CsvConverter(CsvExportSettings(), ExportColumnsManager());
-      final csv = converter.create([]);
-      final columns = CsvExportSettings().exportFieldsConfiguration.getActiveColumns(ExportColumnsManager());
-      expect(csv, stringContainsInOrder(columns.map((e) => e.csvTitle).toList()));
-    });
+  test('should create first line', () {
+    final converter = CsvConverter(CsvExportSettings(), ExportColumnsManager());
+    final csv = converter.create([]);
+    final columns = CsvExportSettings().exportFieldsConfiguration.getActiveColumns(ExportColumnsManager());
+    expect(csv, stringContainsInOrder(columns.map((e) => e.csvTitle).toList()));
+  });
 
-    test('should not create first line when setting is off', () {
-      final converter = CsvConverter(
-          CsvExportSettings(exportHeadline: false),
-          ExportColumnsManager(),
-      );
-      final csv = converter.create([]);
-      final columns = CsvExportSettings().exportFieldsConfiguration.getActiveColumns(ExportColumnsManager());
-      expect(csv, isNot(stringContainsInOrder(columns.map((e) => e.csvTitle).toList())));
-    });
+  test('should not create first line when setting is off', () {
+    final converter = CsvConverter(
+        CsvExportSettings(exportHeadline: false),
+        ExportColumnsManager(),
+    );
+    final csv = converter.create([]);
+    final columns = CsvExportSettings().exportFieldsConfiguration.getActiveColumns(ExportColumnsManager());
+    expect(csv, isNot(stringContainsInOrder(columns.map((e) => e.csvTitle).toList())));
+  });
 
-    test('should be able to recreate records from csv in default configuration', () {
-      final converter = CsvConverter(CsvExportSettings(), ExportColumnsManager());
-      final initialRecords = createRecords();
-      final csv = converter.create(initialRecords);
-      final parsedRecords = converter.parse(csv).getOr(failParse);
-      
-      expect(parsedRecords, pairwiseCompare(initialRecords,
-            (p0, BloodPressureRecord p1) =>
-                  p0.creationTime == p1.creationTime &&
-                  p0.systolic == p1.systolic &&
-                  p0.diastolic == p1.diastolic &&
-                  p0.pulse == p1.pulse &&
-                  p0.notes == p1.notes &&
-                  p0.needlePin?.color == p1.needlePin?.color,
-            'equal to',),);
-    });
-    test('should allow partial imports', () {
-      final text = File('test/model/export_import/exported_formats/incomplete_export.csv').readAsStringSync();
+  test('should be able to recreate records from csv in default configuration', () {
+    final converter = CsvConverter(CsvExportSettings(), ExportColumnsManager());
+    final initialRecords = createRecords();
+    final csv = converter.create(initialRecords);
+    final parsedRecords = converter.parse(csv).getOr(failParse);
 
-      final converter = CsvConverter(
-          CsvExportSettings(),
-          ExportColumnsManager(),
-      );
-      final parsed = converter.parse(text);
-      final records = parsed.getOr(failParse);
-      expect(records, isNotNull);
-      expect(records.length, 3);
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703239921194)
-          .having((p0) => p0.systolic, 'systolic', null)
-          .having((p0) => p0.diastolic, 'diastolic', null)
-          .having((p0) => p0.pulse, 'pulse', null)
-          .having((p0) => p0.notes, 'notes', 'note')
-          .having((p0) => p0.needlePin, 'pin', null),
-      ),);
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703239908244)
-          .having((p0) => p0.systolic, 'systolic', null)
-          .having((p0) => p0.diastolic, 'diastolic', 45)
-          .having((p0) => p0.pulse, 'pulse', null)
-          .having((p0) => p0.notes, 'notes', 'test')
-          .having((p0) => p0.needlePin, 'pin', null),
-      ),);
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703239905395)
-          .having((p0) => p0.systolic, 'systolic', 123)
-          .having((p0) => p0.diastolic, 'diastolic', null)
-          .having((p0) => p0.pulse, 'pulse', null)
-          .having((p0) => p0.notes, 'notes', '')
-          .having((p0) => p0.needlePin, 'pin', null),
-      ),);
-    });
+    expect(parsedRecords, pairwiseCompare(initialRecords,
+          (p0, BloodPressureRecord p1) =>
+                p0.creationTime == p1.creationTime &&
+                p0.systolic == p1.systolic &&
+                p0.diastolic == p1.diastolic &&
+                p0.pulse == p1.pulse &&
+                p0.notes == p1.notes &&
+                p0.needlePin?.color == p1.needlePin?.color,
+          'equal to',),);
+  });
+  test('should allow partial imports', () {
+    final text = File('test/model/export_import/exported_formats/incomplete_export.csv').readAsStringSync();
 
+    final converter = CsvConverter(
+        CsvExportSettings(),
+        ExportColumnsManager(),
+    );
+    final parsed = converter.parse(text);
+    final records = parsed.getOr(failParse);
+    expect(records, isNotNull);
+    expect(records.length, 3);
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703239921194)
+        .having((p0) => p0.systolic, 'systolic', null)
+        .having((p0) => p0.diastolic, 'diastolic', null)
+        .having((p0) => p0.pulse, 'pulse', null)
+        .having((p0) => p0.notes, 'notes', 'note')
+        .having((p0) => p0.needlePin, 'pin', null),
+    ),);
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703239908244)
+        .having((p0) => p0.systolic, 'systolic', null)
+        .having((p0) => p0.diastolic, 'diastolic', 45)
+        .having((p0) => p0.pulse, 'pulse', null)
+        .having((p0) => p0.notes, 'notes', 'test')
+        .having((p0) => p0.needlePin, 'pin', null),
+    ),);
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703239905395)
+        .having((p0) => p0.systolic, 'systolic', 123)
+        .having((p0) => p0.diastolic, 'diastolic', null)
+        .having((p0) => p0.pulse, 'pulse', null)
+        .having((p0) => p0.notes, 'notes', '')
+        .having((p0) => p0.needlePin, 'pin', null),
+    ),);
+  });
 
-    test('should import v1.0.0 measurements', () {
-      final text = File('test/model/export_import/exported_formats/v1.0.csv').readAsStringSync();
 
-      final converter = CsvConverter(
-          CsvExportSettings(),
-          ExportColumnsManager(),
-      );
-      final parsed = converter.parse(text);
-      final records = parsed.getOr(failParse);
-      expect(records, isNotNull);
-      expect(records.length, 2);
-      expect(records, everyElement(isA<BloodPressureRecord>()));
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175660000)
-          .having((p0) => p0.systolic, 'systolic', 312)
-          .having((p0) => p0.diastolic, 'diastolic', 315)
-          .having((p0) => p0.pulse, 'pulse', 46)
-          .having((p0) => p0.notes.trim(), 'notes', 'testfkajkfb'),
-      ),);
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175600000)
-          .having((p0) => p0.systolic, 'systolic', 123)
-          .having((p0) => p0.diastolic, 'diastolic', 41)
-          .having((p0) => p0.pulse, 'pulse', 43)
-          .having((p0) => p0.notes.trim(), 'notes', '1214s3'),
-      ),);
-    });
-    test('should import v1.1.0 measurements', () {
-      final text = File('test/model/export_import/exported_formats/v1.1.0').readAsStringSync();
+  test('should import v1.0.0 measurements', () {
+    final text = File('test/model/export_import/exported_formats/v1.0.csv').readAsStringSync();
 
-      final converter = CsvConverter(
-          CsvExportSettings(),
-          ExportColumnsManager(),
-      );
-      final parsed = converter.parse(text);
-      final records = parsed.getOr(failParse);
-      expect(records, isNotNull);
-      expect(records.length, 4);
-      expect(records, everyElement(isA<BloodPressureRecord>()));
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175660000)
-          .having((p0) => p0.systolic, 'systolic', 312)
-          .having((p0) => p0.diastolic, 'diastolic', 315)
-          .having((p0) => p0.pulse, 'pulse', 46)
-          .having((p0) => p0.notes.trim(), 'notes', 'testfkajkfb'),
-      ),);
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175600000)
-          .having((p0) => p0.systolic, 'systolic', 123)
-          .having((p0) => p0.diastolic, 'diastolic', 41)
-          .having((p0) => p0.pulse, 'pulse', 43)
-          .having((p0) => p0.notes.trim(), 'notes', '1214s3'),
-      ),);
-    });
-    test('should import v1.4.0 measurements', () {
-      final text = File('test/model/export_import/exported_formats/v1.4.0.CSV').readAsStringSync();
+    final converter = CsvConverter(
+        CsvExportSettings(),
+        ExportColumnsManager(),
+    );
+    final parsed = converter.parse(text);
+    final records = parsed.getOr(failParse);
+    expect(records, isNotNull);
+    expect(records.length, 2);
+    expect(records, everyElement(isA<BloodPressureRecord>()));
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175660000)
+        .having((p0) => p0.systolic, 'systolic', 312)
+        .having((p0) => p0.diastolic, 'diastolic', 315)
+        .having((p0) => p0.pulse, 'pulse', 46)
+        .having((p0) => p0.notes.trim(), 'notes', 'testfkajkfb'),
+    ),);
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175600000)
+        .having((p0) => p0.systolic, 'systolic', 123)
+        .having((p0) => p0.diastolic, 'diastolic', 41)
+        .having((p0) => p0.pulse, 'pulse', 43)
+        .having((p0) => p0.notes.trim(), 'notes', '1214s3'),
+    ),);
+  });
+  test('should import v1.1.0 measurements', () {
+    final text = File('test/model/export_import/exported_formats/v1.1.0').readAsStringSync();
 
-      final converter = CsvConverter(
-          CsvExportSettings(),
-          ExportColumnsManager(),
-      );
-      final parsed = converter.parse(text);
-      final records = parsed.getOr(failParse);
-      expect(records, isNotNull);
-      expect(records.length, 186);
-      expect(records, everyElement(isA<BloodPressureRecord>()));
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175660000)
-          .having((p0) => p0.systolic, 'systolic', 312)
-          .having((p0) => p0.diastolic, 'diastolic', 315)
-          .having((p0) => p0.pulse, 'pulse', 46)
-          .having((p0) => p0.notes, 'notes', 'testfkajkfb'),
-      ),);
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175600000)
-          .having((p0) => p0.systolic, 'systolic', 123)
-          .having((p0) => p0.diastolic, 'diastolic', 41)
-          .having((p0) => p0.pulse, 'pulse', 43)
-          .having((p0) => p0.notes, 'notes', '1214s3'),
-      ),);
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 10893142303200)
-          .having((p0) => p0.systolic, 'systolic', 106)
-          .having((p0) => p0.diastolic, 'diastolic', 77)
-          .having((p0) => p0.pulse, 'pulse', 53)
-          .having((p0) => p0.notes, 'notes', ''),
-      ),);
-    });
-    test('should import v1.5.1 measurements', () {
-      final text = File('test/model/export_import/exported_formats/v1.5.1.csv').readAsStringSync();
+    final converter = CsvConverter(
+        CsvExportSettings(),
+        ExportColumnsManager(),
+    );
+    final parsed = converter.parse(text);
+    final records = parsed.getOr(failParse);
+    expect(records, isNotNull);
+    expect(records.length, 4);
+    expect(records, everyElement(isA<BloodPressureRecord>()));
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175660000)
+        .having((p0) => p0.systolic, 'systolic', 312)
+        .having((p0) => p0.diastolic, 'diastolic', 315)
+        .having((p0) => p0.pulse, 'pulse', 46)
+        .having((p0) => p0.notes.trim(), 'notes', 'testfkajkfb'),
+    ),);
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175600000)
+        .having((p0) => p0.systolic, 'systolic', 123)
+        .having((p0) => p0.diastolic, 'diastolic', 41)
+        .having((p0) => p0.pulse, 'pulse', 43)
+        .having((p0) => p0.notes.trim(), 'notes', '1214s3'),
+    ),);
+  });
+  test('should import v1.4.0 measurements', () {
+    final text = File('test/model/export_import/exported_formats/v1.4.0.CSV').readAsStringSync();
 
-      final converter = CsvConverter(
-          CsvExportSettings(),
-          ExportColumnsManager(),
-      );
-      final parsed = converter.parse(text);
-      final records = parsed.getOr(failParse);
-      expect(records, isNotNull);
-      expect(records.length, 185);
-      expect(records, everyElement(isA<BloodPressureRecord>()));
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175660000)
-          .having((p0) => p0.systolic, 'systolic', 312)
-          .having((p0) => p0.diastolic, 'diastolic', 315)
-          .having((p0) => p0.pulse, 'pulse', 46)
-          .having((p0) => p0.notes, 'notes', 'testfkajkfb')
-          .having((p0) => p0.needlePin, 'pin', null),
-      ),);
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175600000)
-          .having((p0) => p0.systolic, 'systolic', 123)
-          .having((p0) => p0.diastolic, 'diastolic', 41)
-          .having((p0) => p0.pulse, 'pulse', 43)
-          .having((p0) => p0.notes, 'notes', '1214s3')
-          .having((p0) => p0.needlePin, 'pin', null),
-      ),);
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1077625200000)
-          .having((p0) => p0.systolic, 'systolic', 100)
-          .having((p0) => p0.diastolic, 'diastolic', 82)
-          .having((p0) => p0.pulse, 'pulse', 63)
-          .having((p0) => p0.notes, 'notes', '')
-          .having((p0) => p0.needlePin, 'pin', null),
-      ),);
-    });
-    test('should import v1.5.7 measurements', () {
-      final text = File('test/model/export_import/exported_formats/v1.5.7.csv').readAsStringSync();
+    final converter = CsvConverter(
+        CsvExportSettings(),
+        ExportColumnsManager(),
+    );
+    final parsed = converter.parse(text);
+    final records = parsed.getOr(failParse);
+    expect(records, isNotNull);
+    expect(records.length, 186);
+    expect(records, everyElement(isA<BloodPressureRecord>()));
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175660000)
+        .having((p0) => p0.systolic, 'systolic', 312)
+        .having((p0) => p0.diastolic, 'diastolic', 315)
+        .having((p0) => p0.pulse, 'pulse', 46)
+        .having((p0) => p0.notes, 'notes', 'testfkajkfb'),
+    ),);
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175600000)
+        .having((p0) => p0.systolic, 'systolic', 123)
+        .having((p0) => p0.diastolic, 'diastolic', 41)
+        .having((p0) => p0.pulse, 'pulse', 43)
+        .having((p0) => p0.notes, 'notes', '1214s3'),
+    ),);
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 10893142303200)
+        .having((p0) => p0.systolic, 'systolic', 106)
+        .having((p0) => p0.diastolic, 'diastolic', 77)
+        .having((p0) => p0.pulse, 'pulse', 53)
+        .having((p0) => p0.notes, 'notes', ''),
+    ),);
+  });
+  test('should import v1.5.1 measurements', () {
+    final text = File('test/model/export_import/exported_formats/v1.5.1.csv').readAsStringSync();
 
-      final converter = CsvConverter(
-          CsvExportSettings(),
-          ExportColumnsManager(),
-      );
-      final parsed = converter.parse(text);
-      final records = parsed.getOr(failParse);
-      expect(records, isNotNull);
-      expect(records.length, 185);
-      expect(records, everyElement(isA<BloodPressureRecord>()));
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175660000)
-          .having((p0) => p0.systolic, 'systolic', 312)
-          .having((p0) => p0.diastolic, 'diastolic', 315)
-          .having((p0) => p0.pulse, 'pulse', 46)
-          .having((p0) => p0.notes, 'notes', 'testfkajkfb')
-          .having((p0) => p0.needlePin, 'pin', null),
-      ),);
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175600000)
-          .having((p0) => p0.systolic, 'systolic', 123)
-          .having((p0) => p0.diastolic, 'diastolic', 41)
-          .having((p0) => p0.pulse, 'pulse', 43)
-          .having((p0) => p0.notes, 'notes', '1214s3')
-          .having((p0) => p0.needlePin, 'pin', null),
-      ),);
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1077625200000)
-          .having((p0) => p0.systolic, 'systolic', 100)
-          .having((p0) => p0.diastolic, 'diastolic', 82)
-          .having((p0) => p0.pulse, 'pulse', 63)
-          .having((p0) => p0.notes, 'notes', '')
-          .having((p0) => p0.needlePin, 'pin', null),
-      ),);
-      // TODO: test color
-    });
-    test('should import v1.5.8 measurements', () {
-      final text = File('test/model/export_import/exported_formats/v1.5.8.csv').readAsStringSync();
+    final converter = CsvConverter(
+        CsvExportSettings(),
+        ExportColumnsManager(),
+    );
+    final parsed = converter.parse(text);
+    final records = parsed.getOr(failParse);
+    expect(records, isNotNull);
+    expect(records.length, 185);
+    expect(records, everyElement(isA<BloodPressureRecord>()));
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175660000)
+        .having((p0) => p0.systolic, 'systolic', 312)
+        .having((p0) => p0.diastolic, 'diastolic', 315)
+        .having((p0) => p0.pulse, 'pulse', 46)
+        .having((p0) => p0.notes, 'notes', 'testfkajkfb')
+        .having((p0) => p0.needlePin, 'pin', null),
+    ),);
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175600000)
+        .having((p0) => p0.systolic, 'systolic', 123)
+        .having((p0) => p0.diastolic, 'diastolic', 41)
+        .having((p0) => p0.pulse, 'pulse', 43)
+        .having((p0) => p0.notes, 'notes', '1214s3')
+        .having((p0) => p0.needlePin, 'pin', null),
+    ),);
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1077625200000)
+        .having((p0) => p0.systolic, 'systolic', 100)
+        .having((p0) => p0.diastolic, 'diastolic', 82)
+        .having((p0) => p0.pulse, 'pulse', 63)
+        .having((p0) => p0.notes, 'notes', '')
+        .having((p0) => p0.needlePin, 'pin', null),
+    ),);
+  });
+  test('should import v1.5.7 measurements', () {
+    final text = File('test/model/export_import/exported_formats/v1.5.7.csv').readAsStringSync();
+
+    final converter = CsvConverter(
+        CsvExportSettings(),
+        ExportColumnsManager(),
+    );
+    final parsed = converter.parse(text);
+    final records = parsed.getOr(failParse);
+    expect(records, isNotNull);
+    expect(records.length, 185);
+    expect(records, everyElement(isA<BloodPressureRecord>()));
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175660000)
+        .having((p0) => p0.systolic, 'systolic', 312)
+        .having((p0) => p0.diastolic, 'diastolic', 315)
+        .having((p0) => p0.pulse, 'pulse', 46)
+        .having((p0) => p0.notes, 'notes', 'testfkajkfb')
+        .having((p0) => p0.needlePin, 'pin', null),
+    ),);
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175600000)
+        .having((p0) => p0.systolic, 'systolic', 123)
+        .having((p0) => p0.diastolic, 'diastolic', 41)
+        .having((p0) => p0.pulse, 'pulse', 43)
+        .having((p0) => p0.notes, 'notes', '1214s3')
+        .having((p0) => p0.needlePin, 'pin', null),
+    ),);
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1077625200000)
+        .having((p0) => p0.systolic, 'systolic', 100)
+        .having((p0) => p0.diastolic, 'diastolic', 82)
+        .having((p0) => p0.pulse, 'pulse', 63)
+        .having((p0) => p0.notes, 'notes', '')
+        .having((p0) => p0.needlePin, 'pin', null),
+    ),);
+    // TODO: test color
+  });
+  test('should import v1.5.8 measurements', () {
+    final text = File('test/model/export_import/exported_formats/v1.5.8.csv').readAsStringSync();
 
-      final converter = CsvConverter(
-          CsvExportSettings(),
-          ExportColumnsManager(),
-      );
-      final parsed = converter.parse(text);
-      final records = parsed.getOr(failParse);
-      expect(records, isNotNull);
-      expect(records.length, 9478);
-      expect(records, everyElement(isA<BloodPressureRecord>()));
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175193324)
-          .having((p0) => p0.systolic, 'systolic', 123)
-          .having((p0) => p0.diastolic, 'diastolic', 43)
-          .having((p0) => p0.pulse, 'pulse', 53)
-          .having((p0) => p0.notes, 'notes', 'sdfsdfds')
-          .having((p0) => p0.needlePin?.color, 'pin', const Color(0xff69f0ae)),
-      ),);
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1702883511000)
-          .having((p0) => p0.systolic, 'systolic', 114)
-          .having((p0) => p0.diastolic, 'diastolic', 71)
-          .having((p0) => p0.pulse, 'pulse', 66)
-          .having((p0) => p0.notes, 'notes', 'fsaf &_*ยข|^โœ“[=%ยฎยฉ')
-          .having((p0) => p0.needlePin?.color.value, 'pin', Colors.lightGreen.value),
-      ),);
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1701034952000)
-          .having((p0) => p0.systolic, 'systolic', 125)
-          .having((p0) => p0.diastolic, 'diastolic', 77)
-          .having((p0) => p0.pulse, 'pulse', 60)
-          .having((p0) => p0.notes, 'notes', '')
-          .having((p0) => p0.needlePin, 'pin', null),
-      ),);
-      expect(records, anyElement(isA<BloodPressureRecord>()
-          .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1077625200000)
-          .having((p0) => p0.systolic, 'systolic', 100)
-          .having((p0) => p0.diastolic, 'diastolic', 82)
-          .having((p0) => p0.pulse, 'pulse', 63)
-          .having((p0) => p0.notes, 'notes', '')
-          .having((p0) => p0.needlePin, 'pin', null),
-      ),);
-      // TODO: test time columns
-    });
+    final converter = CsvConverter(
+        CsvExportSettings(),
+        ExportColumnsManager(),
+    );
+    final parsed = converter.parse(text);
+    final records = parsed.getOr(failParse);
+    expect(records, isNotNull);
+    expect(records.length, 9478);
+    expect(records, everyElement(isA<BloodPressureRecord>()));
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1703175193324)
+        .having((p0) => p0.systolic, 'systolic', 123)
+        .having((p0) => p0.diastolic, 'diastolic', 43)
+        .having((p0) => p0.pulse, 'pulse', 53)
+        .having((p0) => p0.notes, 'notes', 'sdfsdfds')
+        .having((p0) => p0.needlePin?.color, 'pin', const Color(0xff69f0ae)),
+    ),);
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1702883511000)
+        .having((p0) => p0.systolic, 'systolic', 114)
+        .having((p0) => p0.diastolic, 'diastolic', 71)
+        .having((p0) => p0.pulse, 'pulse', 66)
+        .having((p0) => p0.notes, 'notes', 'fsaf &_*ยข|^โœ“[=%ยฎยฉ')
+        .having((p0) => p0.needlePin?.color.value, 'pin', Colors.lightGreen.value),
+    ),);
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1701034952000)
+        .having((p0) => p0.systolic, 'systolic', 125)
+        .having((p0) => p0.diastolic, 'diastolic', 77)
+        .having((p0) => p0.pulse, 'pulse', 60)
+        .having((p0) => p0.notes, 'notes', '')
+        .having((p0) => p0.needlePin, 'pin', null),
+    ),);
+    expect(records, anyElement(isA<BloodPressureRecord>()
+        .having((p0) => p0.creationTime.millisecondsSinceEpoch, 'timestamp', 1077625200000)
+        .having((p0) => p0.systolic, 'systolic', 100)
+        .having((p0) => p0.diastolic, 'diastolic', 82)
+        .having((p0) => p0.pulse, 'pulse', 63)
+        .having((p0) => p0.notes, 'notes', '')
+        .having((p0) => p0.needlePin, 'pin', null),
+    ),);
+    // TODO: test time columns
   });
 }
 
 List<BloodPressureRecord> createRecords([int count = 20]) => [
   for (int i = 0; i<count; i++)
-    BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(123456 + i), 
+    BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(123456 + i),
         i, 100+i, 200+1, 'note $i', needlePin: MeasurementNeedlePin(Color(123+i)),),
 ];
 
test/model/export_import/export_columns_store_test.dart
@@ -4,107 +4,105 @@ import 'package:blood_pressure_app/model/storage/export_columns_store.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 void main() {
-  group('ExportColumnsManager', () {
-    test('should get user column by id', () {
-      final manager = ExportColumnsManager();
-      final column = UserColumn('customColumn', '', '');
-      manager.addOrUpdate(column);
-      final returnedColumn = manager.getColumn(column.internalIdentifier);
-      expect(returnedColumn, column);
-    });
-    test('should get NativeColumn by id', () {
-      final manager = ExportColumnsManager();
-      final column = NativeColumn.allColumns.first;
-      final returnedColumn = manager.getColumn(column.internalIdentifier);
-      expect(returnedColumn, column);
-    });
-    test('should get BuildInColumn by id', () {
-      final manager = ExportColumnsManager();
-      final column = BuildInColumn.allColumns.first;
-      final returnedColumn = manager.getColumn(column.internalIdentifier);
-      expect(returnedColumn, column);
-    });
-    test('should allow adding columns', () async {
-      final manager = ExportColumnsManager();
-      final c1 = UserColumn('test', 'test', '\$SYS');
-      final c2 = UserColumn('test2', 'test2', '234');
-      manager.addOrUpdate(c1);
-      manager.addOrUpdate(c2);
-      manager.addOrUpdate(UserColumn('test', 'testx', ''));
-
-      expect(manager.userColumns.length, 2);
-      expect(manager.userColumns[c1.internalIdentifier]?.csvTitle, 'testx');
-      expect(manager.userColumns[c2.internalIdentifier]?.csvTitle, 'test2');
-    });
-
-    test('should restore TimeColumns from configurations', () {
-      final initialManager = ExportColumnsManager();
-      initialManager.addOrUpdate(TimeColumn('testA', 'dd'));
-      initialManager.addOrUpdate(TimeColumn('testB', 'mmm'));
-      initialManager.addOrUpdate(TimeColumn('testC', 'asdsa'));
-
-      expect(initialManager.userColumns.length, 3);
-      expect(initialManager.userColumns.values, everyElement(isA<TimeColumn>()));
-
-      final fromJson = ExportColumnsManager.fromJson(initialManager.toJson());
-      expect(fromJson.userColumns.length, 3);
-      expect(fromJson.userColumns.values, everyElement(isA<TimeColumn>()));
-    });
-
-    test('should delete columns', () {
-      final manger = ExportColumnsManager();
-      final c1 = UserColumn('test', 'test', '\$SYS');
-      final c2 = TimeColumn('testA', 'dd');
-      manger.addOrUpdate(c1);
-      manger.addOrUpdate(c2);
-
-      expect(manger.userColumns.length, 2);
-      expect(() => manger.deleteUserColumn('none'), throwsAssertionError);
-      expect(manger.userColumns.length, 2);
-
-      manger.deleteUserColumn(c1.internalIdentifier);
-      expect(manger.userColumns.length, 1);
-      expect(() => manger.deleteUserColumn(c1.internalIdentifier), throwsAssertionError);
-      expect(manger.userColumns.length, 1);
-
-      manger.deleteUserColumn(c2.internalIdentifier);
-      expect(manger.userColumns.length, 0);
-    });
-
-    test('should include all columns in firstWhere search', () {
-      final manger = ExportColumnsManager();
-      final c1 = UserColumn('test', 'test', '\$SYS');
-      final c2 = TimeColumn('testA', 'dd');
-      manger.addOrUpdate(c1);
-      manger.addOrUpdate(c2);
-
-      expect(manger.firstWhere((p0) => p0.internalIdentifier == c1.internalIdentifier), c1);
-      expect(manger.firstWhere((p0) => p0.internalIdentifier == c2.internalIdentifier), c2);
-      expect(manger.firstWhere((p0) => p0.csvTitle == c2.csvTitle), c2);
-      expect(manger.firstWhere((p0) => p0.formatPattern == c1.formatPattern), c1);
-
-      expect(manger.firstWhere((p0) => p0.csvTitle == NativeColumn.timestampUnixMs.csvTitle), NativeColumn.timestampUnixMs);
-      expect(manger.firstWhere((p0) => p0.internalIdentifier == BuildInColumn.pulsePressure.internalIdentifier), BuildInColumn.pulsePressure);
-
-      expect(manger.firstWhere((p0) => p0.internalIdentifier == 'non existent'), null);
-    });
-
-    test('should get all columns', () {
-      final manager = ExportColumnsManager();
-
-      expect(manager.getAllColumns().length, NativeColumn.allColumns.length + BuildInColumn.allColumns.length);
-
-      manager.addOrUpdate(UserColumn('test', '', ''));
-      expect(manager.getAllColumns().length, NativeColumn.allColumns.length + BuildInColumn.allColumns.length + 1);
-    });
-
-    test('should get only unmodifiable columns', () {
-      final manager = ExportColumnsManager();
-
-      expect(manager.getAllUnmodifiableColumns().length, NativeColumn.allColumns.length + BuildInColumn.allColumns.length);
-
-      manager.addOrUpdate(UserColumn('test', '', ''));
-      expect(manager.getAllUnmodifiableColumns().length, NativeColumn.allColumns.length + BuildInColumn.allColumns.length);
-    });
+  test('should get user column by id', () {
+    final manager = ExportColumnsManager();
+    final column = UserColumn('customColumn', '', '');
+    manager.addOrUpdate(column);
+    final returnedColumn = manager.getColumn(column.internalIdentifier);
+    expect(returnedColumn, column);
+  });
+  test('should get NativeColumn by id', () {
+    final manager = ExportColumnsManager();
+    final column = NativeColumn.allColumns.first;
+    final returnedColumn = manager.getColumn(column.internalIdentifier);
+    expect(returnedColumn, column);
+  });
+  test('should get BuildInColumn by id', () {
+    final manager = ExportColumnsManager();
+    final column = BuildInColumn.allColumns.first;
+    final returnedColumn = manager.getColumn(column.internalIdentifier);
+    expect(returnedColumn, column);
+  });
+  test('should allow adding columns', () async {
+    final manager = ExportColumnsManager();
+    final c1 = UserColumn('test', 'test', '\$SYS');
+    final c2 = UserColumn('test2', 'test2', '234');
+    manager.addOrUpdate(c1);
+    manager.addOrUpdate(c2);
+    manager.addOrUpdate(UserColumn('test', 'testx', ''));
+
+    expect(manager.userColumns.length, 2);
+    expect(manager.userColumns[c1.internalIdentifier]?.csvTitle, 'testx');
+    expect(manager.userColumns[c2.internalIdentifier]?.csvTitle, 'test2');
+  });
+
+  test('should restore TimeColumns from configurations', () {
+    final initialManager = ExportColumnsManager();
+    initialManager.addOrUpdate(TimeColumn('testA', 'dd'));
+    initialManager.addOrUpdate(TimeColumn('testB', 'mmm'));
+    initialManager.addOrUpdate(TimeColumn('testC', 'asdsa'));
+
+    expect(initialManager.userColumns.length, 3);
+    expect(initialManager.userColumns.values, everyElement(isA<TimeColumn>()));
+
+    final fromJson = ExportColumnsManager.fromJson(initialManager.toJson());
+    expect(fromJson.userColumns.length, 3);
+    expect(fromJson.userColumns.values, everyElement(isA<TimeColumn>()));
+  });
+
+  test('should delete columns', () {
+    final manger = ExportColumnsManager();
+    final c1 = UserColumn('test', 'test', '\$SYS');
+    final c2 = TimeColumn('testA', 'dd');
+    manger.addOrUpdate(c1);
+    manger.addOrUpdate(c2);
+
+    expect(manger.userColumns.length, 2);
+    expect(() => manger.deleteUserColumn('none'), throwsAssertionError);
+    expect(manger.userColumns.length, 2);
+
+    manger.deleteUserColumn(c1.internalIdentifier);
+    expect(manger.userColumns.length, 1);
+    expect(() => manger.deleteUserColumn(c1.internalIdentifier), throwsAssertionError);
+    expect(manger.userColumns.length, 1);
+
+    manger.deleteUserColumn(c2.internalIdentifier);
+    expect(manger.userColumns.length, 0);
+  });
+
+  test('should include all columns in firstWhere search', () {
+    final manger = ExportColumnsManager();
+    final c1 = UserColumn('test', 'test', '\$SYS');
+    final c2 = TimeColumn('testA', 'dd');
+    manger.addOrUpdate(c1);
+    manger.addOrUpdate(c2);
+
+    expect(manger.firstWhere((p0) => p0.internalIdentifier == c1.internalIdentifier), c1);
+    expect(manger.firstWhere((p0) => p0.internalIdentifier == c2.internalIdentifier), c2);
+    expect(manger.firstWhere((p0) => p0.csvTitle == c2.csvTitle), c2);
+    expect(manger.firstWhere((p0) => p0.formatPattern == c1.formatPattern), c1);
+
+    expect(manger.firstWhere((p0) => p0.csvTitle == NativeColumn.timestampUnixMs.csvTitle), NativeColumn.timestampUnixMs);
+    expect(manger.firstWhere((p0) => p0.internalIdentifier == BuildInColumn.pulsePressure.internalIdentifier), BuildInColumn.pulsePressure);
+
+    expect(manger.firstWhere((p0) => p0.internalIdentifier == 'non existent'), null);
+  });
+
+  test('should get all columns', () {
+    final manager = ExportColumnsManager();
+
+    expect(manager.getAllColumns().length, NativeColumn.allColumns.length + BuildInColumn.allColumns.length);
+
+    manager.addOrUpdate(UserColumn('test', '', ''));
+    expect(manager.getAllColumns().length, NativeColumn.allColumns.length + BuildInColumn.allColumns.length + 1);
+  });
+
+  test('should get only unmodifiable columns', () {
+    final manager = ExportColumnsManager();
+
+    expect(manager.getAllUnmodifiableColumns().length, NativeColumn.allColumns.length + BuildInColumn.allColumns.length);
+
+    manager.addOrUpdate(UserColumn('test', '', ''));
+    expect(manager.getAllUnmodifiableColumns().length, NativeColumn.allColumns.length + BuildInColumn.allColumns.length);
   });
 }
test/model/export_import/export_configuration_test.dart
@@ -5,42 +5,40 @@ import 'package:blood_pressure_app/model/storage/export_columns_store.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 void main() {
-  group('ActiveExportColumnConfiguration', () {
-    test('should not throw errors', () {
-      ActiveExportColumnConfiguration();
-      ActiveExportColumnConfiguration(activePreset: ExportImportPreset.myHeart);
-      ActiveExportColumnConfiguration(activePreset: ExportImportPreset.none, userSelectedColumnIds: ['a','b','c']);
-      ActiveExportColumnConfiguration(userSelectedColumnIds: ['a','b','c']);
-    });
+  test('should not throw errors', () {
+    ActiveExportColumnConfiguration();
+    ActiveExportColumnConfiguration(activePreset: ExportImportPreset.myHeart);
+    ActiveExportColumnConfiguration(activePreset: ExportImportPreset.none, userSelectedColumnIds: ['a','b','c']);
+    ActiveExportColumnConfiguration(userSelectedColumnIds: ['a','b','c']);
+  });
 
-    test('should return correct columns depending on mode', () {
-      final config = ActiveExportColumnConfiguration(
-          activePreset: ExportImportPreset.bloodPressureApp,
-          userSelectedColumnIds: ['userColumn.a', 'userColumn.b', 'userColumn.c'],
-      );
-      expect(config.getActiveColumns(ExportColumnsManager()), everyElement(isA<NativeColumn>()));
+  test('should return correct columns depending on mode', () {
+    final config = ActiveExportColumnConfiguration(
+        activePreset: ExportImportPreset.bloodPressureApp,
+        userSelectedColumnIds: ['userColumn.a', 'userColumn.b', 'userColumn.c'],
+    );
+    expect(config.getActiveColumns(ExportColumnsManager()), everyElement(isA<NativeColumn>()));
 
-      config.activePreset = ExportImportPreset.myHeart;
-      expect(config.getActiveColumns(ExportColumnsManager()), anyElement(isA<BuildInColumn>()));
-      expect(config.getActiveColumns(ExportColumnsManager()), isNot(anyElement(isA<NativeColumn>())));
+    config.activePreset = ExportImportPreset.myHeart;
+    expect(config.getActiveColumns(ExportColumnsManager()), anyElement(isA<BuildInColumn>()));
+    expect(config.getActiveColumns(ExportColumnsManager()), isNot(anyElement(isA<NativeColumn>())));
 
-      config.activePreset = ExportImportPreset.none;
-      final manager = ExportColumnsManager();
-      manager.addOrUpdate(UserColumn('a', 'testA', ''));
-      manager.addOrUpdate(UserColumn('b', 'testB', ''));
-      manager.addOrUpdate(UserColumn('c', 'testC', ''));
-      expect(config.getActiveColumns(manager).length, 3);
-      expect(config.getActiveColumns(manager), everyElement(isA<UserColumn>()));
-    });
+    config.activePreset = ExportImportPreset.none;
+    final manager = ExportColumnsManager();
+    manager.addOrUpdate(UserColumn('a', 'testA', ''));
+    manager.addOrUpdate(UserColumn('b', 'testB', ''));
+    manager.addOrUpdate(UserColumn('c', 'testC', ''));
+    expect(config.getActiveColumns(manager).length, 3);
+    expect(config.getActiveColumns(manager), everyElement(isA<UserColumn>()));
+  });
 
-    test('should notify listeners', () {
-      final config = ActiveExportColumnConfiguration();
-      int callCount = 0;
-      config.addListener(() {
-        callCount += 1;
-      });
-      config.activePreset = ExportImportPreset.bloodPressureApp;
-      expect(callCount, 1);
+  test('should notify listeners', () {
+    final config = ActiveExportColumnConfiguration();
+    int callCount = 0;
+    config.addListener(() {
+      callCount += 1;
     });
+    config.activePreset = ExportImportPreset.bloodPressureApp;
+    expect(callCount, 1);
   });
 }
test/model/export_import/pdf_converter_test.dart
@@ -10,55 +10,53 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 void main() {
-  group('PdfConverter', () {
-    test('should not return empty data', () async {
-      final localizations = await AppLocalizations.delegate.load(const Locale('en'));
-      final converter = PdfConverter(PdfExportSettings(), localizations, Settings(), ExportColumnsManager());
-      final pdf = await converter.create(createRecords());
-      expect(pdf.length, isNonZero);
-    });
-    test('generated data length should be consistent', () async {
-      final localizations = await AppLocalizations.delegate.load(const Locale('en'));
-      final converter = PdfConverter(PdfExportSettings(), localizations, Settings(), ExportColumnsManager());
-      final pdf = await converter.create(createRecords());
-      final converter2 = PdfConverter(PdfExportSettings(), localizations, Settings(), ExportColumnsManager());
-      final pdf2 = await converter2.create(createRecords());
-      expect(pdf.length, pdf2.length);
-    });
-
-    test('generated data should change on settings change', () async {
-      final localizations = await AppLocalizations.delegate.load(const Locale('en'));
-      final pdfSettings = PdfExportSettings(
-        exportData: true,
-        exportStatistics: true,
-        exportTitle: true,
-      );
-
-      final converter = PdfConverter(pdfSettings, localizations, Settings(), ExportColumnsManager());
-      final pdf1 = await converter.create(createRecords());
-
-      pdfSettings.exportData = false;
-      final pdf2 = await converter.create(createRecords());
-      expect(pdf1.length, isNot(pdf2.length));
-      expect(pdf1.length, greaterThan(pdf2.length));
-
-      pdfSettings.exportStatistics = false;
-      final pdf3 = await converter.create(createRecords());
-      expect(pdf3.length, isNot(pdf2.length));
-      expect(pdf3.length, isNot(pdf1.length));
-      expect(pdf2.length, greaterThan(pdf3.length));
+  test('should not return empty data', () async {
+    final localizations = await AppLocalizations.delegate.load(const Locale('en'));
+    final converter = PdfConverter(PdfExportSettings(), localizations, Settings(), ExportColumnsManager());
+    final pdf = await converter.create(createRecords());
+    expect(pdf.length, isNonZero);
+  });
+  test('generated data length should be consistent', () async {
+    final localizations = await AppLocalizations.delegate.load(const Locale('en'));
+    final converter = PdfConverter(PdfExportSettings(), localizations, Settings(), ExportColumnsManager());
+    final pdf = await converter.create(createRecords());
+    final converter2 = PdfConverter(PdfExportSettings(), localizations, Settings(), ExportColumnsManager());
+    final pdf2 = await converter2.create(createRecords());
+    expect(pdf.length, pdf2.length);
+  });
 
-      pdfSettings.exportTitle = false;
-      pdfSettings.exportData = true;
-      final pdf4 = await converter.create(createRecords());
-      expect(pdf4.length, isNot(pdf1.length));
-      expect(pdf1.length, greaterThan(pdf4.length));
-    });
+  test('generated data should change on settings change', () async {
+    final localizations = await AppLocalizations.delegate.load(const Locale('en'));
+    final pdfSettings = PdfExportSettings(
+      exportData: true,
+      exportStatistics: true,
+      exportTitle: true,
+    );
+
+    final converter = PdfConverter(pdfSettings, localizations, Settings(), ExportColumnsManager());
+    final pdf1 = await converter.create(createRecords());
+
+    pdfSettings.exportData = false;
+    final pdf2 = await converter.create(createRecords());
+    expect(pdf1.length, isNot(pdf2.length));
+    expect(pdf1.length, greaterThan(pdf2.length));
+
+    pdfSettings.exportStatistics = false;
+    final pdf3 = await converter.create(createRecords());
+    expect(pdf3.length, isNot(pdf2.length));
+    expect(pdf3.length, isNot(pdf1.length));
+    expect(pdf2.length, greaterThan(pdf3.length));
+
+    pdfSettings.exportTitle = false;
+    pdfSettings.exportData = true;
+    final pdf4 = await converter.create(createRecords());
+    expect(pdf4.length, isNot(pdf1.length));
+    expect(pdf1.length, greaterThan(pdf4.length));
   });
 }
 
 List<BloodPressureRecord> createRecords([int count = 20]) => [
   for (int i = 0; i<count; i++)
-    BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(123456 + i), 
+    BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(123456 + i),
         i, 100+i, 200+1, 'note $i', needlePin: MeasurementNeedlePin(Color(123+i)),),
 ];
test/model/medicine/intake_history_test.dart
@@ -6,167 +6,165 @@ import 'medicine_intake_test.dart';
 import 'medicine_test.dart';
 
 void main() {
-  group('IntakeHistory', () { 
-    test('should return all matching intakes in range', () {
-      final history = IntakeHistory([
-        mockIntake(timeMs: 2),
-        mockIntake(timeMs: 2),
-        mockIntake(timeMs: 4),
-        mockIntake(timeMs: 5),
-        mockIntake(timeMs: 6),
-        mockIntake(timeMs: 9),
-        mockIntake(timeMs: 9),
-        mockIntake(timeMs: 12),
-        mockIntake(timeMs: 15),
-        mockIntake(timeMs: 15),
-        mockIntake(timeMs: 16),
-        mockIntake(timeMs: 17),
-      ]);
-      final found = history.getIntakes(DateTimeRange(
-        start: DateTime.fromMillisecondsSinceEpoch(4), 
-        end: DateTime.fromMillisecondsSinceEpoch(15),
-      ),);
-      expect(found.length, 8);
-      expect(found.map((e) => e.timestamp.millisecondsSinceEpoch), containsAllInOrder([4,5,6,9,9,12,15,15]));
-    });
-    test('should return all matching intakes when only few are in range', () {
-      final history = IntakeHistory([
-        mockIntake(timeMs: 2),
-        mockIntake(timeMs: 3),
-      ]);
-      final found = history.getIntakes(DateTimeRange(
-          start: DateTime.fromMillisecondsSinceEpoch(0),
-          end: DateTime.fromMillisecondsSinceEpoch(4),
-      ),);
-      expect(found.length, 2);
-      expect(found.map((e) => e.timestamp.millisecondsSinceEpoch), containsAllInOrder([2,3]));
-    });
-    test('should return nothing when no intakes are present', () {
-      final history = IntakeHistory([]);
-      final found = history.getIntakes(DateTimeRange(
-          start: DateTime.fromMillisecondsSinceEpoch(0),
-          end: DateTime.fromMillisecondsSinceEpoch(1000),
-      ),);
-      expect(found.length, 0);
-    });
-    test('should return nothing when intakes are out of range', () {
-      final history = IntakeHistory([
-        mockIntake(timeMs: 2),
-        mockIntake(timeMs: 3),
-      ]);
-      final found1 = history.getIntakes(DateTimeRange(
-          start: DateTime.fromMillisecondsSinceEpoch(4),
-          end: DateTime.fromMillisecondsSinceEpoch(10),
-      ),);
-      expect(found1.length, 0);
-      final found2 = history.getIntakes(DateTimeRange(
-          start: DateTime.fromMillisecondsSinceEpoch(0),
-          end: DateTime.fromMillisecondsSinceEpoch(1),
-      ),);
-      expect(found2.length, 0);
-    });
-    test('should add to the correct position', () {
-      final history = IntakeHistory([
-        mockIntake(timeMs: 2),
-        mockIntake(timeMs: 7),
-      ]);
+  test('should return all matching intakes in range', () {
+    final history = IntakeHistory([
+      mockIntake(timeMs: 2),
+      mockIntake(timeMs: 2),
+      mockIntake(timeMs: 4),
+      mockIntake(timeMs: 5),
+      mockIntake(timeMs: 6),
+      mockIntake(timeMs: 9),
+      mockIntake(timeMs: 9),
+      mockIntake(timeMs: 12),
+      mockIntake(timeMs: 15),
+      mockIntake(timeMs: 15),
+      mockIntake(timeMs: 16),
+      mockIntake(timeMs: 17),
+    ]);
+    final found = history.getIntakes(DateTimeRange(
+      start: DateTime.fromMillisecondsSinceEpoch(4),
+      end: DateTime.fromMillisecondsSinceEpoch(15),
+    ),);
+    expect(found.length, 8);
+    expect(found.map((e) => e.timestamp.millisecondsSinceEpoch), containsAllInOrder([4,5,6,9,9,12,15,15]));
+  });
+  test('should return all matching intakes when only few are in range', () {
+    final history = IntakeHistory([
+      mockIntake(timeMs: 2),
+      mockIntake(timeMs: 3),
+    ]);
+    final found = history.getIntakes(DateTimeRange(
+        start: DateTime.fromMillisecondsSinceEpoch(0),
+        end: DateTime.fromMillisecondsSinceEpoch(4),
+    ),);
+    expect(found.length, 2);
+    expect(found.map((e) => e.timestamp.millisecondsSinceEpoch), containsAllInOrder([2,3]));
+  });
+  test('should return nothing when no intakes are present', () {
+    final history = IntakeHistory([]);
+    final found = history.getIntakes(DateTimeRange(
+        start: DateTime.fromMillisecondsSinceEpoch(0),
+        end: DateTime.fromMillisecondsSinceEpoch(1000),
+    ),);
+    expect(found.length, 0);
+  });
+  test('should return nothing when intakes are out of range', () {
+    final history = IntakeHistory([
+      mockIntake(timeMs: 2),
+      mockIntake(timeMs: 3),
+    ]);
+    final found1 = history.getIntakes(DateTimeRange(
+        start: DateTime.fromMillisecondsSinceEpoch(4),
+        end: DateTime.fromMillisecondsSinceEpoch(10),
+    ),);
+    expect(found1.length, 0);
+    final found2 = history.getIntakes(DateTimeRange(
+        start: DateTime.fromMillisecondsSinceEpoch(0),
+        end: DateTime.fromMillisecondsSinceEpoch(1),
+    ),);
+    expect(found2.length, 0);
+  });
+  test('should add to the correct position', () {
+    final history = IntakeHistory([
+      mockIntake(timeMs: 2),
+      mockIntake(timeMs: 7),
+    ]);
 
-      history.addIntake(mockIntake(timeMs: 3));
-      final found = history.getIntakes(DateTimeRange(
-          start: DateTime.fromMillisecondsSinceEpoch(0),
-          end: DateTime.fromMillisecondsSinceEpoch(10),
-      ),);
-      expect(found.length, 3);
-      expect(found.map((e) => e.timestamp.millisecondsSinceEpoch), containsAllInOrder([2,3,7]));
+    history.addIntake(mockIntake(timeMs: 3));
+    final found = history.getIntakes(DateTimeRange(
+        start: DateTime.fromMillisecondsSinceEpoch(0),
+        end: DateTime.fromMillisecondsSinceEpoch(10),
+    ),);
+    expect(found.length, 3);
+    expect(found.map((e) => e.timestamp.millisecondsSinceEpoch), containsAllInOrder([2,3,7]));
 
-      history.addIntake(mockIntake(timeMs: 3));
-      final found2 = history.getIntakes(DateTimeRange(
-          start: DateTime.fromMillisecondsSinceEpoch(0),
-          end: DateTime.fromMillisecondsSinceEpoch(10),
-      ),);
-      expect(found2.length, 4);
-      expect(found2.map((e) => e.timestamp.millisecondsSinceEpoch), containsAllInOrder([2,3,3,7]));
+    history.addIntake(mockIntake(timeMs: 3));
+    final found2 = history.getIntakes(DateTimeRange(
+        start: DateTime.fromMillisecondsSinceEpoch(0),
+        end: DateTime.fromMillisecondsSinceEpoch(10),
+    ),);
+    expect(found2.length, 4);
+    expect(found2.map((e) => e.timestamp.millisecondsSinceEpoch), containsAllInOrder([2,3,3,7]));
 
-      history.addIntake(mockIntake(timeMs: 1));
-      final found3 = history.getIntakes(DateTimeRange(
-          start: DateTime.fromMillisecondsSinceEpoch(0),
-          end: DateTime.fromMillisecondsSinceEpoch(10),
-      ),);
-      expect(found3.length, 5);
-      expect(found3.map((e) => e.timestamp.millisecondsSinceEpoch), containsAllInOrder([1,2,3,3,7]));
+    history.addIntake(mockIntake(timeMs: 1));
+    final found3 = history.getIntakes(DateTimeRange(
+        start: DateTime.fromMillisecondsSinceEpoch(0),
+        end: DateTime.fromMillisecondsSinceEpoch(10),
+    ),);
+    expect(found3.length, 5);
+    expect(found3.map((e) => e.timestamp.millisecondsSinceEpoch), containsAllInOrder([1,2,3,3,7]));
 
-      history.addIntake(mockIntake(timeMs: 10));
-      final found4 = history.getIntakes(DateTimeRange(
-          start: DateTime.fromMillisecondsSinceEpoch(0),
-          end: DateTime.fromMillisecondsSinceEpoch(10),
-      ),);
-      expect(found4.length, 6);
-      expect(found4.map((e) => e.timestamp.millisecondsSinceEpoch), containsAllInOrder([1,2,3,3,7,10]));
-    });
-    test('should remove deleted intakes', () {
-      final history = IntakeHistory([
-        mockIntake(timeMs: 2),
-        mockIntake(timeMs: 2),
-        mockIntake(timeMs: 4),
-        mockIntake(timeMs: 5),
-        mockIntake(timeMs: 6),
-        mockIntake(timeMs: 9),
-        mockIntake(timeMs: 9, dosis: 2),
-        mockIntake(timeMs: 12),
-      ]);
-      history.deleteIntake(mockIntake(timeMs: 5));
-      final found = history.getIntakes(DateTimeRange(
-          start: DateTime.fromMillisecondsSinceEpoch(0),
-          end: DateTime.fromMillisecondsSinceEpoch(20),
-      ),);
-      expect(found.length, 7);
-      expect(found.map((e) => e.timestamp.millisecondsSinceEpoch),
-          containsAllInOrder([2,2,4,6,9,9,12]),);
+    history.addIntake(mockIntake(timeMs: 10));
+    final found4 = history.getIntakes(DateTimeRange(
+        start: DateTime.fromMillisecondsSinceEpoch(0),
+        end: DateTime.fromMillisecondsSinceEpoch(10),
+    ),);
+    expect(found4.length, 6);
+    expect(found4.map((e) => e.timestamp.millisecondsSinceEpoch), containsAllInOrder([1,2,3,3,7,10]));
+  });
+  test('should remove deleted intakes', () {
+    final history = IntakeHistory([
+      mockIntake(timeMs: 2),
+      mockIntake(timeMs: 2),
+      mockIntake(timeMs: 4),
+      mockIntake(timeMs: 5),
+      mockIntake(timeMs: 6),
+      mockIntake(timeMs: 9),
+      mockIntake(timeMs: 9, dosis: 2),
+      mockIntake(timeMs: 12),
+    ]);
+    history.deleteIntake(mockIntake(timeMs: 5));
+    final found = history.getIntakes(DateTimeRange(
+        start: DateTime.fromMillisecondsSinceEpoch(0),
+        end: DateTime.fromMillisecondsSinceEpoch(20),
+    ),);
+    expect(found.length, 7);
+    expect(found.map((e) => e.timestamp.millisecondsSinceEpoch),
+        containsAllInOrder([2,2,4,6,9,9,12]),);
 
-      history.deleteIntake(mockIntake(timeMs: 9));
-      final found3 = history.getIntakes(DateTimeRange(
-          start: DateTime.fromMillisecondsSinceEpoch(0),
-          end: DateTime.fromMillisecondsSinceEpoch(20),
-      ),);
-      expect(found3.length, 6);
-      expect(found3.map((e) => e.timestamp.millisecondsSinceEpoch),
-          containsAllInOrder([2,2,4,6,9,12]),);
+    history.deleteIntake(mockIntake(timeMs: 9));
+    final found3 = history.getIntakes(DateTimeRange(
+        start: DateTime.fromMillisecondsSinceEpoch(0),
+        end: DateTime.fromMillisecondsSinceEpoch(20),
+    ),);
+    expect(found3.length, 6);
+    expect(found3.map((e) => e.timestamp.millisecondsSinceEpoch),
+        containsAllInOrder([2,2,4,6,9,12]),);
 
-      history.deleteIntake(mockIntake(timeMs: 2));
-      final found4 = history.getIntakes(DateTimeRange(
-          start: DateTime.fromMillisecondsSinceEpoch(0),
-          end: DateTime.fromMillisecondsSinceEpoch(20),
-      ),);
-      expect(found4.length, 4);
-      expect(found4.map((e) => e.timestamp.millisecondsSinceEpoch),
-          containsAllInOrder([4,6,9,12]),);
-    });
-    test('should not fail on deleting non existent intake', () {
-      final history = IntakeHistory([]);
-      history.deleteIntake(mockIntake(timeMs: 5));
-      final found = history.getIntakes(DateTimeRange(
-          start: DateTime.fromMillisecondsSinceEpoch(0),
-          end: DateTime.fromMillisecondsSinceEpoch(20),
-      ),);
-      expect(found.length, 0);
-    });
-    test('should serialize and deserialize', () {
-      final meds = [mockMedicine(defaultDosis: 1), mockMedicine(defaultDosis: 2),mockMedicine(defaultDosis: 3), mockMedicine(defaultDosis: 4)];
-      final history = IntakeHistory([
-        mockIntake(dosis: 123, timeMs: 1235, medicine: meds[0]),
-        mockIntake(dosis: 123, timeMs: 1235, medicine: meds[0]),
-        mockIntake(dosis: 123, timeMs: 1235, medicine: meds[1]),
-        mockIntake(dosis: 123, timeMs: 1235, medicine: meds[2]),
-        mockIntake(dosis: 123, timeMs: 132, medicine: meds[3]),
-        mockIntake(dosis: 1232, timeMs: 132, medicine: meds[3]),
-        mockIntake(dosis: 1232, timeMs: 132, medicine: meds[3]),
-        mockIntake(dosis: 1232, timeMs: 132, medicine: meds[3]),
-        mockIntake(dosis: 123, timeMs: 1235, medicine: meds[3]),
-      ]);
-      final deserializedHistory = IntakeHistory.deserialize(history.serialize(), meds);
+    history.deleteIntake(mockIntake(timeMs: 2));
+    final found4 = history.getIntakes(DateTimeRange(
+        start: DateTime.fromMillisecondsSinceEpoch(0),
+        end: DateTime.fromMillisecondsSinceEpoch(20),
+    ),);
+    expect(found4.length, 4);
+    expect(found4.map((e) => e.timestamp.millisecondsSinceEpoch),
+        containsAllInOrder([4,6,9,12]),);
+  });
+  test('should not fail on deleting non existent intake', () {
+    final history = IntakeHistory([]);
+    history.deleteIntake(mockIntake(timeMs: 5));
+    final found = history.getIntakes(DateTimeRange(
+        start: DateTime.fromMillisecondsSinceEpoch(0),
+        end: DateTime.fromMillisecondsSinceEpoch(20),
+    ),);
+    expect(found.length, 0);
+  });
+  test('should serialize and deserialize', () {
+    final meds = [mockMedicine(defaultDosis: 1), mockMedicine(defaultDosis: 2),mockMedicine(defaultDosis: 3), mockMedicine(defaultDosis: 4)];
+    final history = IntakeHistory([
+      mockIntake(dosis: 123, timeMs: 1235, medicine: meds[0]),
+      mockIntake(dosis: 123, timeMs: 1235, medicine: meds[0]),
+      mockIntake(dosis: 123, timeMs: 1235, medicine: meds[1]),
+      mockIntake(dosis: 123, timeMs: 1235, medicine: meds[2]),
+      mockIntake(dosis: 123, timeMs: 132, medicine: meds[3]),
+      mockIntake(dosis: 1232, timeMs: 132, medicine: meds[3]),
+      mockIntake(dosis: 1232, timeMs: 132, medicine: meds[3]),
+      mockIntake(dosis: 1232, timeMs: 132, medicine: meds[3]),
+      mockIntake(dosis: 123, timeMs: 1235, medicine: meds[3]),
+    ]);
+    final deserializedHistory = IntakeHistory.deserialize(history.serialize(), meds);
 
-      expect(deserializedHistory.serialize(), history.serialize());
-      expect(deserializedHistory, history);
-    });
+    expect(deserializedHistory.serialize(), history.serialize());
+    expect(deserializedHistory, history);
   });
 }
test/model/medicine/medicine_intake_test.dart
@@ -6,45 +6,43 @@ import 'package:flutter_test/flutter_test.dart';
 import 'medicine_test.dart';
 
 void main() {
-  group('MedicineIntake', () {
-    test('should determine equality', () {
-      final med = Medicine(1, designation: 'designation', color: Colors.red, defaultDosis: 123);
-      final int1 = MedicineIntake(medicine: med, dosis: 10, timestamp: DateTime.fromMillisecondsSinceEpoch(123));
-      final int2 = MedicineIntake(medicine: med, dosis: 10, timestamp: DateTime.fromMillisecondsSinceEpoch(123));
-      expect(int1, int2);
-    });
-    test('should determine inequality', () {
-      final med1 = Medicine(1, designation: 'designation', color: Colors.red, defaultDosis: 123);
-      final med2 = Medicine(2, designation: 'designation', color: Colors.red, defaultDosis: 123);
-      final int1 = MedicineIntake(medicine: med1, dosis: 10, timestamp: DateTime.fromMillisecondsSinceEpoch(123));
-      final int2 = MedicineIntake(medicine: med2, dosis: 10, timestamp: DateTime.fromMillisecondsSinceEpoch(123));
-      expect(int1, isNot(int2));
-      final int3 = MedicineIntake(medicine: med1, dosis: 11, timestamp: DateTime.fromMillisecondsSinceEpoch(123));
-      expect(int1, isNot(int3));
-      final int4 = MedicineIntake(medicine: med1, dosis: 10, timestamp: DateTime.fromMillisecondsSinceEpoch(124));
-      expect(int1, isNot(int4));
-    });
-    test('should deserialize serialized intake', () {
-      final intake = mockIntake(timeMs: 543210);
-      expect(MedicineIntake.deserialize(intake.serialize(), [intake.medicine]), intake);
+  test('should determine equality', () {
+    final med = Medicine(1, designation: 'designation', color: Colors.red, defaultDosis: 123);
+    final int1 = MedicineIntake(medicine: med, dosis: 10, timestamp: DateTime.fromMillisecondsSinceEpoch(123));
+    final int2 = MedicineIntake(medicine: med, dosis: 10, timestamp: DateTime.fromMillisecondsSinceEpoch(123));
+    expect(int1, int2);
+  });
+  test('should determine inequality', () {
+    final med1 = Medicine(1, designation: 'designation', color: Colors.red, defaultDosis: 123);
+    final med2 = Medicine(2, designation: 'designation', color: Colors.red, defaultDosis: 123);
+    final int1 = MedicineIntake(medicine: med1, dosis: 10, timestamp: DateTime.fromMillisecondsSinceEpoch(123));
+    final int2 = MedicineIntake(medicine: med2, dosis: 10, timestamp: DateTime.fromMillisecondsSinceEpoch(123));
+    expect(int1, isNot(int2));
+    final int3 = MedicineIntake(medicine: med1, dosis: 11, timestamp: DateTime.fromMillisecondsSinceEpoch(123));
+    expect(int1, isNot(int3));
+    final int4 = MedicineIntake(medicine: med1, dosis: 10, timestamp: DateTime.fromMillisecondsSinceEpoch(124));
+    expect(int1, isNot(int4));
+  });
+  test('should deserialize serialized intake', () {
+    final intake = mockIntake(timeMs: 543210);
+    expect(MedicineIntake.deserialize(intake.serialize(), [intake.medicine]), intake);
 
-      final intake2 = mockIntake(
-          timeMs: 543211,
-          dosis: 1000231,
-          medicine: mockMedicine(designation: 'tst'),
-      );
-      expect(MedicineIntake.deserialize(
-          intake2.serialize(),
-          [intake.medicine, intake2.medicine],),
-          intake2,);
-    });
-    test('should fail to deserialize serialized intake without exising med', () {
-      final intake = mockIntake(medicine: mockMedicine(designation: 'tst'));
-      expect(() => MedicineIntake.deserialize(
-          intake.serialize(),
-          [mockMedicine()],),
-          throwsArgumentError,);
-    });
+    final intake2 = mockIntake(
+        timeMs: 543211,
+        dosis: 1000231,
+        medicine: mockMedicine(designation: 'tst'),
+    );
+    expect(MedicineIntake.deserialize(
+        intake2.serialize(),
+        [intake.medicine, intake2.medicine],),
+        intake2,);
+  });
+  test('should fail to deserialize serialized intake without exising med', () {
+    final intake = mockIntake(medicine: mockMedicine(designation: 'tst'));
+    expect(() => MedicineIntake.deserialize(
+        intake.serialize(),
+        [mockMedicine()],),
+        throwsArgumentError,);
   });
 }
 
test/model/medicine/medicine_test.dart
@@ -3,49 +3,47 @@ import 'package:flutter/material.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 void main() {
-  group('Medicine', () {
-    test('should determine equality', () {
-      final med1 = Medicine(1, designation: 'designation', color: Colors.red, defaultDosis: 10);
-      final med2 = Medicine(1, designation: 'designation', color: Colors.red, defaultDosis: 10);
-      expect(med1, med2);
-    });
-    test('should determine inequality', () {
-      final med1 = Medicine(1, designation: 'designation', color: Colors.red, defaultDosis: 10);
-      final med2 = Medicine(1, designation: 'designatio', color: Colors.red, defaultDosis: 10);
-      expect(med1, isNot(med2));
-      final med3 = Medicine(1, designation: 'designation', color: Colors.blue, defaultDosis: 10);
-      expect(med1, isNot(med3));
-      final med4 = Medicine(1, designation: 'designation', color: Colors.red, defaultDosis: 11);
-      expect(med1, isNot(med4));
-    });
-    test('should restore after encoded to map', () {
-      final med1 = mockMedicine();
-      final med1Restored = Medicine.fromMap(med1.toMap());
-      expect(med1Restored, med1);
-
-      final med2 = mockMedicine(color: Colors.red, designation: 'designation', defaultDosis: 15);
-      final med2Restored = Medicine.fromMap(med2.toMap());
-      expect(med2Restored, med2);
-    });
-    test('should restore after encoded to json', () {
-      final med1 = mockMedicine();
-      final med1Restored = Medicine.fromJson(med1.toJson());
-      expect(med1Restored, med1);
+  test('should determine equality', () {
+    final med1 = Medicine(1, designation: 'designation', color: Colors.red, defaultDosis: 10);
+    final med2 = Medicine(1, designation: 'designation', color: Colors.red, defaultDosis: 10);
+    expect(med1, med2);
+  });
+  test('should determine inequality', () {
+    final med1 = Medicine(1, designation: 'designation', color: Colors.red, defaultDosis: 10);
+    final med2 = Medicine(1, designation: 'designatio', color: Colors.red, defaultDosis: 10);
+    expect(med1, isNot(med2));
+    final med3 = Medicine(1, designation: 'designation', color: Colors.blue, defaultDosis: 10);
+    expect(med1, isNot(med3));
+    final med4 = Medicine(1, designation: 'designation', color: Colors.red, defaultDosis: 11);
+    expect(med1, isNot(med4));
+  });
+  test('should restore after encoded to map', () {
+    final med1 = mockMedicine();
+    final med1Restored = Medicine.fromMap(med1.toMap());
+    expect(med1Restored, med1);
 
-      final med2 = mockMedicine(color: Colors.red, designation: 'designation', defaultDosis: 15);
-      final med2Restored = Medicine.fromJson(med2.toJson());
-      expect(med2Restored, med2);
-    });
-    test('should generate the same json after restoration', () {
-      final med1 = mockMedicine();
-      final med1Restored = Medicine.fromJson(med1.toJson());
-      expect(med1Restored.toJson(), med1.toJson());
+    final med2 = mockMedicine(color: Colors.red, designation: 'designation', defaultDosis: 15);
+    final med2Restored = Medicine.fromMap(med2.toMap());
+    expect(med2Restored, med2);
+  });
+  test('should restore after encoded to json', () {
+    final med1 = mockMedicine();
+    final med1Restored = Medicine.fromJson(med1.toJson());
+    expect(med1Restored, med1);
 
-      final med2 = mockMedicine(color: Colors.red, designation: 'designation', defaultDosis: 15);
-      final med2Restored = Medicine.fromJson(med2.toJson());
-      expect(med2Restored.toJson(), med2.toJson());
-    }); // not in a json serialization test as this is not a setting like file.
+    final med2 = mockMedicine(color: Colors.red, designation: 'designation', defaultDosis: 15);
+    final med2Restored = Medicine.fromJson(med2.toJson());
+    expect(med2Restored, med2);
   });
+  test('should generate the same json after restoration', () {
+    final med1 = mockMedicine();
+    final med1Restored = Medicine.fromJson(med1.toJson());
+    expect(med1Restored.toJson(), med1.toJson());
+
+    final med2 = mockMedicine(color: Colors.red, designation: 'designation', defaultDosis: 15);
+    final med2Restored = Medicine.fromJson(med2.toJson());
+    expect(med2Restored.toJson(), med2.toJson());
+  }); // not in a json serialization test as this is not a setting like file.
 }
 
 
test/model/analyzer_test.dart
@@ -4,62 +4,60 @@ import 'package:blood_pressure_app/model/blood_pressure_analyzer.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 void main() {
-  group('BloodPressureAnalyser', () {
-    test('should return averages', () async {
-      final m = BloodPressureAnalyser([
-        BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(1), 122, 87, 65, ''),
-        BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(2), 100, 60, 62, ''),
-        BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(3), 111, 73, 73, ''),
-      ]);
-
-      expect(m.avgSys, 111);
-      expect(m.avgDia, 73);
-      expect(m.avgPul, 66);
-    });
-
-    test('should return max', () async {
-      final a = BloodPressureAnalyser([
-        BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(1), 123, 87, 65, ''),
-        BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(2), 100, 60, 62, ''),
-        BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(3), 111, 73, 73, ''),
-        BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(4), 111, 73, 73, ''),
-      ]);
+  test('should return averages', () async {
+    final m = BloodPressureAnalyser([
+      BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(1), 122, 87, 65, ''),
+      BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(2), 100, 60, 62, ''),
+      BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(3), 111, 73, 73, ''),
+    ]);
+
+    expect(m.avgSys, 111);
+    expect(m.avgDia, 73);
+    expect(m.avgPul, 66);
+  });
 
-      expect(a.maxSys, 123);
-      expect(a.maxDia, 87);
-      expect(a.maxPul, 73);
-    });
+  test('should return max', () async {
+    final a = BloodPressureAnalyser([
+      BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(1), 123, 87, 65, ''),
+      BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(2), 100, 60, 62, ''),
+      BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(3), 111, 73, 73, ''),
+      BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(4), 111, 73, 73, ''),
+    ]);
+
+    expect(a.maxSys, 123);
+    expect(a.maxDia, 87);
+    expect(a.maxPul, 73);
+  });
 
-    test('should return min', () async {
-      final a = BloodPressureAnalyser([
-        BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(1), 123, 87, 65, ''),
-        BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(2), 100, 60, 62, ''),
-        BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(3), 111, 73, 73, ''),
-        BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(4), 100, 60, 62, ''),
-      ]);
+  test('should return min', () async {
+    final a = BloodPressureAnalyser([
+      BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(1), 123, 87, 65, ''),
+      BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(2), 100, 60, 62, ''),
+      BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(3), 111, 73, 73, ''),
+      BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(4), 100, 60, 62, ''),
+    ]);
+
+    expect(a.minSys, 100);
+    expect(a.minDia, 60);
+    expect(a.minPul, 62);
+  });
 
-      expect(a.minSys, 100);
-      expect(a.minDia, 60);
-      expect(a.minPul, 62);
-    });
+  test('should know count', () async {
+    final m = BloodPressureAnalyser([
+      for (int i = 1; i < 101; i++)
+        BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(i), 0, 0, 0, ''),
+    ]);
+    expect(m.count, 100);
+  });
 
-    test('should know count', () async {
-      final m = BloodPressureAnalyser([
-        for (int i = 1; i < 101; i++)
-          BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(i), 0, 0, 0, ''),
-      ]);
-      expect(m.count, 100);
-    });
+  test('should determine special days', () async {
+    final m = BloodPressureAnalyser([BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(100), 0, 0, 0, ''),
+      BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(20), 0, 0, 0, ''),
+      BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(9000000), 0, 0, 0, ''),
+      BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(3124159), 0, 0, 0, ''),
+    ]);
 
-    test('should determine special days', () async {
-      final m = BloodPressureAnalyser([BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(100), 0, 0, 0, ''),
-        BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(20), 0, 0, 0, ''),
-        BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(9000000), 0, 0, 0, ''),
-        BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(3124159), 0, 0, 0, ''),
-      ]);
-      
-      expect((m.firstDay), DateTime.fromMillisecondsSinceEpoch(20));
-      expect((m.lastDay), DateTime.fromMillisecondsSinceEpoch(9000000));
-    });
+    expect((m.firstDay), DateTime.fromMillisecondsSinceEpoch(20));
+    expect((m.lastDay), DateTime.fromMillisecondsSinceEpoch(9000000));
   });
 }
test/model/convert_util_test.dart
@@ -4,122 +4,120 @@ import 'package:flutter/material.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 void main() {
-  group('ConvertUtil', () {
-    test('parseBool should parse valid boolean correctly', () {
-      expect(ConvertUtil.parseBool(true), true);
-      expect(ConvertUtil.parseBool(false), false);
-      expect(ConvertUtil.parseBool(1), true);
-      expect(ConvertUtil.parseBool(1.0), true);
-      expect(ConvertUtil.parseBool(0), false);
-      expect(ConvertUtil.parseBool(0.0), false);
-      expect(ConvertUtil.parseBool('true'), true);
-      expect(ConvertUtil.parseBool('false'), false);
-    });
-    test('parseBool should parse invalid values as null', () {
-      expect(ConvertUtil.parseBool('test'), null);
-      expect(ConvertUtil.parseBool(132), null);
-      expect(ConvertUtil.parseBool(-1), null);
-      expect(ConvertUtil.parseBool({'test': 5}), null);
-      expect(ConvertUtil.parseBool(null), null);
-      expect(ConvertUtil.parseBool(1.1), null);
-    });
+  test('parseBool should parse valid boolean correctly', () {
+    expect(ConvertUtil.parseBool(true), true);
+    expect(ConvertUtil.parseBool(false), false);
+    expect(ConvertUtil.parseBool(1), true);
+    expect(ConvertUtil.parseBool(1.0), true);
+    expect(ConvertUtil.parseBool(0), false);
+    expect(ConvertUtil.parseBool(0.0), false);
+    expect(ConvertUtil.parseBool('true'), true);
+    expect(ConvertUtil.parseBool('false'), false);
+  });
+  test('parseBool should parse invalid values as null', () {
+    expect(ConvertUtil.parseBool('test'), null);
+    expect(ConvertUtil.parseBool(132), null);
+    expect(ConvertUtil.parseBool(-1), null);
+    expect(ConvertUtil.parseBool({'test': 5}), null);
+    expect(ConvertUtil.parseBool(null), null);
+    expect(ConvertUtil.parseBool(1.1), null);
+  });
 
-    test('parseInt should parse valid values correctly', () {
-      expect(ConvertUtil.parseInt(123), 123);
-      expect(ConvertUtil.parseInt(534), 534);
-      expect(ConvertUtil.parseInt(-1123), -1123);
-      expect(ConvertUtil.parseInt(1.0), 1);
-      expect(ConvertUtil.parseInt(0), 0);
-      expect(ConvertUtil.parseInt('0'), 0);
-      expect(ConvertUtil.parseInt('1321.0'), 1321);
-      expect(ConvertUtil.parseInt('-1234'), -1234);
-    });
-    test('parseInt should parse invalid values as null', () {
-      expect(ConvertUtil.parseInt('test'), null);
-      expect(ConvertUtil.parseInt(true), null);
-      expect(ConvertUtil.parseInt(1.2), null);
-      expect(ConvertUtil.parseInt({'test': 5}), null);
-      expect(ConvertUtil.parseInt(null), null);
-      expect(ConvertUtil.parseInt('123test'), null);
-    });
+  test('parseInt should parse valid values correctly', () {
+    expect(ConvertUtil.parseInt(123), 123);
+    expect(ConvertUtil.parseInt(534), 534);
+    expect(ConvertUtil.parseInt(-1123), -1123);
+    expect(ConvertUtil.parseInt(1.0), 1);
+    expect(ConvertUtil.parseInt(0), 0);
+    expect(ConvertUtil.parseInt('0'), 0);
+    expect(ConvertUtil.parseInt('1321.0'), 1321);
+    expect(ConvertUtil.parseInt('-1234'), -1234);
+  });
+  test('parseInt should parse invalid values as null', () {
+    expect(ConvertUtil.parseInt('test'), null);
+    expect(ConvertUtil.parseInt(true), null);
+    expect(ConvertUtil.parseInt(1.2), null);
+    expect(ConvertUtil.parseInt({'test': 5}), null);
+    expect(ConvertUtil.parseInt(null), null);
+    expect(ConvertUtil.parseInt('123test'), null);
+  });
 
-    test('parseDouble should parse valid values correctly', () {
-      expect(ConvertUtil.parseDouble(123.123), 123.123);
-      expect(ConvertUtil.parseDouble(534), 534.0);
-      expect(ConvertUtil.parseDouble(-1123.543), -1123.543);
-      expect(ConvertUtil.parseDouble(1.0), 1.0);
-      expect(ConvertUtil.parseDouble(0.0), 0.0);
-      expect(ConvertUtil.parseDouble('0'), 0.0);
-      expect(ConvertUtil.parseDouble('1321.1234'), 1321.1234);
-      expect(ConvertUtil.parseDouble('-1234.654'), -1234.654);
-    });
-    test('parseDouble should parse invalid values as null', () {
-      expect(ConvertUtil.parseDouble('test'), null);
-      expect(ConvertUtil.parseDouble(true), null);
-      expect(ConvertUtil.parseDouble({'test': 5}), null);
-      expect(ConvertUtil.parseDouble(null), null);
-      expect(ConvertUtil.parseDouble('123test'), null);
-      expect(ConvertUtil.parseDouble('1234.1234.1234'), null);
-    });
+  test('parseDouble should parse valid values correctly', () {
+    expect(ConvertUtil.parseDouble(123.123), 123.123);
+    expect(ConvertUtil.parseDouble(534), 534.0);
+    expect(ConvertUtil.parseDouble(-1123.543), -1123.543);
+    expect(ConvertUtil.parseDouble(1.0), 1.0);
+    expect(ConvertUtil.parseDouble(0.0), 0.0);
+    expect(ConvertUtil.parseDouble('0'), 0.0);
+    expect(ConvertUtil.parseDouble('1321.1234'), 1321.1234);
+    expect(ConvertUtil.parseDouble('-1234.654'), -1234.654);
+  });
+  test('parseDouble should parse invalid values as null', () {
+    expect(ConvertUtil.parseDouble('test'), null);
+    expect(ConvertUtil.parseDouble(true), null);
+    expect(ConvertUtil.parseDouble({'test': 5}), null);
+    expect(ConvertUtil.parseDouble(null), null);
+    expect(ConvertUtil.parseDouble('123test'), null);
+    expect(ConvertUtil.parseDouble('1234.1234.1234'), null);
+  });
 
-    test('parseString should parse valid values correctly', () {
-      expect(ConvertUtil.parseString('123.123'), '123.123');
-      expect(ConvertUtil.parseString('dasdhjsadjka'), 'dasdhjsadjka');
-      expect(ConvertUtil.parseString(123), '123');
-      expect(ConvertUtil.parseString(true), 'true');
-      expect(ConvertUtil.parseString(0.123), '0.123');
-      expect(ConvertUtil.parseString('null'), 'null');
-    });
-    test('parseString should parse invalid values as null', () {
-      expect(ConvertUtil.parseString(const Locale('test')), null);
-      expect(ConvertUtil.parseString({'test': 5}), null);
-    });
+  test('parseString should parse valid values correctly', () {
+    expect(ConvertUtil.parseString('123.123'), '123.123');
+    expect(ConvertUtil.parseString('dasdhjsadjka'), 'dasdhjsadjka');
+    expect(ConvertUtil.parseString(123), '123');
+    expect(ConvertUtil.parseString(true), 'true');
+    expect(ConvertUtil.parseString(0.123), '0.123');
+    expect(ConvertUtil.parseString('null'), 'null');
+  });
+  test('parseString should parse invalid values as null', () {
+    expect(ConvertUtil.parseString(const Locale('test')), null);
+    expect(ConvertUtil.parseString({'test': 5}), null);
+  });
 
-    test('parseMaterialColor should parse valid values correctly', () {
-      expect(ConvertUtil.parseColor(Colors.deepOrange), Colors.deepOrange);
-      expect(ConvertUtil.parseColor(Colors.grey)?.value, Colors.grey.value);
-      expect(ConvertUtil.parseColor(Colors.grey.value)?.value, Colors.grey.value);
-      expect(ConvertUtil.parseColor(Colors.deepOrange.value)?.value, Colors.deepOrange.value);
-      expect(ConvertUtil.parseColor(0xff000000)?.value, 0xff000000);
-      expect(ConvertUtil.parseColor('0x00ff0000')?.value, 0x00ff0000);
-      expect(ConvertUtil.parseColor(const Color(0x00ff0000))?.value, 0x00ff0000);
-    });
-    test('parseMaterialColor should parse invalid values as null', () {
-      expect(ConvertUtil.parseColor('test'), null);
-      expect(ConvertUtil.parseString({'test': 5}), null);
-    });
+  test('parseMaterialColor should parse valid values correctly', () {
+    expect(ConvertUtil.parseColor(Colors.deepOrange), Colors.deepOrange);
+    expect(ConvertUtil.parseColor(Colors.grey)?.value, Colors.grey.value);
+    expect(ConvertUtil.parseColor(Colors.grey.value)?.value, Colors.grey.value);
+    expect(ConvertUtil.parseColor(Colors.deepOrange.value)?.value, Colors.deepOrange.value);
+    expect(ConvertUtil.parseColor(0xff000000)?.value, 0xff000000);
+    expect(ConvertUtil.parseColor('0x00ff0000')?.value, 0x00ff0000);
+    expect(ConvertUtil.parseColor(const Color(0x00ff0000))?.value, 0x00ff0000);
+  });
+  test('parseMaterialColor should parse invalid values as null', () {
+    expect(ConvertUtil.parseColor('test'), null);
+    expect(ConvertUtil.parseString({'test': 5}), null);
+  });
 
-    test('parseLocale should not crash', () {
-      expect(ConvertUtil.parseLocale(const Locale('test')), const Locale('test'));
-      expect(ConvertUtil.parseLocale('DE'), const Locale('DE'));
-      expect(ConvertUtil.parseLocale(15), null);
-      expect(ConvertUtil.parseLocale(false), null);
-      expect(ConvertUtil.parseLocale('123'), const Locale('123'));
-    });
-    test('parseLocale should return null for string "NULL"', () {
-      expect(ConvertUtil.parseLocale('NULL'), null);
-      expect(ConvertUtil.parseLocale('null'), null);
-      expect(ConvertUtil.parseLocale('NuLl'), null);
-    });
+  test('parseLocale should not crash', () {
+    expect(ConvertUtil.parseLocale(const Locale('test')), const Locale('test'));
+    expect(ConvertUtil.parseLocale('DE'), const Locale('DE'));
+    expect(ConvertUtil.parseLocale(15), null);
+    expect(ConvertUtil.parseLocale(false), null);
+    expect(ConvertUtil.parseLocale('123'), const Locale('123'));
+  });
+  test('parseLocale should return null for string "NULL"', () {
+    expect(ConvertUtil.parseLocale('NULL'), null);
+    expect(ConvertUtil.parseLocale('null'), null);
+    expect(ConvertUtil.parseLocale('NuLl'), null);
+  });
 
-    test('parseList should convert valid values correctly', () {
-      expect(ConvertUtil.parseList<int>([1234,567,89,0]), [1234,567,89,0]);
-      expect(ConvertUtil.parseList<String>(['1234','567','89','0', 'test']), ['1234','567','89','0', 'test']);
-      expect(ConvertUtil.parseList<String>(<dynamic>['1234','567','89','0', 'test']), ['1234','567','89','0', 'test']);
-      expect(ConvertUtil.parseList<String>([]), []);
-    });
-    test('parseList should parse invalid values as null', () {
-      expect(ConvertUtil.parseList<int>(['1234','567','89','0', 'test']), null);
-      expect(ConvertUtil.parseList<String>({'test': 5}), null);
-      expect(ConvertUtil.parseList<String>([1234,567,89,0]), null);
-      expect(ConvertUtil.parseList<String>('tests'), null);
-    });
+  test('parseList should convert valid values correctly', () {
+    expect(ConvertUtil.parseList<int>([1234,567,89,0]), [1234,567,89,0]);
+    expect(ConvertUtil.parseList<String>(['1234','567','89','0', 'test']), ['1234','567','89','0', 'test']);
+    expect(ConvertUtil.parseList<String>(<dynamic>['1234','567','89','0', 'test']), ['1234','567','89','0', 'test']);
+    expect(ConvertUtil.parseList<String>([]), []);
+  });
+  test('parseList should parse invalid values as null', () {
+    expect(ConvertUtil.parseList<int>(['1234','567','89','0', 'test']), null);
+    expect(ConvertUtil.parseList<String>({'test': 5}), null);
+    expect(ConvertUtil.parseList<String>([1234,567,89,0]), null);
+    expect(ConvertUtil.parseList<String>('tests'), null);
+  });
 
-    test('parseThemeMode should convert values correctly', () {
-      expect(ConvertUtil.parseThemeMode(ThemeMode.system.serialize()), ThemeMode.system);
-      expect(ConvertUtil.parseThemeMode(ThemeMode.dark.serialize()), ThemeMode.dark);
-      expect(ConvertUtil.parseThemeMode(ThemeMode.light.serialize()), ThemeMode.light);
-      expect(ConvertUtil.parseThemeMode(null), null);
-    });
+  test('parseThemeMode should convert values correctly', () {
+    expect(ConvertUtil.parseThemeMode(ThemeMode.system.serialize()), ThemeMode.system);
+    expect(ConvertUtil.parseThemeMode(ThemeMode.dark.serialize()), ThemeMode.dark);
+    expect(ConvertUtil.parseThemeMode(ThemeMode.light.serialize()), ThemeMode.light);
+    expect(ConvertUtil.parseThemeMode(null), null);
   });
 }
test/model/intervall_store_test.dart
@@ -4,98 +4,96 @@ import 'package:flutter/material.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 void main() {
-  group('IntervallStorage', () {
-    test('base constructor should initialize with values', () {
-      final storageObject = IntervallStorage(stepSize: TimeStep.month, range: DateTimeRange(
-          start: DateTime.fromMillisecondsSinceEpoch(1234),
-          end: DateTime.fromMillisecondsSinceEpoch(5678),
-      ),);
+  test('base constructor should initialize with values', () {
+    final storageObject = IntervallStorage(stepSize: TimeStep.month, range: DateTimeRange(
+        start: DateTime.fromMillisecondsSinceEpoch(1234),
+        end: DateTime.fromMillisecondsSinceEpoch(5678),
+    ),);
 
-      expect(storageObject.stepSize, TimeStep.month);
-      expect(storageObject.currentRange.start.millisecondsSinceEpoch, 1234);
-      expect(storageObject.currentRange.end.millisecondsSinceEpoch, 5678);
-    });
+    expect(storageObject.stepSize, TimeStep.month);
+    expect(storageObject.currentRange.start.millisecondsSinceEpoch, 1234);
+    expect(storageObject.currentRange.end.millisecondsSinceEpoch, 5678);
+  });
 
-    test('base constructor should initialize to default without values', () {
-      final storageObject = IntervallStorage();
-      expect(storageObject.stepSize, TimeStep.last7Days);
-      expect(storageObject.currentRange.start.millisecondsSinceEpoch, lessThanOrEqualTo(DateTime
-          .now()
-          .millisecondsSinceEpoch,),);
-    });
+  test('base constructor should initialize to default without values', () {
+    final storageObject = IntervallStorage();
+    expect(storageObject.stepSize, TimeStep.last7Days);
+    expect(storageObject.currentRange.start.millisecondsSinceEpoch, lessThanOrEqualTo(DateTime
+        .now()
+        .millisecondsSinceEpoch,),);
+  });
 
-    test('base constructor should initialize with only incomplete parameters', () {
-      // only tests for no crashes
-      IntervallStorage(stepSize: TimeStep.last30Days);
-      IntervallStorage(range: DateTimeRange(
-          start: DateTime.fromMillisecondsSinceEpoch(1234),
-          end: DateTime.fromMillisecondsSinceEpoch(5678),
-      ),);
-    });
+  test('base constructor should initialize with only incomplete parameters', () {
+    // only tests for no crashes
+    IntervallStorage(stepSize: TimeStep.last30Days);
+    IntervallStorage(range: DateTimeRange(
+        start: DateTime.fromMillisecondsSinceEpoch(1234),
+        end: DateTime.fromMillisecondsSinceEpoch(5678),
+    ),);
+  });
 
 
-    test('intervall lengths should match step size', () {
-      final dayIntervall = IntervallStorage(stepSize: TimeStep.day);
-      final weekIntervall = IntervallStorage(stepSize: TimeStep.week);
-      final monthIntervall = IntervallStorage(stepSize: TimeStep.month);
-      final yearIntervall = IntervallStorage(stepSize: TimeStep.year);
-      final last7DaysIntervall = IntervallStorage(stepSize: TimeStep.last7Days);
-      final last30DaysIntervall = IntervallStorage(stepSize: TimeStep.last30Days);
-      
-      expect(dayIntervall.currentRange.duration.inHours, 24);
-      expect(weekIntervall.currentRange.duration.inDays, 7);
-      expect(monthIntervall.currentRange.duration.inDays, inInclusiveRange(28, 31));
-      expect(yearIntervall.currentRange.duration.inDays, inInclusiveRange(365, 366));
-      expect(last7DaysIntervall.currentRange.duration.inDays, 7);
-      expect(last30DaysIntervall.currentRange.duration.inDays, 30);
-    });
+  test('intervall lengths should match step size', () {
+    final dayIntervall = IntervallStorage(stepSize: TimeStep.day);
+    final weekIntervall = IntervallStorage(stepSize: TimeStep.week);
+    final monthIntervall = IntervallStorage(stepSize: TimeStep.month);
+    final yearIntervall = IntervallStorage(stepSize: TimeStep.year);
+    final last7DaysIntervall = IntervallStorage(stepSize: TimeStep.last7Days);
+    final last30DaysIntervall = IntervallStorage(stepSize: TimeStep.last30Days);
+
+    expect(dayIntervall.currentRange.duration.inHours, 24);
+    expect(weekIntervall.currentRange.duration.inDays, 7);
+    expect(monthIntervall.currentRange.duration.inDays, inInclusiveRange(28, 31));
+    expect(yearIntervall.currentRange.duration.inDays, inInclusiveRange(365, 366));
+    expect(last7DaysIntervall.currentRange.duration.inDays, 7);
+    expect(last30DaysIntervall.currentRange.duration.inDays, 30);
+  });
 
-    test('intervall lengths should still be correct after moving', () {
-      final dayIntervall = IntervallStorage(stepSize: TimeStep.day);
-      final weekIntervall = IntervallStorage(stepSize: TimeStep.week);
-      final monthIntervall = IntervallStorage(stepSize: TimeStep.month);
-      final yearIntervall = IntervallStorage(stepSize: TimeStep.year);
-      final last7DaysIntervall = IntervallStorage(stepSize: TimeStep.last7Days);
-      final last30DaysIntervall = IntervallStorage(stepSize: TimeStep.last30Days);
-      final customIntervall = IntervallStorage(stepSize: TimeStep.custom, range: DateTimeRange(
-          start: DateTime.fromMillisecondsSinceEpoch(1234),
-          end: DateTime.fromMillisecondsSinceEpoch(1234 + 24 * 60 * 60 * 1000), // one day
-      ),);
+  test('intervall lengths should still be correct after moving', () {
+    final dayIntervall = IntervallStorage(stepSize: TimeStep.day);
+    final weekIntervall = IntervallStorage(stepSize: TimeStep.week);
+    final monthIntervall = IntervallStorage(stepSize: TimeStep.month);
+    final yearIntervall = IntervallStorage(stepSize: TimeStep.year);
+    final last7DaysIntervall = IntervallStorage(stepSize: TimeStep.last7Days);
+    final last30DaysIntervall = IntervallStorage(stepSize: TimeStep.last30Days);
+    final customIntervall = IntervallStorage(stepSize: TimeStep.custom, range: DateTimeRange(
+        start: DateTime.fromMillisecondsSinceEpoch(1234),
+        end: DateTime.fromMillisecondsSinceEpoch(1234 + 24 * 60 * 60 * 1000), // one day
+    ),);
 
-      expect(customIntervall.currentRange.duration.inMilliseconds, 24 * 60 * 60 * 1000);
+    expect(customIntervall.currentRange.duration.inMilliseconds, 24 * 60 * 60 * 1000);
 
-      dayIntervall.moveDataRangeByStep(1);
-      weekIntervall.moveDataRangeByStep(1);
-      monthIntervall.moveDataRangeByStep(1);
-      yearIntervall.moveDataRangeByStep(1);
-      last7DaysIntervall.moveDataRangeByStep(1);
-      last30DaysIntervall.moveDataRangeByStep(1);
-      customIntervall.moveDataRangeByStep(1);
+    dayIntervall.moveDataRangeByStep(1);
+    weekIntervall.moveDataRangeByStep(1);
+    monthIntervall.moveDataRangeByStep(1);
+    yearIntervall.moveDataRangeByStep(1);
+    last7DaysIntervall.moveDataRangeByStep(1);
+    last30DaysIntervall.moveDataRangeByStep(1);
+    customIntervall.moveDataRangeByStep(1);
 
-      expect(dayIntervall.currentRange.duration.inHours, 24);
-      expect(weekIntervall.currentRange.duration.inDays, 7);
-      expect(monthIntervall.currentRange.duration.inDays, inInclusiveRange(28, 31));
-      expect(yearIntervall.currentRange.duration.inDays, inInclusiveRange(365, 366));
-      expect(last7DaysIntervall.currentRange.duration.inDays, 7);
-      expect(last30DaysIntervall.currentRange.duration.inDays, 30);
-      expect(customIntervall.currentRange.duration.inMilliseconds, 24 * 60 * 60 * 1000);
+    expect(dayIntervall.currentRange.duration.inHours, 24);
+    expect(weekIntervall.currentRange.duration.inDays, 7);
+    expect(monthIntervall.currentRange.duration.inDays, inInclusiveRange(28, 31));
+    expect(yearIntervall.currentRange.duration.inDays, inInclusiveRange(365, 366));
+    expect(last7DaysIntervall.currentRange.duration.inDays, 7);
+    expect(last30DaysIntervall.currentRange.duration.inDays, 30);
+    expect(customIntervall.currentRange.duration.inMilliseconds, 24 * 60 * 60 * 1000);
 
-      dayIntervall.moveDataRangeByStep(-2);
-      weekIntervall.moveDataRangeByStep(-2);
-      monthIntervall.moveDataRangeByStep(-2);
-      yearIntervall.moveDataRangeByStep(-2);
-      last7DaysIntervall.moveDataRangeByStep(-2);
-      last30DaysIntervall.moveDataRangeByStep(-2);
-      customIntervall.moveDataRangeByStep(-2);
+    dayIntervall.moveDataRangeByStep(-2);
+    weekIntervall.moveDataRangeByStep(-2);
+    monthIntervall.moveDataRangeByStep(-2);
+    yearIntervall.moveDataRangeByStep(-2);
+    last7DaysIntervall.moveDataRangeByStep(-2);
+    last30DaysIntervall.moveDataRangeByStep(-2);
+    customIntervall.moveDataRangeByStep(-2);
 
-      expect(dayIntervall.currentRange.duration.inHours, 24);
-      expect(weekIntervall.currentRange.duration.inDays, 7);
-      expect(monthIntervall.currentRange.duration.inDays, inInclusiveRange(28, 31));
-      expect(yearIntervall.currentRange.duration.inDays, inInclusiveRange(365, 366));
-      expect(last7DaysIntervall.currentRange.duration.inDays, 7);
-      expect(last30DaysIntervall.currentRange.duration.inDays, 30);
-      expect(customIntervall.currentRange.duration.inMilliseconds, 24 * 60 * 60 * 1000);
-    });
+    expect(dayIntervall.currentRange.duration.inHours, 24);
+    expect(weekIntervall.currentRange.duration.inDays, 7);
+    expect(monthIntervall.currentRange.duration.inDays, inInclusiveRange(28, 31));
+    expect(yearIntervall.currentRange.duration.inDays, inInclusiveRange(365, 366));
+    expect(last7DaysIntervall.currentRange.duration.inDays, 7);
+    expect(last30DaysIntervall.currentRange.duration.inDays, 30);
+    expect(customIntervall.currentRange.duration.inMilliseconds, 24 * 60 * 60 * 1000);
   });
 
 }
test/model/iso_lang_names_test.dart
@@ -4,38 +4,36 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 void main() {
-  group('getDisplayLanguage', () {
-    test('should have unique names for all languages provided in localizations', () {
-      final allNames = <String>[];
-      for (final locale in AppLocalizations.supportedLocales) {
-        final name = getDisplayLanguage(locale);
-        expect(allNames, isNot(contains(name)));
-        allNames.add(name);
-      }
-    });
-    test('should start all names in upper case', () {
-      for (final locale in AppLocalizations.supportedLocales) {
-        final firstChar = getDisplayLanguage(locale)[0];
-        expect(firstChar, equals(firstChar.toUpperCase()));
-      }
-    });
-    test('should not store names where no localization present', () {
-      final tmp = debugPrint;
-      int printCounts = 0;
-      debugPrint = (String? s, {int? wrapWidth}) {
-        printCounts += 1;
-      };
-      for (final c1 in 'abcdefghijklmnopqrstuvwxyz'.characters) {
-        for (final c2 in 'abcdefghijklmnopqrstuvwxyz'.characters) {
-          if (AppLocalizations.supportedLocales.where(
-              (e) => e.toLanguageTag() == '$c1$c2',).isNotEmpty) continue;
-          expect(() => getDisplayLanguage(Locale('$c1$c2')),
-              throwsAssertionError,);
-          expect(printCounts, greaterThan(1));
-          printCounts = 0;
-        }
+  test('should have unique names for all languages provided in localizations', () {
+    final allNames = <String>[];
+    for (final locale in AppLocalizations.supportedLocales) {
+      final name = getDisplayLanguage(locale);
+      expect(allNames, isNot(contains(name)));
+      allNames.add(name);
+    }
+  });
+  test('should start all names in upper case', () {
+    for (final locale in AppLocalizations.supportedLocales) {
+      final firstChar = getDisplayLanguage(locale)[0];
+      expect(firstChar, equals(firstChar.toUpperCase()));
+    }
+  });
+  test('should not store names where no localization present', () {
+    final tmp = debugPrint;
+    int printCounts = 0;
+    debugPrint = (String? s, {int? wrapWidth}) {
+      printCounts += 1;
+    };
+    for (final c1 in 'abcdefghijklmnopqrstuvwxyz'.characters) {
+      for (final c2 in 'abcdefghijklmnopqrstuvwxyz'.characters) {
+        if (AppLocalizations.supportedLocales.where(
+            (e) => e.toLanguageTag() == '$c1$c2',).isNotEmpty) continue;
+        expect(() => getDisplayLanguage(Locale('$c1$c2')),
+            throwsAssertionError,);
+        expect(printCounts, greaterThan(1));
+        printCounts = 0;
       }
-      debugPrint = tmp;
-    });
+    }
+    debugPrint = tmp;
   });
 }