Testing transpositions when we're not starting with the key of C.
Testing that natural chords with alterations are transposed with their alterations intact. E.g. C7 transposed up 4 becomes E7, G7alt transposed up 9 becomes E7alt, etc.
Testing that when starting from an "accidental" chord with an alteration (e.g. F#7), we transpose correctly.
Additional tests for chords with weird starting points.
Testing that the transposer can accurately discover minor chords.
Testing that minor chord transpositions grammatically work.
Testing that when given a comma delimited list of chords, the tranposer transposes each chord correctly.
Testing that space delimiters work when parsing multiple chords.
Testing that tab delimiters work when parsing multiple chords.
Testing that when given an array of chords, it transposes each correctly.
Testing that when given an target key, we return that key if it's one of the enharmonic tones of the given key.
Testing that when given an target key, we can only return that key if it's in the "enharmonic zone" - positions 5 to 7 of the circle of 5ths. Otherwise, we should take the default key decided by the transposer.
Testing that when transposing in the key of C#, the 5th chord is transposed correctly (i.e. C-G-C becomes C#/G#/C#, not C#/Ab/C#).
Adding supplementary ii-V-I tests.
Testing that when trying to target an invalid minor key, we get the correct minor key instead. (I.e. if you try to transpose to Gbm, you should get F#m chords instead.)
Testing that when target a minor key which is noted as minor, we use the key generated by the chordParts method (otherwise, we end up with a strange bug).
Supplementary test for minor transposition to extreme enharmonic keys.
No longer binding the constructor to all prototype methods.
Refactoring the method by which we calculate transpositions for enharmonic keys to another function.
Testing that when given a chord with a bass note, we correctly transpose the bass note as well.