public void SpecialVariableBaseNumberTest3() { BigInteger bigNum = BigInteger.Parse("536"); SpecialVariableBaseNumber num = new SpecialVariableBaseNumber(bigNum); Assert.AreEqual(bigNum, num.ToBigInt()); }
public void DecodeTest() { SubstitutionCypher sc = new SubstitutionCypher("hgllo", alphabet); SpecialVariableBaseNumber seed = new SpecialVariableBaseNumber(new List <int> { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0 }); Assert.AreEqual("hello", sc.Decode(seed)); }
public void IncTest() { SpecialVariableBaseNumber num = new SpecialVariableBaseNumber(); Assert.AreEqual("0", num.ToString()); for (int i = 0; i < 12; ++i) { num.Inc(); } Assert.AreEqual("2,0,0,0", num.ToString()); }
public void SpecialVariableBaseNumberTest1() { List <int> numbers = new List <int>(); for (int i = 0; i <= 10; ++i) { numbers.Add((int)i); } SpecialVariableBaseNumber num = new SpecialVariableBaseNumber(numbers); Assert.AreEqual("10,9,8,7,6,5,4,3,2,1,0", num.ToString()); }
public void Indexer() { List <int> numbers = new List <int>(); for (int i = 0; i <= 10; ++i) { numbers.Add((int)i); } SpecialVariableBaseNumber num = new SpecialVariableBaseNumber(numbers); Assert.AreEqual(10, num[0]); Assert.AreEqual(8, num[2]); Assert.AreEqual(0, num[10]); }
public void ToBigIntTest() { SpecialVariableBaseNumber num = new SpecialVariableBaseNumber(); Assert.AreEqual(0, (int)num.ToBigInt()); for (int i = 1; i < 100; ++i) { num.Inc(); Assert.AreEqual(i, (int)num.ToBigInt()); } num = new SpecialVariableBaseNumber(); Assert.AreEqual(0, (int)num.ToBigInt()); for (int i = 1; i < 1000; ++i) { num.IncBy(17); Assert.AreEqual(17 * i, (int)num.ToBigInt()); } }
public void encodeTest() { SubstitutionCypher sc = new SubstitutionCypher("hello", alphabet); Assert.AreEqual('a', alphabet[0]); Assert.AreEqual('z', alphabet[25]); SpecialVariableBaseNumber seed = new SpecialVariableBaseNumber(26); Assert.AreEqual("hello", sc.Encode(seed)); seed = new SpecialVariableBaseNumber(new List <int> { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 }); Assert.AreEqual("hfllo", sc.Encode(seed)); seed = new SpecialVariableBaseNumber(new List <int> { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0 }); Assert.AreEqual("hgllo", sc.Encode(seed)); }
public void EncodeDecodePairs() { SpecialVariableBaseNumber seed = new SpecialVariableBaseNumber(26); seed.Inc(); for (int i = 0; i < 100000; ++i) { string originalString = "abcdefghijklmnopqrstuvwxyz"; SubstitutionCypher original = new SubstitutionCypher(originalString, alphabet); if (i == 0) { Console.WriteLine($"{original.NumSeeds} possible combinations"); } string codedString = original.Encode(seed); Assert.AreNotEqual(originalString, codedString); SubstitutionCypher coded = new SubstitutionCypher(codedString, alphabet); Assert.AreEqual(originalString, coded.Decode(seed)); seed.IncBy(732); } SubstitutionCypher usesLargeSeed = new SubstitutionCypher("hello", alphabet); seed = new SpecialVariableBaseNumber(26); seed.IncBy(usesLargeSeed.NumSeeds - 1); string borderEncoded = usesLargeSeed.Encode(seed); Console.WriteLine($"Using seed {seed}"); Console.WriteLine($"Coded: {borderEncoded}"); SubstitutionCypher reverseWithLargeSeed = new SubstitutionCypher(borderEncoded, alphabet); string decoded = reverseWithLargeSeed.Decode(seed); Console.WriteLine($"Decoded: {decoded}"); Assert.AreEqual("hello", decoded); }
public void IncByTest() { List <int> numbers = new List <int>(); for (int i = 0; i <= 2; ++i) { numbers.Add(i); } SpecialVariableBaseNumber num = new SpecialVariableBaseNumber(numbers); Assert.AreEqual("2,1,0", num.ToString()); num.IncBy(2); Assert.AreEqual("1,0,1,0", num.ToString()); num.IncBy(1); Assert.AreEqual("1,1,0,0", num.ToString()); num.IncBy(1); Assert.AreEqual("1,1,1,0", num.ToString()); num.IncBy(1); Assert.AreEqual("1,2,0,0", num.ToString()); num.IncBy(1); Assert.AreEqual("1,2,1,0", num.ToString()); num.IncBy(1); Assert.AreEqual("2,0,0,0", num.ToString()); num.IncBy(6); Assert.AreEqual("3,0,0,0", num.ToString()); num.IncBy(6); Assert.AreEqual("1,0,0,0,0", num.ToString()); }
public void SpecialVariableBaseNumberTest2() { SpecialVariableBaseNumber num = new SpecialVariableBaseNumber(3); Assert.AreEqual("0,0,0", num.ToString()); }