check50

cs50/problems/2021/x/substitution


:) substitution.c exists

Log
checking that substitution.c exists...

:) substitution.c compiles

Log
running clang substitution.c -o substitution -std=c11 -ggdb -lm -lcs50...

:( encrypts "A" as "Z" using ZYXWVUTSRQPONMLKJIHGFEDCBA as key

Cause
expected "ciphertext: Z\...", not ""

Log
running ./substitution ZYXWVUTSRQPONMLKJIHGFEDCBA...
sending input A...
checking for output "ciphertext: Z\n"...

Expected Output:
ciphertext: Z
Actual Output:

:) encrypts "a" as "z" using ZYXWVUTSRQPONMLKJIHGFEDCBA as key

Log
running ./substitution ZYXWVUTSRQPONMLKJIHGFEDCBA...
sending input a...
checking for output "ciphertext: z\n"...
checking that program exited with status 0...

:) encrypts "ABC" as "NJQ" using NJQSUYBRXMOPFTHZVAWCGILKED as key

Log
running ./substitution NJQSUYBRXMOPFTHZVAWCGILKED...
sending input ABC...
checking for output "ciphertext: NJQ\n"...
checking that program exited with status 0...

:) encrypts "XyZ" as "KeD" using NJQSUYBRXMOPFTHZVAWCGILKED as key

Log
running ./substitution NJQSUYBRXMOPFTHZVAWCGILKED...
sending input XyZ...
checking for output "ciphertext: KeD\n"...
checking that program exited with status 0...

:) encrypts "This is CS50" as "Cbah ah KH50" using YUKFRNLBAVMWZTEOGXHCIPJSQD as key

Log
running ./substitution YUKFRNLBAVMWZTEOGXHCIPJSQD...
sending input This is CS50...
checking for output "ciphertext: Cbah ah KH50\n"...
checking that program exited with status 0...

:) encrypts "This is CS50" as "Cbah ah KH50" using yukfrnlbavmwzteogxhcipjsqd as key

Log
running ./substitution yukfrnlbavmwzteogxhcipjsqd...
sending input This is CS50...
checking for output "ciphertext: Cbah ah KH50\n"...
checking that program exited with status 0...

:) encrypts "This is CS50" as "Cbah ah KH50" using YUKFRNLBAVMWZteogxhcipjsqd as key

Log
running ./substitution YUKFRNLBAVMWZteogxhcipjsqd...
sending input This is CS50...
checking for output "ciphertext: Cbah ah KH50\n"...
checking that program exited with status 0...

:) encrypts all alphabetic characters using DWUSXNPQKEGCZFJBTLYROHIAVM as key

Log
running ./substitution DWUSXNPQKEGCZFJBTLYROHIAVM...
sending input The quick brown fox jumps over the lazy dog...
checking for output "ciphertext: Rqx tokug wljif nja eozby jhxl rqx cdmv sjp\n"...
checking that program exited with status 0...

:) handles lack of key

Log
running ./substitution...
checking that program exited with status 1...

:) handles invalid key length

Log
running ./substitution QTXDGMKIPV...
checking that program exited with status 1...

:) handles invalid characters in key

Log
running ./substitution ZWGKPMJRYISHFEXQON2DLUACVT...
checking that program exited with status 1...

:) handles duplicate characters in key

Log
running ./substitution YFDTSMPBVIEERGHWONUAKLQXCZ...
checking that program exited with status 1...

:) handles multiple duplicate characters in key

Log
running ./substitution BBCCEFGHIJKLMNOPQRSTUVWXYZ...
checking that program exited with status 1...