public void ShouldReturnFalseForNonSimilarEventTimes()
        {
            var eventTime1 = DateTimeFactory.SomeWorkingHoursDateTime();
            var eventTime2 = eventTime1.Add(ConcurrentEventHeuristic.EventTimeDifference + TimeSpan.FromTicks(1));

            Assert.IsFalse(ConcurrentEventHeuristic.AreSimilar(eventTime1, eventTime2));
        }
        public void HaveSimiliarEventTimeTest()
        {
            var eventTime1 = DateTimeFactory.SomeWorkingHoursDateTime();
            var eventTime2 = eventTime1.Add(ConcurrentEventHeuristic.EventTimeDifference);

            Assert.IsTrue(ConcurrentEventHeuristic.AreSimilar(eventTime1, eventTime2));
        }
        public void CalculateEquivalentPairs(CommandEvent commandEvent)
        {
            if (ConcurrentEventHeuristic.IsIgnorableTextControlCommand(commandEvent.CommandId))
            {
                return;
            }

            if (_lastCommandEvent != null &&
                ConcurrentEventHeuristic.AreConcurrent(_lastCommandEvent, commandEvent) &&
                _lastCommandEvent.CommandId != commandEvent.CommandId)
            {
                if (_lastCommandEvent.TriggeredBy != EventTrigger.Unknown ||
                    commandEvent.TriggeredBy != EventTrigger.Unknown)
                {
                    AddEquivalentCommandsToStatistic(
                        _lastCommandEvent.CommandId,
                        commandEvent.CommandId);
                }
                else
                {
                    AddEquivalentCommandsToUnknownTriggerMappings(
                        _lastCommandEvent.CommandId,
                        commandEvent.CommandId);
                }
            }

            _lastCommandEvent = commandEvent;
        }
        private void ProcessIDEEvent(IDEEvent @event)
        {
            var lastEvent = _eventCache.LastOrDefault();

            if (lastEvent != null && !ConcurrentEventHeuristic.AreConcurrent(lastEvent, @event))
            {
                if (_eventCache.Count > 1)
                {
                    ReplaceCurrentEventWith(GenerateConcurrentEvent());
                }
                _eventCache.Clear();
            }
            _eventCache.Add(@event);
        }
Exemplo n.º 5
0
        public void FilterCommandEvents(CommandEvent commandEvent)
        {
            if (ConcurrentEventHeuristic.IsIgnorableTextControlCommand(commandEvent.CommandId))
            {
                return;
            }

            var previousCommandEvent = _oldCommandEvent;

            _oldCommandEvent = commandEvent;
            if (IsDuplicate(commandEvent, previousCommandEvent))
            {
                DropCurrentEvent();
            }
        }
Exemplo n.º 6
0
 private static bool IsDuplicate(CommandEvent commandEvent, CommandEvent previousCommandEvent)
 {
     return(previousCommandEvent != null && previousCommandEvent.CommandId == commandEvent.CommandId &&
            ConcurrentEventHeuristic.AreConcurrent(previousCommandEvent, commandEvent));
 }
 public void ShouldDetectIgnorableTextControlEvents(string commandId, bool expected)
 {
     Assert.AreEqual(expected, ConcurrentEventHeuristic.IsIgnorableTextControlCommand(commandId));
 }