Example #1
0
        public void HasEventTest()
        {
            EffectTrigger target = new EffectTrigger();

            ModalityEvent modalityEvent = new ModalityEvent();
            modalityEvent.Type = ActionType.HAND_SWIPE_LEFT;

            target.Triggers.Add(modalityEvent);
            
            ModalityEvent newModalityEvent = new ModalityEvent();
            newModalityEvent.Type = ActionType.HAND_SWIPE_LEFT;

            Assert.AreEqual(true, target.HasEvent(newModalityEvent));
        }
Example #2
0
        public void NewEventUpdateTimeAndStateTest()
        {
            EffectTrigger target = new EffectTrigger();

            ModalityEvent modalityEvent = new ModalityEvent();
            modalityEvent.Type = ActionType.HAND_SWIPE_LEFT;
            target.Triggers.Add(modalityEvent);

            ModalityEvent newModalityEvent = new ModalityEvent();
            newModalityEvent.Type = ActionType.HAND_SWIPE_LEFT;
            newModalityEvent.EventTime = 1000;
            target.SetNewEvent(newModalityEvent);

            Assert.AreEqual(target.Triggers[0].EventTime, 1000);

            newModalityEvent = new ModalityEvent();
            newModalityEvent.Type = ActionType.HAND_SWIPE_LEFT;
            newModalityEvent.EventTime = 2500;
            target.SetNewEvent(newModalityEvent);

            Assert.AreEqual(target.Triggers[0].EventTime, 2500);
        }
Example #3
0
        public void SetThreeEventsTriggerWithTimeWindowAndIsAbleToTriggerIncorrectTimeTest()
        {
            EffectTrigger target = new EffectTrigger();

            ModalityEvent modalityEvent1 = new ModalityEvent();
            modalityEvent1.Type = ActionType.HAND_SWIPE_LEFT;
            ModalityEvent modalityEvent2 = new ModalityEvent();
            modalityEvent2.Type = ActionType.HAND_SWIPE_RIGHT;
            ModalityEvent modalityEvent3 = new ModalityEvent();
            modalityEvent3.Type = ActionType.POSTURE_DIRECTION_KINECT;
            target.Triggers.Add(modalityEvent1);
            target.Triggers.Add(modalityEvent2);
            target.Triggers.Add(modalityEvent3);
            //Set the time windows constraint
            target.TimeWindow = 1500;

            ModalityEvent newModalityEvent1 = new ModalityEvent();
            newModalityEvent1.Type = ActionType.HAND_SWIPE_LEFT;
            newModalityEvent1.EventTime = 1000;
            ModalityEvent newModalityEvent2 = new ModalityEvent();
            newModalityEvent2.Type = ActionType.HAND_SWIPE_RIGHT;
            newModalityEvent2.EventTime = 1500;
            ModalityEvent newModalityEvent3 = new ModalityEvent();
            newModalityEvent3.Type = ActionType.POSTURE_DIRECTION_KINECT;
            newModalityEvent3.EventTime = 3000;

            Assert.AreEqual(true, target.HasEvent(newModalityEvent1));
            Assert.AreEqual(true, target.HasEvent(newModalityEvent2));
            Assert.AreEqual(true, target.HasEvent(newModalityEvent3));

            target.SetNewEvent(newModalityEvent1);
            Assert.AreEqual(false, target.IsReadyToTrigger(1001));

            target.SetNewEvent(newModalityEvent2);
            Assert.AreEqual(false, target.IsReadyToTrigger(1550));

            target.SetNewEvent(newModalityEvent3);
            Assert.AreEqual(false, target.IsReadyToTrigger(3001));
        }
Example #4
0
        public void SetTwoEventsTriggerAndIsNotAbleToTrigger()
        {
            EffectTrigger target = new EffectTrigger();

            ModalityEvent modalityEvent1 = new ModalityEvent();
            modalityEvent1.Type = ActionType.HAND_SWIPE_LEFT;
            ModalityEvent modalityEvent2 = new ModalityEvent();
            modalityEvent2.Type = ActionType.HAND_SWIPE_RIGHT;
            target.Triggers.Add(modalityEvent1);
            target.Triggers.Add(modalityEvent2);

            ModalityEvent newModalityEvent1 = new ModalityEvent();
            newModalityEvent1.Type = ActionType.HAND_SWIPE_LEFT;
            ModalityEvent newModalityEvent2 = new ModalityEvent();
            newModalityEvent2.Type = ActionType.SPEECH_NEXT;

            Assert.AreEqual(true, target.HasEvent(newModalityEvent1));
            Assert.AreEqual(false, target.HasEvent(newModalityEvent2));

            target.SetNewEvent(newModalityEvent1);
            Assert.AreEqual(false, target.IsReadyToTrigger(0));

            target.SetNewEvent(newModalityEvent2);
            Assert.AreEqual(false, target.IsReadyToTrigger(0));
        }
