diff --git a/lib/src/chart/base/axis_chart/axis_chart_data.dart b/lib/src/chart/base/axis_chart/axis_chart_data.dart index 4994dab01..07be42036 100644 --- a/lib/src/chart/base/axis_chart/axis_chart_data.dart +++ b/lib/src/chart/base/axis_chart/axis_chart_data.dart @@ -112,7 +112,10 @@ class TitleMeta { required this.formattedValue, required this.axisSide, required this.rotationQuarterTurns, - }); + }) : assert( + rotationQuarterTurns >= 0, + "TitleMeta.rotationQuarterTurns couldn't be negative", + ); /// min axis value final double min; diff --git a/lib/src/extensions/size_extension.dart b/lib/src/extensions/size_extension.dart index 5290f2479..f1ec2769c 100644 --- a/lib/src/extensions/size_extension.dart +++ b/lib/src/extensions/size_extension.dart @@ -1,9 +1,13 @@ import 'dart:ui'; extension SizeExtension on Size { - Size rotateByQuarterTurns(int quarterTurns) => switch (quarterTurns % 4) { - 0 || 2 => this, - 1 || 3 => Size(height, width), - _ => throw ArgumentError('Invalid quarterTurns $quarterTurns'), - }; + Size rotateByQuarterTurns(int quarterTurns) { + if (quarterTurns < 0) { + throw ArgumentError('quarterTurns must be greater than or equal to 0.'); + } + return switch (quarterTurns % 4) { + 0 || 2 => this, + _ /*2 || 3*/ => Size(height, width), + }; + } } diff --git a/test/extensions/size_extension_test.dart b/test/extensions/size_extension_test.dart index 2f3fd947b..c04b6fcdc 100644 --- a/test/extensions/size_extension_test.dart +++ b/test/extensions/size_extension_test.dart @@ -12,5 +12,13 @@ void main() { expect(const Size(100, 200).rotateByQuarterTurns(4), const Size(100, 200)); expect(const Size(100, 200).rotateByQuarterTurns(5), const Size(200, 100)); expect(const Size(100, 200).rotateByQuarterTurns(6), const Size(100, 200)); + expect( + () => const Size(100, 200).rotateByQuarterTurns(-1), + throwsArgumentError, + ); + expect( + () => const Size(100, 200).rotateByQuarterTurns(-3), + throwsArgumentError, + ); }); }