Ad
  • Custom User Avatar
    console.log("List.repeat([1,2,3]).concat().take(4)");
    Test.assertDeepEquals( List.repeat(List.fromList([1,2,3])).concat().take(4).toList(), [1,2,3,1] );
    

    It's passing a List, just as the description of concat requires, and expecting a List. The actual testing is done on an Array.

    If you are unsure, it might help to console.log the input.

  • Custom User Avatar

    I can't find the exact reference ( there are a lot of tests .. ), but it's only a test header ( I think ). You should be able to take the description at its word, so when List.repeat is passed a List, you have to repeat that List, and not some array. If it were passed an Array, you'd have to repeat that. This may be somewhat complicated by the fact I can't directly test on Lists, so I have to convert them back to Arrays for testing.

    If you have questions about specific tests, please tell me where to find that test.

  • Custom User Avatar

    That is the expected behaviour ( the error message could have been clearer ). Why are you evaluating the fold function over an empty list?

    Note that you have mangled the test line by not quoting it as code. The full line is Test.assertDeepEquals( List.empty.foldr( () => _|_ , Math.E ), Math.E ); but MarkDown uses _ as <i>.

    If you want a clearer error message, change _|_ to { throw new Error("I must never be evaluated"); }