Example #5
0
        public void SetTwoEventTriggerWithTimeWindowAndIsNotAbleToTriggerOnIncorrectTimeTest()
        {
            EffectTrigger target = new EffectTrigger();

            ModalityEvent modalityEvent1 = new ModalityEvent();
            modalityEvent1.Type = ActionType.HAND_SWIPE_LEFT;
            ModalityEvent modalityEvent2 = new ModalityEvent();
            modalityEvent2.Type = ActionType.HAND_SWIPE_RIGHT;
            target.Triggers.Add(modalityEvent1);
            target.Triggers.Add(modalityEvent2);
            //Set the time windows constraint
            target.TimeWindow = 2000;

            ModalityEvent newModalityEvent1 = new ModalityEvent();
            newModalityEvent1.Type = ActionType.HAND_SWIPE_LEFT;
            newModalityEvent1.EventTime = 1000;
            ModalityEvent newModalityEvent2 = new ModalityEvent();
            newModalityEvent2.Type = ActionType.HAND_SWIPE_RIGHT;
            newModalityEvent2.EventTime = 3001;

            Assert.AreEqual(true, target.HasEvent(newModalityEvent1));
            Assert.AreEqual(true, target.HasEvent(newModalityEvent2));

            target.SetNewEvent(newModalityEvent1);
            Assert.AreEqual(false, target.IsReadyToTrigger(1001));

            target.SetNewEvent(newModalityEvent2);
            Assert.AreEqual(false, target.IsReadyToTrigger(3002));
        }
Example #6
0
 public void addNewTrigger(EffectTrigger effectTrigger)
 {
     Triggers.Add(effectTrigger);
 }
