• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# SortedMap类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中SortedMap的典型用法代码示例。如果您正苦于以下问题:C# SortedMap类的具体用法?C# SortedMap怎么用?C# SortedMap使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



SortedMap类属于命名空间,在下文中一共展示了SortedMap类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: CouldMoveOnFirstAndLastPositionOfThreeSeries

        public void CouldMoveOnFirstAndLastPositionOfThreeSeries() {

            var sm1 = new SortedMap<int, int>(new Dictionary<int, int>()
                {
                    //{ 1, 1},
                    { 2, 2},
                    //{ 3, 3}
                });
            var sm2 = new SortedMap<int, int>(new Dictionary<int, int>()
                {
                    { 1, 2},
                    { 2, 4},
                    { 3, 6}
                });
            var sm3 = new SortedMap<int, int>(new Dictionary<int, int>()
                {
                    { 1, 3},
                    { 2, 6},
                    { 3, 9}
                });

            var series = new[] { sm1, sm2, sm3 };
            var sum = series.Zip((k, varr) => k * varr.Sum());

            var zipNCursor = sum.GetCursor();
            var movedFirst = zipNCursor.MoveFirst();
            Assert.IsTrue(movedFirst);
            Assert.AreEqual((2 + 4 + 6) * 2, zipNCursor.CurrentValue);
            var movedLast = zipNCursor.MoveLast();
            Assert.IsTrue(movedLast);
            Assert.AreEqual((2 + 4 + 6) * 2, zipNCursor.CurrentValue);
        }
开发者ID:b-e-n-j,项目名称:Spreads,代码行数:32,代码来源:ZipNTests.cs


示例2: CouldZipLagSeries

        public void CouldZipLagSeries() {
            var sm = new SortedMap<DateTime, double>();

            var count = 10000000;

            for (int i = 0; i < count; i++) {
                sm.Add(DateTime.UtcNow.Date.AddSeconds(i), i);
            }

            // slow implementation
            var sw = new Stopwatch();
            sw.Start();
            var zipLag = sm.ZipLag(1, (cur, prev) => cur + prev); //.ToSortedMap();
            var c = 1;
            foreach (var zl in zipLag) {
                if (c + (c - 1) != zl.Value) {
                    throw new ApplicationException();
                }
                c++;
            }
            sw.Stop();
            Console.WriteLine($"Final c: {c}");
            Console.WriteLine("ZipLag, elapsed: {0}, ops: {1}", sw.ElapsedMilliseconds, (int)((double)count / (sw.ElapsedMilliseconds / 1000.0)));

        }
开发者ID:b-e-n-j,项目名称:Spreads,代码行数:25,代码来源:MiscCursorsTests.cs


示例3: CouldLagSeries

        public void CouldLagSeries() {
            var sm = new SortedMap<double, double>();

            var count = 1000000;

            for (int i = 0; i < count; i++) {
                sm.Add(i, i);
            }

            // slow implementation
            var sw = new Stopwatch();
            sw.Start();
            var lag = sm.Lag(1);//.ToSortedMap();
            var c = 1;
            foreach (var zl in lag) {
                if (c - 1 != zl.Value) {
                    throw new ApplicationException();
                }
                c++;
            }
            sw.Stop();
            Console.WriteLine($"Final c: {c}");
            Console.WriteLine("ZipLag, elapsed: {0}, ops: {1}", sw.ElapsedMilliseconds, (int)((double)count / (sw.ElapsedMilliseconds / 1000.0)));

            var repeated = lag.Repeat();

            for (int i = 1; i < 1000; i++)
            {
                double v;
                Assert.IsTrue(repeated.TryGetValue(i+1.5, out v));
                Assert.AreEqual(i, v);
            }

        }
开发者ID:b-e-n-j,项目名称:Spreads,代码行数:34,代码来源:MiscCursorsTests.cs


