public void EncodeDecodeBaseN()
{
byte testByte = 157;
List<byte> bytes = new List<byte>();
for (uint radix = 2; radix < 1000; radix++)
{
var baseN = new BaseN(StringGenerator.GetAlphabet((int)radix), 64);
int testBytesCount = Math.Max((baseN.BlockBitsCount + 7) / 8, (int)baseN.BlockCharsCount);
bytes.Clear();
for (int i = 0; i <= testBytesCount + 1; i++)
{
var array = bytes.ToArray();
var encoded = baseN.Encode(array);
var decoded = baseN.Decode(encoded);
CollectionAssert.AreEqual(array, decoded);
bytes.Add(testByte);
}
}
}