I had the same problem. The tests feed back the output from your encode method to your decode method. So take a look at your encode method, especially the usage of javascript bitwise operations if you have them, like people have discussed below.
If the reference returned by report() is supposed to match the current values, not a snapshot, then the description needs to say this. Ideally with an example, e.g.
var spied = spy(fn), report = spied.report();
report.totalCalls === 0; // spied has not been called yet
spied(1);
report.totalCalls === 1; // spied has been called once
spied("a");
report.totalCalls === 2; // spied has been called twice
At first I thought report() method should return an immutable object. One whose totalCalls and log doesn't change after spied is called again after calling report(). I understood it as a "snapshot" from the time it is created (compare printed report).
'filter' creates a new array + iterates through the total array.
the 'reduce' solution stops when needed and returns a boolean.
I had the same problem. The tests feed back the output from your encode method to your decode method. So take a look at your encode method, especially the usage of javascript bitwise operations if you have them, like people have discussed below.
This solution is very elegant! It's so easily readable
Same problem here
This comment is hidden because it contains spoiler information about the solution
If the reference returned by
report()
is supposed to match the current values, not a snapshot, then the description needs to say this. Ideally with an example, e.g.At first I thought report() method should return an immutable object. One whose totalCalls and log doesn't change after spied is called again after calling report(). I understood it as a "snapshot" from the time it is created (compare printed report).