예제 #1
0
        private static IEnumerable <MatchRecord> GetRecords()
        {
            TimeSpan           interval = TimeSpan.FromMinutes(18);
            List <MatchRecord> records  = new List <MatchRecord>();

            Random      rand           = new Random();
            int         SR             = rand.Next(1500, 2500);
            MatchRecord previousRecord = new MatchRecord()
            {
                CR     = SR,
                Date   = DateTime.Now,
                Diff   = SR,
                Map    = RandomMap(rand),
                Result = MatchResult.WIN
            };

            records.Add(previousRecord);

            for (int i = 0; i <= 499; i++)
            {
                int         newSR     = previousRecord.CR + (rand.Next(15, 30) * SRChangeModifier(rand));
                MatchRecord newRecord = previousRecord.NewRelativeRecord(newSR, previousRecord.Date.Add(interval), RandomMap(rand));
                records.Add(newRecord);
                previousRecord = newRecord;
            }

            return(records);
        }
예제 #2
0
        public void NewRelativeRecord_CreatesANewMatchRecord_WitLoseResult_WhenNewRankIsLessThanOldRank()
        {
            // Arrange
            MatchRecord original = MatchRecordFaker.CreateRecord(cr: 2000);

            // Act
            MatchRecord relative = original.NewRelativeRecord(1900, DateTime.Now, MapFaker.Random());

            // Assert
            Assert.AreEqual(relative.Result, MatchResult.LOSE);
        }
예제 #3
0
        public void NewRelativeRecord_CreatesANewMatchRecord_WithTheDifferencealculated_RelativeToTheOriginal()
        {
            // Arrange
            MatchRecord original = MatchRecordFaker.CreateRecord(cr: 2000);

            // Act
            MatchRecord relative = original.NewRelativeRecord(2100, DateTime.Now, MapFaker.Random());

            // Assert
            Assert.AreEqual(relative.Diff, 100);
        }
예제 #4
0
        public static IEnumerable <MatchRecord> NMatchesBetweenDates(
            int n,
            DateTime start,
            int initialCR       = 1000,
            int crMaxDifference = 500)
        {
            var valueFaker = new Faker();

            IEnumerable <DateTime> orderedDates = GenerateRealisticMatchTimes(n, start);

            List <MatchRecord> matches = new List <MatchRecord>();
            var i          = 0;
            var firstCR    = valueFaker.Random.Number(initialCR - crMaxDifference, initialCR + crMaxDifference);
            var firstMatch = new MatchRecord()
            {
                CR     = firstCR,
                Date   = orderedDates.ElementAt(i),
                Diff   = firstCR - initialCR,
                Map    = MapFaker.Random(),
                Result = MatchRecord.ComparerCR(firstCR, initialCR)
            };

            matches.Add(firstMatch);
            i++;


            MatchRecord lastMatch = firstMatch;

            while (i < n)
            {
                var newMatch = lastMatch.NewRelativeRecord(
                    valueFaker.Random.Number(initialCR - crMaxDifference, initialCR + crMaxDifference),
                    orderedDates.ElementAt(i),
                    MapFaker.Random()
                    );
                matches.Add(newMatch);
                i++;
            }

            return(matches);
        }
예제 #5
0
        private static IEnumerable <MatchRecord> GetRecords()
        {
            DateTime now      = new DateTime();
            var      matchOne = new MatchRecord()
            {
                CR     = 1000,
                Date   = new DateTime(),
                Diff   = 1000,
                Map    = Maps.All.First(),
                Result = MatchResult.WIN
            };

            var matchTwo   = matchOne.NewRelativeRecord(1025, now.AddMinutes(30), Maps.All.ElementAt(1));
            var matchThree = matchTwo.NewRelativeRecord(1061, now.AddMinutes(60), Maps.All.ElementAt(2));

            return(new List <MatchRecord>()
            {
                matchOne,
                matchTwo,
                matchThree
            });
        }