Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

crypto-square: Improve test data #937

Merged
merged 4 commits into from
Oct 15, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 39 additions & 43 deletions exercises/crypto-square/canonical-data.json
Original file line number Diff line number Diff line change
@@ -1,52 +1,48 @@
{
"exercise": "crypto-square",
"version": "3.0.0",
"version": "3.1.0",
"cases": [
{
"description": "the spaces and punctuation are removed from the English text and the message is downcased",
"cases": [
{
"description": "Lowercase",
"property": "ciphertext",
"plaintext": "A",
"expected": "a"
},
{
"description": "Remove spaces",
"property": "ciphertext",
"plaintext": " b ",
"expected": "b"
},
{
"description": "Remove punctuation",
"property": "ciphertext",
"plaintext": "@1,%!",
"expected": "1"
}
]
"description": "empty plaintext results in an empty ciphertext",
"property": "ciphertext",
"plaintext": "",
"expected": ""
},
{
"description": "Output the encoded text in chunks. Phrases that fill perfect squares `(r X r)` should be output in `r`-length chunks separated by spaces. Imperfect squares will have `n` empty spaces. Those spaces should be distributed evenly across the last `n` rows.",
"cases": [
{
"description": "empty plaintext results in an empty ciphertext",
"property": "ciphertext",
"plaintext": "",
"expected": ""
},
{
"description": "9 character plaintext results in 3 chunks of 3 characters",
"property": "ciphertext",
"plaintext": "This is fun!",
"expected": "tsf hiu isn"
},
{
"description": "54 character plaintext results in 7 chunks, the last two padded with spaces",
"property": "ciphertext",
"plaintext": "If man was meant to stay on the ground, god would have given us roots.",
"expected": "imtgdvs fearwer mayoogo anouuio ntnnlvt wttddes aohghn sseoau "
}
]
"description": "Lowercase",
"property": "ciphertext",
"plaintext": "A",
"expected": "a"
},
{
"description": "Remove spaces",
"property": "ciphertext",
"plaintext": " b ",
"expected": "b"
},
{
"description": "Remove punctuation",
"property": "ciphertext",
"plaintext": "@1,%!",
"expected": "1"
},
{
"description": "9 character plaintext results in 3 chunks of 3 characters",
"property": "ciphertext",
"plaintext": "This is fun!",
"expected": "tsf hiu isn"
},
{
"description": "8 character plaintext results in 3 chunks, the last one with a trailing space",
"property": "ciphertext",
"plaintext": "Chill out.",
"expected": "clu hlt io "
},
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the new test case, which I borrowed from the source of the problem. I think it's a useful bridge between the previous test case, which tests a perfect rectangle, and the next test case, which like this one tests an imperfect rectangle but is quite a bit longer.

{
"description": "54 character plaintext results in 7 chunks, the last two with trailing spaces",
"property": "ciphertext",
"plaintext": "If man was meant to stay on the ground, god would have given us roots.",
"expected": "imtgdvs fearwer mayoogo anouuio ntnnlvt wttddes aohghn sseoau "
}
]
}