public void LinearDictionaryCoder() { var testPath = "linearDictionaryUnitTest"; if (File.Exists(testPath)) { File.Delete(testPath); } var linearDictionaryCoder = new LinearDictionaryEncoder(testPath, 32, 32); var expectedDictionary = new Dictionary <byte[], byte[]>(); LargeInteger value = 0; for (int i = 0; i < 1500; i++) { var valueBytes = ByteManipulator.BigEndianTruncate(value.GetBytes(), 32); var key = CryptographyHelper.Sha3256(valueBytes); linearDictionaryCoder.Add(key, valueBytes); expectedDictionary.Add(key, valueBytes); value = value + 1; } foreach (var kvp in expectedDictionary) { var entryValue = linearDictionaryCoder.Get(kvp.Key); Assert.IsTrue(ArrayManipulator.Compare(kvp.Value, entryValue)); } }
public static Dictionary <byte[], LargeInteger> ReadLinearDictionaryCoder(LinearDictionaryEncoder coder) { var data = coder.LinearCoder.ReadData(0); var ret = new Dictionary <byte[], LargeInteger>(); foreach (var byteArray in data) { ret.Add(byteArray.Take(coder.KeyLength).ToArray(), new LargeInteger(byteArray.Skip(coder.KeyLength).Take(coder.DataLength).ToArray())); } return(ret); }