Example #7
0
        public void SetOneEventTriggerAndIsNotAbleToTrigger()
        {
            EffectTrigger target = new EffectTrigger();

            ModalityEvent modalityEvent = new ModalityEvent();
            modalityEvent.Type = ActionType.HAND_SWIPE_LEFT;

            target.Triggers.Add(modalityEvent);

            ModalityEvent newModalityEvent = new ModalityEvent();
            newModalityEvent.Type = ActionType.HAND_SWIPE_RIGHT;

            Assert.AreEqual(false, target.HasEvent(newModalityEvent));
            target.SetNewEvent(newModalityEvent);

            Assert.AreEqual(false, target.IsReadyToTrigger(0));
        }
        public void AddOneEffectTrigger()
        {
            MultimodalEngine target = new MultimodalEngine();

            var modalityEvent = new Mock<ModalityEvent>();
            var effect = new Mock<IEffect>();

            EffectTrigger effectTrigger = new EffectTrigger();

            target.addNewTrigger(effectTrigger);

            Assert.IsTrue(target.Triggers.Contains(effectTrigger));
        }
        public void AddOneEffectTriggerAndTriggerIt()
        {
            MultimodalEngine target = new MultimodalEngine();

            ModalityEvent modalityEvent = new ModalityEvent();
            modalityEvent.Type = ActionType.HAND_SWIPE_LEFT;

            var effect = new Mock<IEffect>();

            //Define trigger with one input modality event that triggers one effect
            EffectTrigger effectTrigger = new EffectTrigger();
            effectTrigger.Effects.Add(effect.Object);
            effectTrigger.Triggers.Add(modalityEvent);

            target.addNewTrigger(effectTrigger);

            //Prepare future event
            ModalityEvent action = new ModalityEvent();
            action.Type = ActionType.HAND_SWIPE_LEFT;
            
            //trigger it
            target.NewInputModalityEvent(action);

            //Verify triggering
            effect.Verify(foo => foo.execute());
        }
        public void AVoiceCommandShouldNotTriggerWithoutPostureDirectionTest()
        {
            var mock = new Mock<Clock>();
            var timeInMilliseconds = 0;
            mock.Setup(foo => foo.CurrentTimeInMillis())
                .Returns(() => timeInMilliseconds);

            MultimodalEngine target = new MultimodalEngine();
            target.ClockInstance = mock.Object;

            ModalityEvent modalityEvent1 = new ModalityEvent();
            modalityEvent1.Type = ActionType.POSTURE_DIRECTION_KINECT;

            ModalityEvent modalityEvent2 = new ModalityEvent();
            modalityEvent2.Type = ActionType.SPEECH_NEXT;

            var effect = new Mock<IEffect>();

            //Define trigger with one input modality event that triggers one effect
            EffectTrigger effectTrigger = new EffectTrigger();
            effectTrigger.Effects.Add(effect.Object);
            effectTrigger.Triggers.Add(modalityEvent1);
            effectTrigger.Triggers.Add(modalityEvent2);
            effectTrigger.TimeWindow = 1000;

            target.addNewTrigger(effectTrigger);

            ModalityEvent action2 = new ModalityEvent();
            action2.Type = ActionType.SPEECH_NEXT;
            action2.EventTime = 1500;

            timeInMilliseconds = 1600;
            target.NewInputModalityEvent(action2);

            effect.Verify(foo => foo.execute(), Times.Never());
        }
        public void AddComposedTriggerEffectAndDontTriggerItWithTimeContrainst()
        {
            var mock = new Mock<Clock>();
            var timeInMilliseconds = 0;
            mock.Setup(foo => foo.CurrentTimeInMillis())
                .Returns(() => timeInMilliseconds);

            MultimodalEngine target = new MultimodalEngine();
            target.ClockInstance = mock.Object;

            ModalityEvent modalityEvent1 = new ModalityEvent();
            modalityEvent1.Type = ActionType.HAND_SWIPE_LEFT;

            ModalityEvent modalityEvent2 = new ModalityEvent();
            modalityEvent2.Type = ActionType.HAND_SWIPE_RIGHT;

            var effect = new Mock<IEffect>();

            //Define trigger with one input modality event that triggers one effect
            EffectTrigger effectTrigger = new EffectTrigger();
            effectTrigger.Effects.Add(effect.Object);
            effectTrigger.Triggers.Add(modalityEvent1);
            effectTrigger.Triggers.Add(modalityEvent2);
            effectTrigger.TimeWindow = 1000;

            target.addNewTrigger(effectTrigger);

            //Prepare future event1
            ModalityEvent action1 = new ModalityEvent();
            action1.Type = ActionType.HAND_SWIPE_LEFT;
            action1.EventTime = 1000;

            timeInMilliseconds = 1001;
            target.NewInputModalityEvent(action1);

            //Was not trigger yet
            effect.Verify(foo => foo.execute(), Times.Never());

            //Prepare future event2
            ModalityEvent action2 = new ModalityEvent();
            action2.Type = ActionType.HAND_SWIPE_RIGHT;
            action2.EventTime = 3001;

            timeInMilliseconds = 3001;
            target.NewInputModalityEvent(action2);

            effect.Verify(foo => foo.execute(), Times.Never());
        }
        public void AddOneEffectTriggerAndDontTriggerItTimeHasPassed()
        {
            var mock = new Mock<Clock>();
            var timeInMilliseconds = 0;
            mock.Setup(foo => foo.CurrentTimeInMillis())
                .Returns(() => timeInMilliseconds);

            MultimodalEngine target = new MultimodalEngine();
            target.ClockInstance = mock.Object;

            ModalityEvent modalityEvent = new ModalityEvent();
            modalityEvent.Type = ActionType.HAND_SWIPE_LEFT;

            var effect = new Mock<IEffect>();

            //Define trigger with one input modality event that triggers one effect
            EffectTrigger effectTrigger = new EffectTrigger();
            effectTrigger.Effects.Add(effect.Object);
            effectTrigger.Triggers.Add(modalityEvent);
            effectTrigger.TimeWindow = 1000;

            target.addNewTrigger(effectTrigger);

            //Prepare future event
            ModalityEvent action = new ModalityEvent();
            action.Type = ActionType.HAND_SWIPE_LEFT;
            action.EventTime = 1000;

            //trigger it
            timeInMilliseconds = 3000;
            target.NewInputModalityEvent(action);

            //Verify triggering
            effect.Verify(foo => foo.execute(), Times.Never());
        }
        public void AddOneTriggerAndTriggersOnCorrectTimePassed()
        {            
            MultimodalEngine target = new MultimodalEngine();
            
            ModalityEvent modalityEvent = new ModalityEvent();
            modalityEvent.Type = ActionType.HAND_SWIPE_LEFT;

            var effect = new Mock<IEffect>();

            //Define trigger with one input modality event that triggers one effect
            EffectTrigger effectTrigger = new EffectTrigger();
            effectTrigger.Effects.Add(effect.Object);
            effectTrigger.Triggers.Add(modalityEvent);

            target.addNewTrigger(effectTrigger);

            //Prepare future event
            ModalityEvent action = new ModalityEvent();
            action.Type = ActionType.HAND_SWIPE_RIGHT;

            //add event
            target.NewInputModalityEvent(action);
        }
        public void AddComposedTriggerEffectAndTriggerIt()
        {
            MultimodalEngine target = new MultimodalEngine();

            ModalityEvent modalityEvent1 = new ModalityEvent();
            modalityEvent1.Type = ActionType.HAND_SWIPE_LEFT;

            ModalityEvent modalityEvent2 = new ModalityEvent();
            modalityEvent2.Type = ActionType.HAND_SWIPE_RIGHT;

            var effect = new Mock<IEffect>();

            //Define trigger with one input modality event that triggers one effect
            EffectTrigger effectTrigger = new EffectTrigger();
            effectTrigger.Effects.Add(effect.Object);
            effectTrigger.Triggers.Add(modalityEvent1);
            effectTrigger.Triggers.Add(modalityEvent2);

            target.addNewTrigger(effectTrigger);

            //Prepare future event1
            ModalityEvent action1 = new ModalityEvent();
            action1.Type = ActionType.HAND_SWIPE_LEFT;
            action1.EventTime = 1000;

            target.NewInputModalityEvent(action1);

            //Was not trigger yet
            effect.Verify(foo => foo.execute(), Times.Never());

            //Prepare future event2
            ModalityEvent action2 = new ModalityEvent();
            action2.Type = ActionType.HAND_SWIPE_RIGHT;

            target.NewInputModalityEvent(action2);

            effect.Verify(foo => foo.execute());
        }