• Custom User Avatar

    It's never stated in the description that all versions need to be related. It's ok to skip versions. This task is about sorting versions, related or not.

  • Custom User Avatar

    fixed

  • Custom User Avatar
  • Custom User Avatar
  • Custom User Avatar

    Nice kata to practice sorting with.

  • Custom User Avatar

    This comment is hidden because it contains spoiler information about the solution

  • Custom User Avatar

    python new test framework is required. updated in this fork

  • Custom User Avatar

    I think the rangom tests violate the given assumptions: 'there will always be a rank 1 in the given input ranks are of type string
    rank numbers are incremented, and not skippped (1.1 could be followed by 1.2, not 1.3)'
    Random test:
    ['2', '2.1', '2.1.1.1', '2.1.1.1.2', '2.1.1.2', '3', '4']
    ^ no ^ skipping 2.1.1 here
    rank 1 here

  • Custom User Avatar

    I've switched the expected and actual assertion arguments.

  • Custom User Avatar

    I've added a bunch of randomised test cases that use a subset of the available test cases.

  • Custom User Avatar

    Yes, I saw the "shuffle part" of the tests. But the solution being always the same, it could be hard coded without a real random test.

    Regards,
    B4B

  • Custom User Avatar

    I added # at the end and got accepted as a valid, separate solution.
    I don't know what is causing this, but thanks for letting me know :)

  • Custom User Avatar

    @Blind4Basics,

    The six main tests are somewhat random (using random.shuffle) but they could be better. Generating random "version" strings would not be difficult at all and you could test many more (I usually see ~100 random tests on most katas).

    Thanks for mentioning that!

  • Custom User Avatar

    It would be nice to have random tests too ! :)

  • Custom User Avatar

    @danarters,

    This kata seems familiar but I couldn't find a duplicate after a quick search. Here are a few suggestions in the mean time!

    • Typo in the description: skippped -> skipped

    • It looks like you accidentally reversed the order of the arguments in the tests. It just messes up the error message {actual} should equal {expected}.

    • (Optional) The Example Test Cases seem a bit over-complicated. You don't really need to shuffle those lists every time they are run. They could be easily simplified:

      test.assert_equals(sort_ranks(
          ['3', '1', '10', '6', '2', '4', '5', '9', '7', '8']),
          ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'])
      test.assert_equals(sort_ranks(
          ['1.1.1.1', '1', '1.1', '1.1.1']), ['1', '1.1', '1.1.1', '1.1.1.1'])
      test.assert_equals(sort_ranks(
          ['2', '1.1', '1', '1.2']), ['1', '1.1', '1.2', '2'])
      
    • (Optional) There is also a fair bit of repetition in your main Test Cases. It could be cleaned up quite easily.

    Thanks!

  • Loading more items...