assert str(c.harmonize_template(c_major_scale, [1, 2, 3, 4])) == \
       '[<C>, <D>, <E>, <F>]'
assert str(c.harmonize_template(c_major_scale, [1, 3, 5, 6, 8])) == \
       '[<C>, <E>, <G>, <A>, <C>]'

assert str(c_major_scale.harmonize()) == '[' \
        '<Seq: [<C>, <E>, <G>]>, ' \
        '<Seq: [<D>, <F>, <A>]>, ' \
        '<Seq: [<E>, <G>, <B>]>, ' \
        '<Seq: [<F>, <A>, <C>]>, ' \
        '<Seq: [<G>, <B>, <D>]>, ' \
        '<Seq: [<A>, <C>, <E>]>, ' \
        '<Seq: [<B>, <D>, <F>]>' \
    ']'
assert str(c_major_scale.harmonize_template([1, 3, 5])) == '[' \
        '<Seq: [<C>, <E>, <G>]>, ' \
        '<Seq: [<D>, <F>, <A>]>, ' \
        '<Seq: [<E>, <G>, <B>]>, ' \
        '<Seq: [<F>, <A>, <C>]>, ' \
        '<Seq: [<G>, <B>, <D>]>, ' \
        '<Seq: [<A>, <C>, <E>]>, ' \
        '<Seq: [<B>, <D>, <F>]>' \
    ']'

assert str(c_major_scale.harmonize(size=4)) == '[' \
        '<Seq: [<C>, <E>, <G>, <B>]>, ' \
        '<Seq: [<D>, <F>, <A>, <C>]>, ' \
        '<Seq: [<E>, <G>, <B>, <D>]>, ' \
        '<Seq: [<F>, <A>, <C>, <E>]>, ' \
        '<Seq: [<G>, <B>, <D>, <F>]>, ' \