Loading collection data...
Collections are a way for you to organize kata so that you can create your own training routines. Every collection you create is public and automatically sharable with other warriors. After you have added a few kata to a collection you and others can train on the kata contained within the collection.
Get started now by creating a new collection.
This comment is hidden because it contains spoiler information about the solution
The 'fromAscii85' tests are pretty broken in that they don't check size. So if you return a zero-byte result, it will 'pass.'
One of the test on test_encoding_with_multiple_zero_bytes_inside_a_binary
[61, -8, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -98, -109, 119, -85, -92, 23, -111, -112, 31, -108, -125, -55, -44, -73, 95, 79, -120, 76, -53, 39, 12, -16, 102, -61, 120, -110, 2, -59, 55, -74, -120]
The seconds 4 bytes blocks are all Zeros(null), whyit expects this expected:<<~4nocm[zzz]!!!"jPBX('(Qje$P_7*-...>, only 3 zzz instead of 5 zzzzz for that block?
To say there's a C++ version of this Kata is stretching things somewhat. The challenge's "interface" is identical to the C version. Instead of this:
what about this?
and you could get rid of the block struct and those macros, which while tolerated in C, are considered bad practice in C++ (even more so lower case ones). It also doesn't force the caller to manage the memory of the returned pointers (the sample tests as they stand leak memory).
Hey there!
I guess that your not escaping correctly the test cases for c++. Could you check if you are escaping correctly special caracters in the refence string, such as backslash '\'.
Under a certain test case, whithin the test "Now is the time for all good men to come to the aid of their country". The test shows a mismatch.
I've tried two different implementations (With C old plain strings and C++ std::string) both return the same output. Even thought only the std::string approach works correctly on this test case. I've compared the encoded values on several tools to compare and my output look like correct.
This is the output with the problem.
b.data: (Now is the time for all good men to come to the aid of their country) b.n: (68)
total_tuples: 17
4e 6f 77 20 ENCODING! !>b2: 21 3e 62 32 3a - 'Now '
69 73 20 74 ENCODING! =DblB 3d 44 62 6c 42 - 'is t'
68 65 20 74 ENCODING! .<rOB 2e 3c 72 4f 42 - 'he t'
69 6d 65 20 ENCODING! (E.lB 28 45 2e 6c 42 - 'ime '
66 6f 72 20 ENCODING! 4]DoA 34 5d 44 6f 41 - 'for '
61 6c 6c 20 ENCODING! &aK;@ 26 61 4b 3b 40 - 'all '
67 6f 6f 64 ENCODING! !^_5B 21 5e 5f 35 42 - 'good'
20 6d 65 6e ENCODING! -\kD+ 2d 5c 6b 44 2b - ' men'
20 74 6f 20 ENCODING! ENVE+ 45 4e 56 45 2b - ' to '
63 6f 6d 65 ENCODING! q3Hr@ 71 33 48 72 40 - 'come'
20 74 6f 20 ENCODING! ENVE+ 45 4e 56 45 2b - ' to '
74 68 65 20 ENCODING! .5,DF 2e 35 2c 44 46 - 'the '
61 69 64 20 ENCODING! p60;@ 70 36 30 3b 40 - 'aid '
6f 66 20 74 ENCODING! 6,:eD 36 2c 3a 65 44 - 'of t'
68 65 69 72 ENCODING! umtOB 75 6d 74 4f 42 - 'heir'
20 63 6f 75 ENCODING! 4>fC+ 34 3e 66 43 2b - ' cou'
6e 74 72 79 ENCODING! EoKKD 45 6f 4b 4b 44 - 'ntry'
<
:2b>!BlbD=BOr<.Bl.E(AoD]4@;Ka&B5_^!+Dk-+EVNE@rH3q+EVNEFD,5.@;06pDe:,6BOtmu+Cf>4DKKoE>3c 7e 3a 32 62 3e 21 42 6c 62 44 3d 42 4f 72 3c 2e 42 6c 2e 45 28 41 6f 44 5d 34 40 3b 4b 61 26 42 35 5f 5e 21 2b 44 6b 5c 2d 2b 45 56 4e 45 40 72 48 33 71 2b 45 56 4e 45 46 44 2c 35 2e 40 3b 30 36 70 44 65 3a 2c 36 42 4f 74 6d 75 2b 43 66 3e 34 44 4b 4b 6f 45 7e 3e
Could you take a look at this please?
Testing_ASCII85_encoding_with_random_binary_input
Random encode binary input
What does it mean? :-D
Testing_encoding_with_multiple_zero_bytes_inside_a_binary
Random zero strings binary input
Didn't get it too :-D All tests passed except these two. But nice kata.
generateRandomBinaryData
andgenerateRandomReadableStrings
doesn't exist in Typescript (not available inglobal
nor as an import)This comment is hidden because it contains spoiler information about the solution
Your random tests use the user's encode function to make the encoded versions of the random strings. This has a number of issues:
An easy solution to this is to include your own encoder in the test cases and use that to generate the answer key instead of the user's encoder.
What's the output for <
!!>? I'm gettingHi all. I would like to know the output for the input: '<
!!>' ?I run my code and the system throws:
Expected: , instead got: ,
why?
Explain, please result of this test (Python):
(Is it an error in the test?)
Testing ASCII85 decoding with random binary input:
INPUT: <
O>U2<^Q,>'\x905Y\xfb\xbf\x8f' should equal '\x905Y\xfb\xbf\x8e\xb9\xec\x80\x14\xbc\xac\x166\xb0o\x8b\x01{\xf9\x13% yl\x06\xf6\xf1\xc0\x91\x12)"%I\xe5s\xcb\x19\xb6}\x9d\x8fe/$\r\x7f\x00\xad\xd3\xb2\xe5\xeb;\x93l<3\xd9\xb8l\x05\x80K\x03\xa6\xfdN\xc7\x97r\xdaB\x909\xe7\xbc72\xb2\xb8\x17\xe7\xef2\x90lR\x152\xc8*\xec\x11\xd0\n\xf6\x14\x19\x89\xbf\xf5\xbc\xf2\x88\xd6\xac\x08\x9b\x1f\xea\x19u\xcb.;\xdb\x9e\xae\xd2\xdd\x91.\x96\xaa\x19\xa8k$I\xcb\xc9\x93y\x8e\x92\x99k\x94* \x81\r\x80\x80\x84\xa9Q\xdeXo\x18{fh\xd7\xaeV\xa3ce\xe4\ty\xd0\xe3\xb1Q\xe2\xa9\xc2\x8b\xed\x9f\x12\x0f\x9aS\x027|\x96\xea|\x05!J\x85\xb1!z\xf3\xb4\x05t\xdd\x0f\xd6\xcc\xfc\xd57\x7f U\xef\xb4l\t\xb7\x05\xb9\x89\xd1\xbf\xb8v\x1b\xc7F\xe1@\x9fM\x1d?\xb3
Q\x94\x9eL-\xe6\xf6\xc4\xe8\xc4\x8e\xc3,\x05\x96wxa\x03\xbf\xfa\x0b\xd0]\xdb3\xa5YR\x14\x9d\x7f0\xe1%w\t\xba +l\xfd\xf9\xa1K\xd4\xb4\xa2hR\x8a\x14\xfc\x1e\xd6H\xf3\x91\xfb\xb0\xe8\xb6X\xd1\xbe&\xd1\x9c\x9cR\xd8\x80\x17a\x1b\xd3\xb0-C\x895\xbc\xac\xe7\xe3"\xdf\xff\x1a\x10j\xc0Z\xa1\xc7[\xcb\x04\xde\xdd\xf6\xf8\x90\x9f\x9b6\t\x0f\xba\x10\xdcIuq\x98\x1b<\xb7[\x80\xec\xbfr9\x8d\x9c\xa1\xe6\x8d\xab\xc0\xb0\r\xe9\xe0\xe1\xf5\xf1;\x15O<\xc1\x8f\x17\xc2i\x87\x0e\x98\x12\xdc\xb6\xaf\x13\x9eI[!\t\x12\xcc\xd1\xc0\x14\x95r\xb6\xa2\x97\xfa\x13\xd6\xf9\xd6\xe98\xc0\x12\x88W\xb9\xa4b?\x8cc\xd1\x81\x1c\xea\xb4\xb4\x9b/\xe4o7\xa8\x13\xdd\x98@\x86\xf6\xa5\xb4\xbeQ df\xc3\xc9\x15Af\x17\xf4vY}\xb4c\x8e\xe2\x08c\xe3K\xfe[\xae\xe9\x13\xcd#\t\xfdtv\x8b\xef\xcfF_-9 \x97Yg\xcb\xd2\xcb\xf6\xc1,{8\x1a\xc4y\xcf\x95\x86X\x02\xf7\x07\xbc\x94,v\xce\x82\x0e'\r-f,j3\xe4\x86\xd6e\xda8Mg%SK6\xb0V\xdeA\xd8\x1a%l\x11\xa6\xfa\zz\xc9\x1c\xcaZ\xac)3\x88L8{yg\xfa\xf9\xcc\xd4TM\x1f\xe2\xd6\xa9v\xef\xf7MfA\xd8\x82\x0f\x05'\x9b\xed\x1c\xc8\xab\xd4\xd6\xc7+Ves\xa4Y\xd7\xed!\xa0\xf3\xc14\xaa%\x84RK6\xf4\xbd\xa2s\xc9!\xc8o_\xd3\xe2\n6\x11bH1I\x89\x19\x924Z\xa9:\xe6\xb7\xcd\xa2\xd4\xf3k\xfd\xf1\x05\xb3j\t\xfb\xe4x\xad\x14u\xe5U\x9b\x84=\xbe\x1a\xaa\x9d\x9e$\x95\x80\x10\xd91U\xd5\xf6\x98\xd1\xc9\xc2\x9a\x7f\xb9\xab@t\xc4\xf9\xfd\xfcv+\xd3\xf9\xa6+[d2\rX\xa3Q\xba;Z\x97\xc9q\xcamM\x11\xf2\xfc\xec\x13\xafT\xc2^\x01\xa5G\xd1~\x9a["Ef\xd7\xdd\xa0\xd6\xbaf"p\xb5\xe1\xf2\xa3RSX\xc0B<\xfd\xe8\x89\x18DX\xb3\xd3\xd3i\xcb\xccL\xeaK\xe2h\xa8\xabT?\xf7#\x96\x1e\x9a\xb0\x02u0\xf6yT\xc6\x83\xb1rm\x03=\xcb{@xl\x8e\x0b1\xc8\x17\x00|"t\xd5`6\x0c\xde\xc2\x88\x80i\xd5J\xa8\xa7\xa5\xce\xa1:S\xfe\x9d\x86\xe2V!\x981\x90tmEtG|%\x1e\x08&,m\xe2O\xe6\xdb(n(9\x13F\x9d\x9d\xd3\x98 B\n\xe5P\xd9P\xae\xad\xc1Pq\xdcC\xab\xee[\xe1\x01\x0e%\xd5t\xa0\xde\xa2\x89M\x9f\x8bUE\xb2\x014\x9a\xff\xb0[\x86\x15\xf4\xc7\tp~&\xfc\x89@\x9ag\xe6\xd6\xae\xe6\xc0|\xe6\xf4'\xb3\xc8\xd4\xf0\xea#\xedd~\xd7\x01\xca1\x17\xc8\xc7\xf1Z\xa7*\x0b\xf2\xef\xa6\x16+;\x82KW\x02\xedx\x16{\xf2\xeaH g}\xfa\xceG\x80Z\xc5\xc9\xef\xc2Z\x08\xf6\r-P\xd1\xa3\xad\xc0?\xde2\x1f\xdd\xa9\xdf\xacl\x12\xff\x87Z\xa9\xa9\xda\xa6\t\xe91\x10\x92\xdbGm\x0b\xbf\x8f'Reading the discussion and having worked through most of the kata (stuck on decoding binary), I would say there are two clear changes that should be made to the test cases:
the tests for 'encoding' binary data are vacuous and should be removed. They are only testing that the warriors
toAscii85
function produces the same result as itself. So they are no test of thetoAscii85
function at all and thus should be removed. I'd recommend just keeping the 'decoding' binary tests and rename them 'test of binary encoding and decoding'tests should ideally not involve randomness that changes each time the test is run. Ideally if randomness is required they should be seeded, so they are at least consistent from one test run to the next. Not so straightforward in JavaScript, but see http://stackoverflow.com/questions/521295/javascript-random-seeds
otherwise great kata - I have no bitwise operations at all in my current version, so thinking I have a different issue to others. Now I think about it sounds like bitwise might be more efficient. I'm probably failing the binary section because of odd interactions between binary and regex and/or string operators
Is the java version of this relevant?? I was thinking about contributing...There are very few questions for java on codewars
You should escape test output.
http://imgur.com/8tz1I7t