示例4: CouldCalculateSMAInRealTime

        public void CouldCalculateSMAInRealTime() {
            var sm = new SortedMap<int, double>();

            Task.Run(async () => {

                for (int i = 0; i < 20; i++) {
                    sm.Add(i, i);
                }

                await Task.Delay(100);

                for (int i = 20; i < 100; i++) {
                    await Task.Delay(1); // 15 msec
                    sm.Add(i, i);
                }
                sm.IsMutable = false;
            });


            var sma = sm.SMA(10, true);

            var c = sma.GetCursor();

            while (c.MoveNext(CancellationToken.None).Result) {
                Console.WriteLine("Key: {0}, value: {1}", c.CurrentKey, c.CurrentValue);
            }

        }
开发者ID:kevmal,项目名称:Spreads,代码行数:28,代码来源:CursorSeriesExtensions.cs


示例5: IncrementMap

 /// <summary>
 /// Very straighforward batch operation for testing
 /// </summary>
 public IReadOnlyOrderedMap<DateTime, double> IncrementMap(IReadOnlyOrderedMap<DateTime, double> batch) {
     var sm = new SortedMap<DateTime, double>();
     foreach (var kvp in batch) {
         sm.Add(kvp.Key, kvp.Value + 1.0);
     }
     return sm;
 }
开发者ID:kevmal,项目名称:Spreads,代码行数:10,代码来源:BatchMapValuesCursorTests.cs


示例6: MultiplyMap

 public IReadOnlyOrderedMap<DateTime, double> MultiplyMap(IReadOnlyOrderedMap<DateTime, double> batch) {
     var sm = new SortedMap<DateTime, double>();
     foreach (var kvp in batch) {
         sm.Add(kvp.Key, kvp.Value * 10.0);
     }
     return sm;
 }
开发者ID:kevmal,项目名称:Spreads,代码行数:7,代码来源:BatchMapValuesCursorTests.cs


示例7: CouldRepeatMapSeries

        public void CouldRepeatMapSeries() {
            var sm = new SortedMap<DateTime, double>();
            var sm2 = new SortedMap<DateTime, double>();

            var count = 1000000;

            for (int i = 0; i < count; i++) {
                sm.Add(DateTime.UtcNow.Date.AddSeconds(i * 2), i);
            }

            for (int i = 0; i < count; i++) {
                sm2.Add(DateTime.UtcNow.Date.AddSeconds(i * 2 + 1), i);
            }

            var expected = 0.0;
            for (int i = 0; i < count; i++) {
                expected += i * 2 + 1 + 1;
            }
            OptimizationSettings.CombineFilterMapDelegates = false;
            var sw = new Stopwatch();
            sw.Start();
            var sum = (sm.Repeat().Map(x => x + 1.0).Repeat().Map(x => x + 1.0) + sm2).Values.Sum(); //
            sw.Stop();
            //Assert.AreEqual(expected, sum);
            Console.WriteLine("Repeat + zip, elapsed: {0}, ops: {1}", sw.ElapsedMilliseconds, (int)((double)count / (sw.ElapsedMilliseconds / 1000.0)));

        }
开发者ID:b-e-n-j,项目名称:Spreads,代码行数:27,代码来源:MissingValuesCursorsTests.cs


示例8: CouldFillSeries

        public void CouldFillSeries() {
            var sm = new SortedMap<DateTime, double>();
            var sm2 = new SortedMap<DateTime, double>();

            var count = 1000000;

            for (int i = 0; i < count; i++) {
                sm.Add(DateTime.UtcNow.Date.AddSeconds(i * 2), i);
            }

            for (int i = 0; i < count; i++) {
                sm2.Add(DateTime.UtcNow.Date.AddSeconds(i * 2 + 1), i);
            }

            var expected = 0.0;
            for (int i = 0; i < count; i++) {
                expected += i; ;
            }

            var sw = new Stopwatch();
            sw.Start();
            var sum = (sm.Fill(0) + sm2).Values.Sum();
            sw.Stop();
            Assert.AreEqual(expected, sum);
            Console.WriteLine("Repeat + zip, elapsed: {0}, ops: {1}", sw.ElapsedMilliseconds, (int)((double)count / (sw.ElapsedMilliseconds / 1000.0)));

        }
