Пример #1
0
        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));
            }
        }
Пример #2
0
        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);
        }