コード例 #1
0
        public void Update()
        {
            udpClient.Update();

            var diff = monotonicClock.NowMilliseconds() - lastStateChange;

            if (diff < stateChangeWait)
            {
                return;
            }

            var statsDiff = monotonicClock.NowMilliseconds() - lastStatsUpdate;

            if (statsDiff > 3000)
            {
                simpleInStats   = simpleIn.GetStatsAndClear(statsDiff);
                simpleOutStats  = simpleOut.GetStatsAndClear(statsDiff);
                lastStatsUpdate = monotonicClock.NowMilliseconds();
            }

            CheckDisconnect();

            switch (state)
            {
            case ConnectionState.Connected:
                stateChangeWait = connectedPeriodInMs;
                lastStateChange = monotonicClock.NowMilliseconds();
                break;
            }
        }
コード例 #2
0
        public async Task TestMinMaxRefinerComponent(MinMaxRefinerTest test, string dataSource, string table, string column)
        {
            using var scope = await testFixture.CreateTestScope(dataSource, table, column, this);

            // Construct MinMaxRefiner explicitly in order to inject a null result from MinMaxFromHistogramComponent
            var simpleStatsProvider = new SimpleStats <decimal>()
            {
                Context = scope.Context
            };
            var histogramMinMaxProvider = new StaticResultProvider <MinMaxFromHistogramComponent.Result>(null !);
            var refiner = new MinMaxRefiner(simpleStatsProvider, histogramMinMaxProvider)
            {
                Context = scope.Context
            };
            var refined = await refiner.ResultAsync;

            if (test != MinMaxRefinerTest.MaxOnly)
            {
                var aircloakMin = (await scope.QueryRows <Min, Min.Result <decimal> >(new Min())).Single().Min;
                Assert.True(refined?.Min < aircloakMin, $"Expected lower than {aircloakMin}, got {refined?.Min}");
            }
            if (test != MinMaxRefinerTest.MinOnly)
            {
                var aircloakMax = (await scope.QueryRows <Max, Max.Result <decimal> >(new Max())).Single().Max;
                Assert.True(refined?.Max > aircloakMax, $"Expected higher than {aircloakMax}, got {refined?.Max}");
            }
        }
コード例 #3
0
    void Awake()
    {
        rb        = gameObject.GetComponent <Rigidbody2D>();
        anim      = gameObject.GetComponent <Animator>();
        sj        = gameObject.GetComponent <SimpleJump>();
        sm        = gameObject.GetComponent <SimpleMovement>();
        ssh       = gameObject.GetComponentInChildren <SimpleArmory>();
        st        = gameObject.GetComponent <SimpleStats>();
        body      = gameObject.GetComponent <SpriteRenderer>();
        blood     = transform.Find("Blood").GetComponent <SpriteRenderer>();
        shoulder  = transform.Find("Shoulder Pad").GetComponent <SpriteRenderer>();
        back      = transform.Find("Shoulder Back").GetComponent <SpriteRenderer>();
        gun       = GameObject.FindGameObjectWithTag("Gun").transform;
        renderGun = gun.GetComponent <SpriteRenderer>();
        point     = gun.Find("Point");

        timer = 1f;
    }
コード例 #4
0
        public SimpleStats GetStatsAndClear(long timeInMs)
        {
            if (timeInMs < 10)
            {
                return(new SimpleStats());
            }

            var f = timeInMs / 1000.0f;

            var latencyAverage = -1;

            if (totalLatencyCount > 0)
            {
                latencyAverage = (int)(totalLatency / totalLatencyCount);
            }

            var packetSizeAverage = -1;

            if (totalCount > 0)
            {
                packetSizeAverage = (int)(totalOctetSize / totalCount);
            }


            var stats = new SimpleStats
            {
                PacketCount = (int)(totalCount / f),
                OctetSize   = (int)(totalOctetSize / f),
                PacketSize  = packetSizeAverage,
                Latency     = latencyAverage,
            };

            totalCount        = 0;
            totalOctetSize    = 0;
            totalLatency      = 0;
            totalLatencyCount = 0;

            return(stats);
        }