开发者ID:b-e-n-j,项目名称:Spreads,代码行数:27,代码来源:MissingValuesCursorsTests.cs


示例9: CouldMoveAsyncOnEmptySM

 public void CouldMoveAsyncOnEmptySM() {
     var sm = new SortedMap<DateTime, double>();
     var c = sm.GetCursor();
     var moveTask = c.MoveNext(CancellationToken.None);
     sm.Add(DateTime.UtcNow.Date.AddSeconds(0), 0);
     var result = moveTask.Result;
     Assert.IsTrue(result);
 }
开发者ID:kevmal,项目名称:Spreads,代码行数:8,代码来源:MoveNextAsyncTests.cs


示例10: UpdateEventIsTriggered

        public void UpdateEventIsTriggered() {
            var sm = new SortedMap<DateTime, double>();
            (sm as IObservableEvents<DateTime, double>).OnNext += (kvp) => {
                Console.WriteLine("Added {0} : {1}", kvp.Key, kvp.Value);
            };

            sm.Add(DateTime.UtcNow.Date.AddSeconds(0), 0);

        }
开发者ID:Applied-Duality,项目名称:Spreads,代码行数:9,代码来源:MoveNextAsyncTests.cs


示例11: ZipNFromLogoAndReadmeRepeatCouldMoveCursorCorrectly

        public void ZipNFromLogoAndReadmeRepeatCouldMoveCursorCorrectly() {
            var upper = new SortedMap<int, int> { { 2, 2 }, { 4, 4 } };
            var lower = new SortedMap<int, int> { { 1, 10 }, { 3, 30 }, { 5, 50 } };
            var sum = (upper.Repeat() + lower);
            var cursor = sum.GetCursor();

            Assert.AreEqual(32, sum[3]);
            Assert.AreEqual(54, sum[5]);

            Assert.IsFalse(cursor.MoveAt(1, Lookup.EQ));
            Assert.IsTrue(cursor.MoveAt(1, Lookup.GE));
            Assert.AreEqual(3, cursor.CurrentKey);
            Assert.AreEqual(32, cursor.CurrentValue);

            // move forward

            Assert.IsTrue(cursor.MoveNext());
            Assert.AreEqual(5, cursor.CurrentKey);
            Assert.AreEqual(54, cursor.CurrentValue);

            // finished
            Assert.IsFalse(cursor.MoveNext());

            //// move back

            Assert.IsTrue(cursor.MovePrevious());
            Assert.AreEqual(3, cursor.CurrentKey);
            Assert.AreEqual(32, cursor.CurrentValue);

            // async moves
            Assert.IsTrue(cursor.MoveNext(CancellationToken.None).Result);
            Assert.AreEqual(5, cursor.CurrentKey);
            Assert.AreEqual(54, cursor.CurrentValue);

            var moved = false;
            var t = Task.Run(async () => {
                moved = await cursor.MoveNext(CancellationToken.None);
            });

            // add new value
            lower.Add(6, 60);
            t.Wait();
            Assert.IsTrue(moved);
            Assert.AreEqual(6, cursor.CurrentKey);
            Assert.AreEqual(4 + 60, cursor.CurrentValue);

            // when all sources are marked as immutable/complete, MNA must return false
            var t2 = Task.Run(async () => {
                moved = await cursor.MoveNext(CancellationToken.None);
            });
            upper.Complete();
            lower.Complete();
            t2.Wait();
            Assert.IsFalse(moved);

        }
开发者ID:Applied-Duality,项目名称:Spreads,代码行数:56,代码来源:ReadmeTests.cs


