Skip to content

Commit

Permalink
refactor(scale_pattern): ♻️ rewrite auxiliar b function as an exten…
Browse files Browse the repository at this point in the history
…sion method on `String`
  • Loading branch information
albertms10 committed Mar 7, 2024
1 parent 3443d22 commit 37b31b4
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 24 deletions.
20 changes: 10 additions & 10 deletions lib/src/scale/scale_pattern.dart
Original file line number Diff line number Diff line change
Expand Up @@ -256,12 +256,12 @@ final class ScalePattern {
///
/// Example:
/// ```dart
/// int b(String sequence) => int.parse(sequence, radix: 2);
/// extension on String { int get b => int.parse(this, radix: 2); }
///
/// ScalePattern.fromBinary(b('101010110101')) == ScalePattern.major
/// ScalePattern.fromBinary(b('111111111111')) == ScalePattern.chromatic
/// ScalePattern.fromBinary(b('1010010101')) == ScalePattern.majorPentatonic
/// ScalePattern.fromBinary(b('101010101101'), b('10110101101'))
/// ScalePattern.fromBinary('101010110101'.b) == ScalePattern.major
/// ScalePattern.fromBinary('111111111111'.b) == ScalePattern.chromatic
/// ScalePattern.fromBinary('1010010101'.b) == ScalePattern.majorPentatonic
/// ScalePattern.fromBinary('101010101101'.b, '10110101101'.b)
/// == ScalePattern.melodicMinor
/// ```
factory ScalePattern.fromBinary(int sequence, [int? descendingSequence]) {
Expand Down Expand Up @@ -291,13 +291,13 @@ final class ScalePattern {
///
/// Example:
/// ```dart
/// int b(String sequence) => int.parse(sequence, radix: 2);
/// extension on String { int get b => int.parse(this, radix: 2); }
///
/// ScalePattern.major.toBinary() == (b('101010110101'), null)
/// ScalePattern.chromatic.toBinary() == (b('111111111111'), null)
/// ScalePattern.majorPentatonic.toBinary() == (b('1010010101'), null)
/// ScalePattern.major.toBinary() == ('101010110101'.b, null)
/// ScalePattern.chromatic.toBinary() == ('111111111111'.b, null)
/// ScalePattern.majorPentatonic.toBinary() == ('1010010101'.b, null)
/// ScalePattern.melodicMinor.toBinary()
/// == (b('101010101101'), b('10110101101'))
/// == ('101010101101'.b, '10110101101'.b)
/// ```
(int sequence, int? descendingSequence) toBinary() {
int toBit(int sequence, Scalable<PitchClass> scalable) =>
Expand Down
28 changes: 14 additions & 14 deletions test/src/scale/scale_pattern_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -41,39 +41,36 @@ void main() {

group('.fromBinary()', () {
test('creates a new ScalePattern from a binary sequence', () {
expect(ScalePattern.fromBinary(_b('101010110101')), ScalePattern.major);
expect(ScalePattern.fromBinary('101010110101'.b), ScalePattern.major);
expect(
ScalePattern.fromBinary(_b('10110101101')),
ScalePattern.fromBinary('10110101101'.b),
ScalePattern.naturalMinor,
);
expect(
ScalePattern.fromBinary(_b('101010101101'), _b('10110101101')),
ScalePattern.fromBinary('101010101101'.b, '10110101101'.b),
ScalePattern.melodicMinor,
);
expect(
ScalePattern.fromBinary(_b('111111111111')),
ScalePattern.fromBinary('111111111111'.b),
ScalePattern.chromatic,
);
expect(
ScalePattern.fromBinary(_b('1010010101')),
ScalePattern.fromBinary('1010010101'.b),
ScalePattern.majorPentatonic,
);
});
});

group('.toBinary()', () {
test('returns the binary representation of this ScalePattern', () {
expect(ScalePattern.major.toBinary(), (_b('101010110101'), null));
expect(ScalePattern.naturalMinor.toBinary(), (_b('10110101101'), null));
expect(ScalePattern.major.toBinary(), ('101010110101'.b, null));
expect(ScalePattern.naturalMinor.toBinary(), ('10110101101'.b, null));
expect(
ScalePattern.melodicMinor.toBinary(),
(_b('101010101101'), _b('10110101101')),
);
expect(ScalePattern.chromatic.toBinary(), (_b('111111111111'), null));
expect(
ScalePattern.majorPentatonic.toBinary(),
(_b('1010010101'), null),
('101010101101'.b, '10110101101'.b),
);
expect(ScalePattern.chromatic.toBinary(), ('111111111111'.b, null));
expect(ScalePattern.majorPentatonic.toBinary(), ('1010010101'.b, null));
});
});

Expand Down Expand Up @@ -673,4 +670,7 @@ void main() {
});
}

int _b(String sequence) => int.parse(sequence, radix: 2);
extension on String {
/// Parse this [String] as a binary integer.
int get b => int.parse(this, radix: 2);
}

0 comments on commit 37b31b4

Please sign in to comment.