コード例 #5
0
        public void TestFillWeeklyStatsForOffensivePlayers()
        {
            var wrapper = new Api.ApiWrapper("nfl");

            using (var context = new FantasyContext())
            {
                var players     = context.Players.ToList();
                var playerStats = context.Stats.ToList();
                var noStats     = context.NoStats.ToList();

                //var years = Enumerable.Range(2001, 13).OrderByDescending(i => i).ToList();
                var years = Enumerable.Range(2011, 1).OrderByDescending(i => i).ToList();
                var weeks = Enumerable.Range(1, 17).ToList();

                var positions = new List <SimplePositionTypes>
                {
                    SimplePositionTypes.Quarterback,
                    SimplePositionTypes.Runningback,
                    SimplePositionTypes.Receiver,
                    SimplePositionTypes.TightEnd,
                    SimplePositionTypes.Kicker
                };

                var validPlayers = from pl in players
                                   join po in positions
                                   on pl.PrimaryPosition equals po
                                   select pl;

                foreach (var player in validPlayers)
                {
                    foreach (var year in years)
                    {
                        foreach (var week in weeks)
                        {
                            var shouldPull =
                                !playerStats.Any(ps => ps.Player.YahooPlayerId == player.YahooPlayerId &&
                                                 ps.Year.Year == year && ps.Week == week) &&
                                !noStats.Any(ns => ns.Player == player &&
                                             ns.Week == week && ns.Year == year);

                            if (!shouldPull)
                            {
                                continue;
                            }

                            var stats = new StatWrapper();
                            try
                            {
                                stats = wrapper.GetWeeklyStatsByPlayer(player.YahooPlayerId.ToString(), year.ToString(), week);
                            }
                            catch (KeyNotFoundException ex)
                            {
                                var noStat = new NoStats
                                {
                                    Player = player,
                                    Week   = week,
                                    Year   = year
                                };
                                context.NoStats.Add(noStat);
                                context.SaveChanges();
                                continue;
                            }
                            catch
                            {
                                continue;
                            }

                            if (stats.Stats == null)
                            {
                                continue;
                            }

                            if (stats != null)
                            {
                                var simpleStat = new SimpleStats
                                {
                                    Player           = player,
                                    Year             = new DateTime(year, 1, 1),
                                    Week             = week,
                                    TeamName         = stats.Team ?? "",
                                    TeamAbbreviation = stats.TeamAbbr ?? "",
                                    Position         = player.PrimaryPosition == null ? 0 : player.PrimaryPosition
                                };

                                foreach (var stat in stats.Stats)
                                {
                                    var props = simpleStat.GetType().GetProperties();
                                    foreach (var prop in props)
                                    {
                                        if (prop.CustomAttributes.Any(p => p.AttributeType == typeof(PlayerMappingAttribute)))
                                        {
                                            var attr   = prop.GetCustomAttributes(typeof(PlayerMappingAttribute), false).FirstOrDefault();
                                            var statId = ((PlayerMappingAttribute)attr).YahooStatId;

                                            if (stat.StatDetail.StatId == statId)
                                            {
                                                if (prop.PropertyType == typeof(int?))
                                                {
                                                    int nullableValue = 0;
                                                    int.TryParse(stat.StatDetail.Value, out nullableValue);
                                                    prop.SetValue(simpleStat, nullableValue);
                                                }
                                                else
                                                {
                                                    var statValue = Convert.ChangeType(stat.StatDetail.Value, prop.PropertyType);
                                                    prop.SetValue(simpleStat, statValue);
                                                }
                                            }
                                        }
                                    }
                                }

                                context.Stats.Add(simpleStat);
                                context.SaveChanges();
                            }
                        }
                    }
                }
            }
        }
