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)); }
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); }
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)); }
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)); }
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)); }
public void addNewTrigger(EffectTrigger effectTrigger) { Triggers.Add(effectTrigger); }
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()); }