Ejemplo n.º 1
0
        public void LookupSegment()
        {
            ILazyLookup <bool, int> lookup = Enumerable.Range(1, 10)
                                             .ToLookup(x => x % 2 == 0).AsLazyLookup();
            var bytes = ZeroFormatterSerializer.Serialize(lookup);

            int _;
            var segment = LookupSegment <bool, int> .Create(new DirtyTracker(0), bytes, 0, out _);

            segment[true].Is(2, 4, 6, 8, 10);
            segment[false].Is(1, 3, 5, 7, 9);

            bool isFirst = true;

            foreach (var g in segment.OrderByDescending(x => x.Key))
            {
                if (isFirst)
                {
                    isFirst = false;
                    g.Key.IsTrue();
                    g.AsEnumerable().Is(2, 4, 6, 8, 10);
                }
                else
                {
                    g.Key.IsFalse();
                    g.AsEnumerable().Is(1, 3, 5, 7, 9);
                }
            }
        }
Ejemplo n.º 2
0
        public void LookupSegment()
        {
            ILazyLookup <bool, int> lookup = Enumerable.Range(1, 10).ToLookup(x => x % 2 == 0).AsLazyLookup();
            var segment = ZeroFormatterSerializer.Convert(lookup);

            segment[true].IsCollection(2, 4, 6, 8, 10);
            segment[false].IsCollection(1, 3, 5, 7, 9);

            bool isFirst = true;

            foreach (var g in segment.OrderByDescending(x => x.Key))
            {
                if (isFirst)
                {
                    isFirst = false;
                    g.Key.IsTrue();
                    g.AsEnumerable().IsCollection(2, 4, 6, 8, 10);
                }
                else
                {
                    g.Key.IsFalse();
                    g.AsEnumerable().IsCollection(1, 3, 5, 7, 9);
                }
            }
        }
Ejemplo n.º 3
0
        public override int Serialize(ref byte[] bytes, int offset, ILazyLookup <TKey, TValue> value)
        {
            if (value == null)
            {
                BinaryUtil.WriteInt32(ref bytes, offset, -1);
                return(4);
            }

            var lookup = value as LookupSegment <TKey, TValue>;

            if (lookup == null)
            {
                lookup = new LookupSegment <TKey, TValue>(value);
            }

            return(lookup.Serialize(ref bytes, offset));
        }
Ejemplo n.º 4
0
        public void Immediate()
        {
            {
                ILookup <bool, int> lookup = Enumerable.Range(1, 10).ToLookup(x => x % 2 == 0);
                var hugahuga = ZeroFormatterSerializer.Convert(lookup, true);
                hugahuga[true].Is(2, 4, 6, 8, 10);
                hugahuga[false].Is(1, 3, 5, 7, 9);

                var onemore = ZeroFormatterSerializer.Convert(hugahuga, true);
                onemore[true].Is(2, 4, 6, 8, 10);
                onemore[false].Is(1, 3, 5, 7, 9);
            }
            {
                ILazyLookup <bool, int> lookup = Enumerable.Range(1, 10).ToLookup(x => x % 2 == 0).AsLazyLookup();
                var hugahuga = ZeroFormatterSerializer.Convert(lookup, true);
                hugahuga[true].Is(2, 4, 6, 8, 10);
                hugahuga[false].Is(1, 3, 5, 7, 9);

                var onemore = ZeroFormatterSerializer.Convert(hugahuga, true);
                onemore[true].Is(2, 4, 6, 8, 10);
                onemore[false].Is(1, 3, 5, 7, 9);
            }
        }