コード例 #6
0
        public void TestFillAnnualStatsForOffensivePlayers()
        {
            var wrapper = new Api.ApiWrapper("nfl");

            using (var context = new FantasyContext())
            {
                var players     = context.Players.ToList();
                var playerStats = context.Stats.ToList();

                //var years = Enumerable.Range(2001, 13).OrderByDescending(i => i).ToList();
                var years     = Enumerable.Range(2013, 13).OrderByDescending(i => i).ToList();
                var positions = new List <SimplePositionTypes>
                {
                    //SimplePositionTypes.Quarterback,
                    SimplePositionTypes.Runningback,
                    SimplePositionTypes.Receiver                    //,
                    //SimplePositionTypes.TightEnd,
                    //SimplePositionTypes.Kicker
                };

                var validPlayers = from pl in players
                                   join po in positions
                                   on pl.PrimaryPosition equals po
                                   select pl;

                foreach (var player in validPlayers)
                {
                    foreach (var year in years)
                    {
                        var shouldPull = !playerStats.Any(ps => ps.Player.YahooPlayerId == player.YahooPlayerId &&
                                                          ps.Year.Year == year);

                        if (!shouldPull)
                        {
                            continue;
                        }

                        var stats = new StatWrapper();
                        try
                        {
                            stats = wrapper.GetStatDataByPlayer(player.YahooPlayerId.ToString(), year.ToString());
                        }
                        catch
                        {
                            if (stats.Stats == null)
                            {
                                continue;
                            }
                        }

                        if (stats != null)
                        {
                            var simpleStat = new SimpleStats
                            {
                                Player           = player,
                                Year             = new DateTime(year, 1, 1),
                                Week             = null,
                                TeamName         = stats.Team,
                                TeamAbbreviation = stats.TeamAbbr
                            };

                            switch (stats.Position)
                            {
                            case "QB":
                                simpleStat.Position = SimplePositionTypes.Quarterback;
                                break;

                            case "RB":
                                simpleStat.Position = SimplePositionTypes.Runningback;
                                break;

                            case "WR":
                                simpleStat.Position = SimplePositionTypes.Receiver;
                                break;

                            case "TE":
                                simpleStat.Position = SimplePositionTypes.TightEnd;
                                break;

                            case "DEF":
                                simpleStat.Position = SimplePositionTypes.TeamDefense;
                                break;

                            case "K":
                                simpleStat.Position = SimplePositionTypes.Kicker;
                                break;

                            case "CB":
                                simpleStat.Position = SimplePositionTypes.Cornerback;
                                break;

                            case "DT":
                                simpleStat.Position = SimplePositionTypes.DefensiveTackle;
                                break;

                            case "S":
                                simpleStat.Position = SimplePositionTypes.Safety;
                                break;

                            case "LB":
                                simpleStat.Position = SimplePositionTypes.Linebacker;
                                break;

                            case "DE":
                                simpleStat.Position = SimplePositionTypes.DefensiveEnd;
                                break;

                            default:
                                simpleStat.Position = SimplePositionTypes.Unknown;
                                break;
                            }

                            foreach (var stat in stats.Stats)
                            {
                                var props = simpleStat.GetType().GetProperties();
                                foreach (var prop in props)
                                {
                                    if (prop.CustomAttributes.Any(p => p.AttributeType == typeof(PlayerMappingAttribute)))
                                    {
                                        var attr   = prop.GetCustomAttributes(typeof(PlayerMappingAttribute), false).FirstOrDefault();
                                        var statId = ((PlayerMappingAttribute)attr).YahooStatId;

                                        if (stat.StatDetail.StatId == statId)
                                        {
                                            if (prop.PropertyType == typeof(int?))
                                            {
                                                int nullableValue = 0;
                                                int.TryParse(stat.StatDetail.Value, out nullableValue);
                                                prop.SetValue(simpleStat, nullableValue);
                                            }
                                            else
                                            {
                                                var statValue = Convert.ChangeType(stat.StatDetail.Value, prop.PropertyType);
                                                prop.SetValue(simpleStat, statValue);
                                            }
                                        }
                                    }
                                }
                            }

                            context.Stats.Add(simpleStat);
                            context.SaveChanges();
                        }
                    }
                }
            }
        }