using System; using System.Collections.Generic; using System.Text; using NUnit.Framework; using SalsaModel.Scheduling; using SalsaModel.Actions; namespace SalsaModel.Tests { [TestFixture] public class TestMambo { [Test] public void Test1() { SalsaMover mover = new SalsaMover(BodyGeometry.Andy(), new Location(5, -BodyGeometry.Andy().LowerArm, 0)); mover.CheckPosture(); TimeLine tl = new TimeLine(); CompositeActions.StepForward(tl, 0.0, 1.0, mover, PositionModel.Side.Left, 20); double origAngle = mover.Model.ForwardUnit().XYOrientation(); double prev = -1.0; double now = 0.1; bool seen = false; //foreach (IAction action in tl.EndedEventsBetween(prev, now)) //{ // action.End(); //} Assert.AreEqual(origAngle, mover.Model.ForwardUnit().XYOrientation()); foreach (IAction action in tl.StartedEventsBetween(prev, now)) { action.Start(); seen = true; } Assert.IsTrue(seen); seen = false; Assert.AreEqual(origAngle, mover.Model.ForwardUnit().XYOrientation()); for (; now <= 1.0; now += 0.1) { seen = false; foreach (ActiveEvent evt in tl.ActiveEventsAt(now)) { evt.Event.Update(evt.Percent); seen = true; } Assert.AreEqual(origAngle, mover.Model.ForwardUnit().XYOrientation()); Assert.IsTrue(seen); seen = false; mover.AlignKnees(); mover.CheckPosture(); Assert.AreEqual(origAngle, mover.Model.ForwardUnit().XYOrientation()); } } } }