示例12: UpdateEventIsTriggered

        public void UpdateEventIsTriggered() {
            var sm = new SortedMap<DateTime, double>();
            (sm as IUpdateable<DateTime, double>).OnData += (s, x) => {
                Console.WriteLine("Added {0} : {1}", x.Key,
                    x.Value);
            };

            sm.Add(DateTime.UtcNow.Date.AddSeconds(0), 0);

        }
开发者ID:kevmal,项目名称:Spreads,代码行数:10,代码来源:MoveNextAsyncTests.cs


示例13: readFromSortedMap

 public override void readFromSortedMap(SortedMap<Integer, String> sortedAreaCodeMap)
 {
     numOfEntries = sortedAreaCodeMap.size();
     phoneNumberPrefixes = new int[numOfEntries];
     descriptions = new String[numOfEntries];
     int index = 0;
     foreach (int prefix in sortedAreaCodeMap.keySet()) {
       phoneNumberPrefixes[index++] = prefix;
       possibleLengths.add((int) Math.log10(prefix) + 1);
     }
     sortedAreaCodeMap.values().toArray(descriptions);
 }
开发者ID:jason-persson,项目名称:LibPhoneNumberPortable,代码行数:12,代码来源:DefaultMapStorage.cs


示例14: CouldEnumerateGrowingSM

		public void CouldEnumerateGrowingSM() {
            var count = 1000000;
            var sw = new Stopwatch();
            sw.Start();
            var sm = new SortedMap<DateTime, double>();
            var c = sm.GetCursor();

            for (int i = 0; i < count; i++) {
                sm.Add(DateTime.UtcNow.Date.AddSeconds(i), i);
                c.MoveNext();
                Assert.AreEqual(i, c.CurrentValue);
            }
            sw.Stop();
            Console.WriteLine("Elapsed msec: {0}", sw.ElapsedMilliseconds - 50);
            Console.WriteLine("Ops: {0}", Math.Round(0.000001 * count * 1000.0 / (sw.ElapsedMilliseconds * 1.0), 2));

        }
开发者ID:kevmal,项目名称:Spreads,代码行数:17,代码来源:OperatorsTests.cs


示例15: CouldMoveAtGE

        public void CouldMoveAtGE() {
            var scm = new SortedMap<int, int>(50);
            for (int i = 0; i < 100; i++) {
                scm[i] = i;
            }

            var cursor = scm.GetCursor();

            cursor.MoveAt(-100, Lookup.GE);

            Assert.AreEqual(0, cursor.CurrentKey);
            Assert.AreEqual(0, cursor.CurrentValue);

            var shouldBeFalse = cursor.MoveAt(-100, Lookup.LE);
            Assert.IsFalse(shouldBeFalse);


        }
开发者ID:kevmal,项目名称:Spreads,代码行数:18,代码来源:OperatorsTests.cs


示例16: CouldCalculateIncompleteMovingAverage

        public void CouldCalculateIncompleteMovingAverage() {
            var sm = new SortedMap<int, double>();
            for (int i = 0; i < 20; i++) {
                sm.Add(i, i);
            }

            var sma = sm.SMA(2, true).ToSortedMap();

            var c = 0;
            foreach (var kvp in sma) {
                if (c == 0) {
                    Assert.AreEqual(c, kvp.Value);
                } else {
                    Assert.AreEqual(0.5 * (c + (double)(c - 1)), kvp.Value);
                }

                c++;
            }

        }
开发者ID:kevmal,项目名称:Spreads,代码行数:20,代码来源:CursorSeriesExtensions.cs


