diff --git a/lib/src/enharmonic.dart b/lib/src/enharmonic.dart index 5f2eb38f..467cf7b5 100644 --- a/lib/src/enharmonic.dart +++ b/lib/src/enharmonic.dart @@ -9,11 +9,7 @@ abstract class Enharmonic final int semitones; /// Creates a new [Enharmonic]. - const Enharmonic(this.semitones) - : assert( - semitones > 0 && semitones <= chromaticDivisions, - 'Semitones must be in chromatic divisions range', - ); + const Enharmonic(this.semitones); /// Returns the items sharing the same [semitones]. Set get items; diff --git a/lib/src/note/enharmonic_note.dart b/lib/src/note/enharmonic_note.dart index 52886cd7..50c0acb1 100644 --- a/lib/src/note/enharmonic_note.dart +++ b/lib/src/note/enharmonic_note.dart @@ -1,7 +1,11 @@ part of '../../music_notes.dart'; class EnharmonicNote extends Enharmonic { - const EnharmonicNote(super.semitones); + const EnharmonicNote(super.semitones) + : assert( + semitones > 0 && semitones <= chromaticDivisions, + 'Semitones must be in chromatic divisions range', + ); static const c = EnharmonicNote(1); static const cSharp = EnharmonicNote(2); diff --git a/test/src/interval/enharmonic_interval_test.dart b/test/src/interval/enharmonic_interval_test.dart index a9c1ecde..6fa2d9b8 100644 --- a/test/src/interval/enharmonic_interval_test.dart +++ b/test/src/interval/enharmonic_interval_test.dart @@ -66,6 +66,11 @@ void main() { const Interval.imperfect(7, ImperfectQuality.major), const Interval.perfect(8, PerfectQuality.diminished), }); + expect(const EnharmonicInterval(13).items, { + const Interval.imperfect(7, ImperfectQuality.augmented), + const Interval.perfect(8, PerfectQuality.perfect), + const Interval.imperfect(9, ImperfectQuality.diminished), + }); }, ); }); diff --git a/test/src/note/enharmonic_note_test.dart b/test/src/note/enharmonic_note_test.dart index 9dc21566..d74acf84 100644 --- a/test/src/note/enharmonic_note_test.dart +++ b/test/src/note/enharmonic_note_test.dart @@ -5,6 +5,16 @@ import 'package:test/test.dart'; void main() { group('EnharmonicNote', () { + group('constructor', () { + test( + 'should throw an assertion error when arguments are incorrect', + () { + expect(() => EnharmonicNote(-2), throwsA(isA())); + expect(() => EnharmonicNote(13), throwsA(isA())); + }, + ); + }); + group('.items', () { test('should return the correct Notes for this EnharmonicNote', () { expect(EnharmonicNote.c.items, {