Exemplo n.º 1
0
        public void all_time_stats_for_one_previous_session_returns_just_that_session()
        {
            UserSession session = new UserSession(_user);
            ITextSample sample  = new TextSample()
            {
                SourceKey  = "http://some_url",
                SourceType = TextSampleSourceType.Wikipedia,
                Text       = "this is some sample text shown"
            };

            KeySequence seq     = session.StartNewSequence(sample);
            var         results = session.StopSequence("text entered", TimeSpan.FromMilliseconds(500));

            AllTimeStatsCalculator calc = new AllTimeStatsCalculator(_user);

            var speedThisInstance = results
                                    .Where(r => r.GetAnalyticType() == Analytics.AnalyticType.Speed)
                                    .Cast <Analytics.Speed>()
                                    .FirstOrDefault();

            var speedCalcs = calc.GetSpeedAllTime();

            Assert.That(speedCalcs.TotalTimeInMilliSec, Is.EqualTo(speedThisInstance.TotalTime.TotalMilliseconds));
            Assert.That(speedCalcs.NumEntitiesRepresented, Is.EqualTo(1));
            Assert.That(speedCalcs.WordPerMin, Is.EqualTo(speedThisInstance.WordsPerMinute));
            Assert.That(speedCalcs.CharsPerSec, Is.EqualTo(speedThisInstance.CharsPerSecond));
            Assert.That(speedCalcs.CreateDate, Is.Not.Null);
        }
Exemplo n.º 2
0
        public void all_time_stats_for_multiple_previous_sessions_averages()
        {
            UserSession session = new UserSession(_user);
            ITextSample sample  = new TextSample()
            {
                SourceKey  = "http://some_url",
                SourceType = TextSampleSourceType.Wikipedia,
                Text       = "this is some sample text shown"
            };

            List <int> spans = new List <int>();

            for (int i = 1; i <= 10; i++)
            {
                int timespan = i * 1000;
                spans.Add(timespan);

                KeySequence seq     = session.StartNewSequence(sample);
                var         results = session.StopSequence("text entered", TimeSpan.FromMilliseconds(timespan));
            }

            AllTimeStatsCalculator calc = new AllTimeStatsCalculator(_user);

            var speedCalcs = calc.GetSpeedAllTime();

            Assert.That(speedCalcs.TotalTimeInMilliSec, Is.EqualTo(spans.Average()));
            Assert.That(speedCalcs.NumEntitiesRepresented, Is.EqualTo(10));
        }
Exemplo n.º 3
0
        public void all_time_stats_for_zero_previous_sessions_returns_zeros()
        {
            AllTimeStatsCalculator calc = new AllTimeStatsCalculator(_user);
            var speedCalcs = calc.GetSpeedAllTime();

            Assert.That(speedCalcs, Is.Null);

            var accuracyCalcs = calc.GetAccuracyAllTime();

            Assert.That(accuracyCalcs, Is.Null);
        }
Exemplo n.º 4
0
        public HttpResponseMessage HistoryDetails([FromBody] JObject data)
        {
            JWTToken token = data["token"].ToObject <JWTToken>();
            string   seqId = data["sequenceId"].ToString();

            Data.KCUser user = new Data.KCUser()
            {
                UserId = Guid.Parse(token.UserId)
            };
            var userMgr = new KeyCdr.History.UserSessionHistory();

            Data.KeySequence detail = userMgr.GetHistoryDetailsByKeySequence(Guid.Parse(seqId));

            AllTimeStatsCalculator  allTimeStats = new AllTimeStatsCalculator(user);
            UserHistoryDetailsModel result       = UserHistoryDetailsModel.Create(detail);

            result.AnalysisSpeedAllTime    = allTimeStats.GetSpeedAllTime();
            result.AnalysisAccuracyAllTime = allTimeStats.GetAccuracyAllTime();

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }