Ad
  • Custom User Avatar

    Me, on the other hand, I think that separate handling of inputs of the form "xx-yy aa-bb" was an interesting twist, and not an annoying edge case. Numbers were an annoying test case, and handling of the hyphenated words was a valid requirement in my opinion.
    I also liked the theme and humorous aspect of the kata, it was fun.

    Having said that, I can also understand low satisfaction of users solving it. I thik the users might be of an opinion that it's "just yet another slice-and-mix string manipulation task", which are really plenty here on Codewars. I would believe that technical aspects were a secondary factor. This should not discourage you though, because there's a couple of places where kata authors can find some help: Codewars docs have some pages related to kata authoring: https://docs.codewars.com/authoring/kata, and Codewars Discord server has #help-author, #reviewing, and #kata-ideas channels where experienced users are always willing to help.

  • Custom User Avatar
    • retirement is definitive, unfortunately. It's a "one way" action (some infos here)

    • 'might be because I'm not english native, but I actually don't see any difference between ass-car and ass-father-in-law... 'x)

    • intersting vs "move zeros to the end": yeah, sure. Thing is, easy/boring tasks have already been implemented a lot and the community generally don't like new ones to come up nowadays. This only (the fact that the underlying task of your kata is actually a basic string replacement) would have make very unlikely that your kata would have survived the beta phase, even if published without flaws right at the start (well, it would have survived longer for sure, yes. But I doubt it would have reached approval requirements).

    • random tests: they wouldn't have been judged "good enough" for the following reasons:

      • you currently have 2 separated batches of random tests with very pecific behavior each. That's easy to "hardcode". Solution: mix the two generators into one single batch, picking one generator function randomly
      • ...but: the gen2 pattern is currently spotable very easily: if(input.includes('something-') ? ... : ... => would have required a better random generator ("something-more random" ;) )

    Cheers

  • Custom User Avatar

    What does it mean for a kata to be retired? Does it stop being retired if the satisfaction rate goes up? if so how?

    It's not that much of an annoying edge-case. The effect is to get a funny word like ass-car. The joke somehow won't work with something like ass-father-in-law (best example I could find unlike something like self-reference). Btw, writing this paragraph felt reaaally weird but I don't have anyone to blame for that except myself.

    No offense taken and I really appreciate your feedback, but how is this less interesting than "move zeros to the end" or other arbitrary tasks in other katas? Judging by the new solutions that actually work and the satisfaction rate, I'm assuming most of them are left from when I first published the kata with its many issues.

    I added the randmon tests for the word-word word-word pattern. Unless i'm getting something wrong it wasn't that huge.

    Thanks again <3

  • Custom User Avatar

    Things are...:

    • I don't see any valid reason why this pattern shouldn't behave exactly like the others. It's introducing an annoying edge case.
    • if the edge case is kept, the random tests need a huge improvment because this case never shows up.

    It's the very same about Ass => uppercase letters are never showing up in the random tests.

    Hint: frankly speaking, keeping any of those edge case will just make more annoying an already rather annoying task (only the story makes it somewhat interesting)

    Note: the lower/upper case thing could actually be added very easily without being annoying, to the condition it's properly described and tested.


    I just saw the kata is already retired (that's automatic based on the satisfaction rate). I guess you see why, with what I explained above... ':)

    Cheers

  • Custom User Avatar

    I think all should be fine now.

  • Custom User Avatar

    Thank you for taking the time to audit my kata.

    Wouldn't the line "patterns such as 'word-word word-word' don't have to be modified." in the description suffice in covering this case? Your solution should only modify the input with the pattern word-ass word.

  • Custom User Avatar

    given funny-ass self-reference
    expected 'funny ass-self-reference' to deeply equal 'funny-ass self-reference'

    fixed

    are you sure? I don't think so (look at my solution)

  • Custom User Avatar

    The input issue is fixed now. Users are explicitly told that the input is going to be a string. That case with 0 is now '0'.

  • Custom User Avatar

    Oh god... I added random cases. Am I doing this wrong? This is my first kata, and I'm kinda freaking out a bit haha 0~0

  • Custom User Avatar

    Ok. Now I see why you included random tests. My assumption was that nobody would "cheat" that way.

    Fun fact: there are users who got all the way from 8 kyu to 1 dan this way.

  • Custom User Avatar

    Sorry, can you be a bit more clear? Now it just says the output MUST be a string. And with the examples the the description fixed, I think it's a bit more clear. Should I clearly state that the input might be and integer, float or a string?

    I am sorry for not being clear, let me try again:

    • Is it possible that input is 1026374n? Or [1,5,3,0]? Or null? Or {name: 'John', age: 42 }? Or x => x+1?
    • There is more than one way to turn things into strings, and each way can give different results. What is expected form of a stringified number? Of a function? Of an object? Of null?

    What I generally want to do is to discourage you from testing with anything else than strings. When non-strings come into picture, a can of worms opens with issues related to specification, requirements, implementation, etc.

  • Custom User Avatar

    Is it better? Or should I avoid external links if possible?

    This is fine. It's possible that a linked resource disappears, but it's not that much of a problem if the resource is not critical for solving the kata.

  • Custom User Avatar

    Ok. Now I see why you included random tests. My assumption was that nobody would "cheat" that way.

  • Custom User Avatar

    Random tests are needed to reject solutions like this one: https://www.codewars.com/kata/reviews/634836db7b911e0001bcc0c9/groups/634843be010fd50001fdd1e3 .
    I am also not sure what you mean by "[random tests] don't really go with the essence of the kata..."?

  • Custom User Avatar

    Thank you for your thorough examination. I really appreciate it. <3

    Handling of casing should be explained (why an upper-case letter turns into a lower-case letter?) done.
    "output MUST be a string in small letters"


    given funny-ass self-reference
     expected 'funny ass-self-reference' to deeply equal 'funny-ass self-reference'
    

    fixed


    For more information, and hopefully a giggle, visit the comic that inspired this kata

    I didn't mean information regarding how to solve the kata, but I can see how it can be misleading.
    Now it simply says:

    If you want some giggles, visit the comic that inspired this kata:

    Is it better? Or should I avoid external links if possible?


    There are two inputs with different expected answer?

    fixed


    Do I have to inlcude random tests? It doesn't really go with the essence of the kata...


    assert.deepEqual(xkcd37(0), "0"); - this sucks, why even. "Does not follow the pattern" would arguably still imply that inputs are strings, it does not clearly explain that inputs can be integers or airplanes.

    Sorry, can you be a bit more clear? Now it just says the output MUST be a string. And with the examples the the description fixed, I think it's a bit more clear. Should I clearly state that the input might be and integer, float or a string?


    Textual representation removed.

  • Loading more items...