Ad
  • Custom User Avatar

    The description fails to explain anything besides two links. Does a white kata need to be so obtuse?

  • Custom User Avatar

    Not all inversions of major chords are included in the sample space.

  • Custom User Avatar
    "[58, 67, 74] equal false"
    58 is A#
    the notes of A# Major are: A#, B#(C), C##(D), D#, E#(F), F##(G), G##(A)
    the MIDI notes 58, 67, 74 are A#, G, D; all of them are in the scale
    why is it saying that should return false?
  • Custom User Avatar

    Hi there:

    First off, I like the idea for the kata, it's pretty cool and I actually much prefer it to some of our existing kata on music theory, but I don't think it will be approved in its current state. Here are some things I noticed:

    • Random tests: Random tests are super important for pretty much any kata because it's the only thing stopping people from just hacking your kata for honor points.
      Example: https://www.codewars.com/kata/reviews/55fab6dc96625f04d7000172/groups/5c238ffdded502516b000e8a
      This is possible because your test suite is always the same inputs with the same outputs.
    • Description: As somewhat of a musician myself, I find the description a little... bare-bones.
      It's not necessarily clear whether you want different inversions or voicings to be supported, or which ones you want supported.
      The tests all have the root as the first note in the given tuple, even when there are notes below it later in the list, so it's not clear whether that's by design or by mistake.
      I think this would be better if the description was a bit more fleshed out in terms of specifying the desired inputs and outputs, or at least what will be tested.

    Cheers

  • Custom User Avatar

    No need to include numpy by default

  • Custom User Avatar

    Nice kata :)

    I think it's ready, but I suggest you to remove the numpy import and numpy.array call, because unnecessary.
    Moreover it's strange to see a set as input instead of a list: it doesn't change anything, you can keep it as it is, it is only non-standard...