• It should be 'terrorists', not 'terrorist'...

  • This kata is too easy in the current form. This could be an interesting kata if both the user and the troll had to be in the user list.

    Example:

    // baz123 isn't a troll as baz isn't in the array
    {"sue", "foo", "bar", "sue123", "baz234"} => {"sue", "foo", "bar", "baz234"}
    
    // baz234 isn't in the result as baz is in the input array.
    {"sue", "foo", "baz", "sue123", "baz234"} => {"sue", "foo", "baz"}
    

    Regards,

    suic

  • The description is inconsistent. Either use variable names or example numbers.

  • The description is incomplete, and the answer is already provided. I'm not sure what the point of this kata is.

  • Since you did not change the reference solution, we can now talk about the problem in it.

    Assert.AreEqual(2, Kata.CountOfWays(2, 3, 4));
    

    Apparently, there are more than 2 ways for arranging 4 from 2 Apples and 3 Pears

    AAPP
    APAP
    APPA
    PPAA
    PAPA
    PAAP
    
    APPP
    PAPP
    PPAP
    PPPA
    

    Actually there are 10....

  •     public void RandomTest()
        {
          Assert.AreEqual(2, Kata.CountOfWays(2, 3, 4));
          Assert.AreEqual(15, Kata.CountOfWays(4, 2, 6));
        }
    

    Nope, random tests are not recognized by test name. You should actually implement random tests.

  • There's a compilation error in basic tests:

     fixture.cs(10,49): error CS0103: The name `IsBombDefused' does not exist in the current context
    

    It is Assert.AreEqual("...", IsBombDefused(...)); and should be Assert.AreEqual("...", Kata.IsBombDefused(...));

    Also, no random tests.