112 lines
1.7 KiB
Go
112 lines
1.7 KiB
Go
package cryptosquare
|
|
|
|
import "testing"
|
|
|
|
const testVersion = 1
|
|
|
|
// Retired testVersions
|
|
// (none) 71ad8ac57fe7d5b777cfa1afd116cd41e1af55ed
|
|
|
|
var tests = []struct {
|
|
pt string // plain text
|
|
ct string // cipher text
|
|
}{
|
|
{
|
|
"s#$%^&plunk",
|
|
"su pn lk",
|
|
},
|
|
{
|
|
"1, 2, 3 GO!",
|
|
"1g 2o 3",
|
|
},
|
|
{
|
|
"1234",
|
|
"13 24",
|
|
},
|
|
{
|
|
"123456789",
|
|
"147 258 369",
|
|
},
|
|
{
|
|
"123456789abc",
|
|
"159 26a 37b 48c",
|
|
},
|
|
{
|
|
"Never vex thine heart with idle woes",
|
|
"neewl exhie vtetw ehaho ririe vntds",
|
|
},
|
|
{
|
|
"ZOMG! ZOMBIES!!!",
|
|
"zzi ooe mms gb",
|
|
},
|
|
{
|
|
"Time is an illusion. Lunchtime doubly so.",
|
|
"tasney inicds miohoo elntu illib suuml",
|
|
},
|
|
{
|
|
"We all know interspecies romance is weird.",
|
|
"wneiaw eorene awssci liprer lneoid ktcms",
|
|
},
|
|
{
|
|
"Madness, and then illumination.",
|
|
"msemo aanin dnin ndla etlt shui",
|
|
},
|
|
{
|
|
"Vampires are people too!",
|
|
"vrel aepe mset paoo irpo",
|
|
},
|
|
{
|
|
"",
|
|
"",
|
|
},
|
|
{
|
|
"1",
|
|
"1",
|
|
},
|
|
{
|
|
"12",
|
|
"1 2",
|
|
},
|
|
{
|
|
"12 3",
|
|
"13 2",
|
|
},
|
|
{
|
|
"12345678",
|
|
"147 258 36",
|
|
},
|
|
{
|
|
"123456789a",
|
|
"159 26a 37 48",
|
|
},
|
|
{
|
|
"If man was meant to stay on the ground god would have given us roots",
|
|
"imtgdvs fearwer mayoogo anouuio ntnnlvt wttddes aohghn sseoau",
|
|
},
|
|
{
|
|
"Have a nice day. Feed the dog & chill out!",
|
|
"hifei acedl veeol eddgo aatcu nyhht",
|
|
},
|
|
}
|
|
|
|
func TestEncode(t *testing.T) {
|
|
if TestVersion != testVersion {
|
|
t.Errorf("Found TestVersion = %v, want %v.", TestVersion, testVersion)
|
|
}
|
|
for _, test := range tests {
|
|
if ct := Encode(test.pt); ct != test.ct {
|
|
t.Fatalf(`Encode(%q):
|
|
got %q
|
|
want %q`, test.pt, ct, test.ct)
|
|
}
|
|
}
|
|
}
|
|
|
|
func BenchmarkEncode(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
for _, test := range tests {
|
|
Encode(test.pt)
|
|
}
|
|
}
|
|
}
|