Final draft solution.

Final, because it produces the correct (ok, need to remove entries with
0 value), for the first 4 tests, and draft, because it throws exception on the rest of
the tests. Could be because of number vs symbol, further investigation
is required.

But all fn should be correct, because covered with proper tests, so
issue must be in the fn which combines all parts together or somewhere
around.