示例17: CouldCalculateComplexGraph

        public void CouldCalculateComplexGraph() {
            // TODO! need real complex data to test properly
            var sm = new SortedMap<DateTime, double>();

            var dataTask = Task.Run(async () => {

                for (int i = 0; i < 1000; i++) {
                    sm.Add(DateTime.Today.AddSeconds(i), i+10000);
                    await Task.Delay(25);
                }
                sm.IsMutable = false;
            });

            Thread.Sleep(50);

            var closeSeries = sm;

            var baseLeverage = 1.0;

            var sma = closeSeries.SMA(20, true);
            var deviation = sma / closeSeries - 1.0;
            var leverage = (baseLeverage * (-(5.0 * (deviation.Map(x => Math.Abs(x)))) + 1.0));

            var smaSignal = deviation.Map(x => (double)(Math.Sign(x)));

            var smaPositionMultiple = ((smaSignal * leverage).Map(x => 0.25 * (Math.Round(x / 0.25))));
            var smaPositionMultipleMap = smaPositionMultiple.ToSortedMap();

            var traderTask = Task.Run(async () => {
                var positionCursor = smaPositionMultiple.GetCursor();
                while (await positionCursor.MoveNext(CancellationToken.None)) //
                {
                    await Task.Delay(15);
                    Console.WriteLine("Time: {0}, position: {1}", positionCursor.CurrentKey, positionCursor.CurrentValue);

                }
            });

            dataTask.Wait();
            traderTask.Wait();
        }
开发者ID:kevmal,项目名称:Spreads,代码行数:41,代码来源:CursorSeriesExtensions.cs


示例18: CouldMoveNextWithoutBatching

        public void CouldMoveNextWithoutBatching() {
            var sm = new SortedMap<DateTime, double>();

            var count = 1000;

            for (int i = 0; i < count; i++) {
                sm.Add(DateTime.UtcNow.Date.AddSeconds(i), i);
            }
            sm.IsMutable = false;

            var bmvc = new BatchMapValuesCursor<DateTime, double, double>(sm.GetCursor, (v) => v + 1.0);
            var c = 0;
            while (c < 500 && bmvc.MoveNext()) {
                Assert.AreEqual(c + 1.0, bmvc.CurrentValue);
                c++;
            }

            while (bmvc.MoveNext(CancellationToken.None).Result) { // Setting IsMutable to false allows us to skip this check: c < 1000 &&
                Assert.AreEqual(c + 1.0, bmvc.CurrentValue);
                c++;
            }
            Assert.AreEqual(count, c);
        }
开发者ID:kevmal,项目名称:Spreads,代码行数:23,代码来源:BatchMapValuesCursorTests.cs


示例19: CouldMovePreviousWithoutBatching

        public void CouldMovePreviousWithoutBatching() {
            var sm = new SortedMap<DateTime, double>();

            var count = 1000;

            for (int i = 0; i < count; i++) {
                sm.Add(DateTime.UtcNow.Date.AddSeconds(i), i);
            }
            sm.IsMutable = false;

            var bmvc = new BatchMapValuesCursor<DateTime, double, double>(sm.GetCursor, (v) => v + 1.0);
            var c = 0;
            while (c < 500 && bmvc.MoveNext()) {
                Assert.AreEqual(c + 1.0, bmvc.CurrentValue);
                c++;
            }
            c--;
            while (bmvc.MovePrevious()) {
                c--;
                Assert.AreEqual(c + 1.0, bmvc.CurrentValue);

            }
            Assert.AreEqual(0, c);
        }
开发者ID:kevmal,项目名称:Spreads,代码行数:24,代码来源:BatchMapValuesCursorTests.cs


示例20: synchronizedSortedMap

 /// <summary>
 /// Returns a synchronized (thread-safe) sorted map backed by the specified sorted map.
 /// </summary>
 public static SortedMap synchronizedSortedMap(SortedMap m)
 {
     return default(SortedMap);
 }
开发者ID:exaphaser,项目名称:JSC-Cross-Compiler,代码行数:7,代码来源:Collections.cs



注:本文中的SortedMap类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# SortedSet类代码示例发布时间:2022-05-24
下一篇:
C# SortedList类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap