UPC/4sem/isaip/01/PlayfairCypher/PlayfairTests/CryptorTest.cs
2021-02-13 02:57:38 +07:00

90 lines
No EOL
4.7 KiB
C#

using System;
using System.Collections.Generic;
using NUnit.Framework;
using PlayfairCypher.Models;
// ReSharper disable StringLiteralTypo
namespace PlayfairTests {
public class Tests {
PlayfairCrypto cryptor;
private List<Tuple<string, string, string, string>> data; // Tuple: keyword, text, encoded_text, decoded_text
[SetUp]
public void Setup() {
cryptor = new PlayfairCrypto();
data = new List<Tuple<string, string, string, string>> {
Tuple.Create("MOTHER", "DRILL", "RAKFIZ", "DRILLX"),
Tuple.Create("ABSOLUTE", "UNION", "TMQCPW", "UNIONX"),
Tuple.Create("FLY", "SIMILAR", "PNNKYBSW", "SIMILARX"),
Tuple.Create("LARGE", "VOLUME", "ZIEPOR", "VOLUME"),
Tuple.Create("DISCIPLINE", "BEDROOM", "LASORVUF", "BEDROXOM"),
Tuple.Create("ACUTE", "APPLIED", "COQKNAFW", "APPLIEDX"),
Tuple.Create("COTTON", "HESITATE", "KBQLNCEK", "HESITATE"),
Tuple.Create("PLANET", "EJECT", "AMAFCV", "EIECTX"),
Tuple.Create("HELP", "WARM", "ZESK", "WARM"),
Tuple.Create("SNIFF", "EXPERTISE", "DYTBTUFNDY", "EXPERTISEX"),
Tuple.Create("VIGOROUS", "REMEDY", "IKWMHT", "REMEDY"),
Tuple.Create("DISH", "RAINBOW", "USHLGKXY", "RAINBOWX"),
Tuple.Create("CANDIDATE", "EMPHASIS", "FKVPDQDU", "EMPHASIS"),
Tuple.Create("ARROW", "COPPER", "EAQVQDOV", "COPXPERX"),
Tuple.Create("SHINE", "ILLNESS", "CRMISHIV", "ILLNESSX"),
Tuple.Create("COUNCIL", "PROTEST", "QSIQDTRZ", "PROTESTX"),
Tuple.Create("FUNNY", "PROGRESSIVE", "QSSBXLRZPMXC", "PROGRESXSIVE"),
Tuple.Create("DRIFT", "RELIEF", "FBQCME", "RELIEF"),
Tuple.Create("DEMOCRATIC", "SMILE", "QOBKMW", "SMILEX"),
Tuple.Create("COLORFUL", "PETTY", "TAQZSZ", "PETXTY"),
Tuple.Create("INFRASTRUCTURE", "ADVOCATE", "NKXLERUS", "ADVOCATE"),
Tuple.Create("RADICAL", "MAINSTREAM", "KDFTTUDLDK", "MAINSTREAM"),
Tuple.Create("TALENTED", "PROGRAM", "QSUOQLKY", "PROGRAMX"),
Tuple.Create("FAN", "SALAD", "RNREGV", "SALADX"),
Tuple.Create("SOUR", "SCREAM", "OBEKST", "SCREAM"),
Tuple.Create("REWARD", "BLAME", "FIGSWV", "BLAMEX"),
Tuple.Create("DIFFERENCE", "RESIDENT", "DRQFIRBP", "RESIDENT"),
Tuple.Create("EXPANSION", "BIBLE", "COSRXP", "BIBLEX"),
Tuple.Create("EXTRACT", "EXPORT", "XTQPAR", "EXPORT"),
Tuple.Create("OVERLOOK", "FANTASY", "GKPNCPZY", "FANTASYX"),
Tuple.Create("MAZE", "HOPE", "OTSM", "HOPE"),
Tuple.Create("COMMENT", "PHOTOGRAPHY", "QGCACHQBQGZY", "PHOTOGRAPHYX"),
Tuple.Create("HARD", "DISCOVER", "BGPFKZFA", "DISCOVER"),
Tuple.Create("HOROSCOPE", "EXPERIENCED", "AWEAAQGWODAZ", "EXPERIENCEDX"),
Tuple.Create("CHARTER", "DEMONSTRATION", "FBISMUCTRCOVLZ", "DEMONSTRATIONX"),
Tuple.Create("ARM", "MAN", "BRLY", "MANX"),
Tuple.Create("CREW", "RELATIONSHIP", "EWNEONTITGKO", "RELATIONSHIP"),
Tuple.Create("MIXTURE", "RHYTHM", "BDTBDT", "RHYTHM"),
Tuple.Create("CLAY", "STUDY", "TPCIGY", "STUDYX"),
Tuple.Create("STATION", "POPULATION", "UTQMHOAOSE", "POPULATION"),
Tuple.Create("MILD", "PRAY", "KUDZ", "PRAY"),
Tuple.Create("PAT", "OVERLOOK", "VPFQIRQI", "OVERLOOK"),
Tuple.Create("STALL", "SPECULATE", "TOFDRBLAKA", "SPECULATEX"),
Tuple.Create("COMPUTER", "RULE", "BMWF", "RULE"),
Tuple.Create("BARK", "RECORDING", "AFHUBFLOFY", "RECORDINGX"),
Tuple.Create("LIABILITY", "ADOPTION", "DKPQLASG", "ADOPTION"),
Tuple.Create("SHADOW", "CONDITION", "FARSMPMHQU", "CONDITIONX"),
Tuple.Create("WISECRACK", "AISLE", "GAEHSY", "AISLEX"),
Tuple.Create("CONVULSION", "KNOT", "PCCW", "KNOT"),
Tuple.Create("DECAY", "RECOMMENDATION", "QCYMNWLCKAYSOTSA", "RECOMXMENDATIONX")
};
}
[Test]
public void EncryptionTest() {
foreach (var tuple in data) {
Assert.AreEqual(
tuple.Item3,
cryptor.Encrypt(tuple.Item1, tuple.Item2)
);
}
}
[Test]
public void DecryptionTest() {
foreach (var tuple in data) {
Assert.AreEqual(
tuple.Item4,
cryptor.Decrypt(tuple.Item1, tuple.Item3)
);
}
}
}
}