private static void Main(string[] args) { // application setup XmlConfigurator.Configure(); ILog log = LogManager.GetLogger("app"); var config = new Configuration(); // the magic VideoProcessor videoProcessor = new VideoProcessor(log, config); TTPointsEngine engine = new TTPointsEngine(); videoProcessor.BallDetected = (p) => { engine.TryCoordinates(p); }; var processingTask = Task.Run(() => { videoProcessor.Process(@"C:\hackathon\input\video4.mov"); }); Console.ReadKey(true); videoProcessor.ShouldStop = true; Task.WaitAll(processingTask); }
public void DetermineEndOfPlay_WhenBallTravelsAtTheSideOfTheTableForRightPlayer() { var pointsEngine = new TTPointsEngine(); Coordinates currentPosition = new Coordinates(350, 300); var result = pointsEngine.DetermineEndOfPlay(currentPosition); Assert.AreEqual(PlayStatus.SideOfTable, result); }
public void DetermineEndOfPlay_WhenBallTravelsUnderTheTableForLeftPlayer() { var pointsEngine = new TTPointsEngine(); Coordinates currentPosition = new Coordinates(400, 300); var result = pointsEngine.DetermineEndOfPlay(currentPosition); Assert.AreEqual(PlayStatus.UnderTable, result); }
public BounceDirection.Direction GetDirectionsFromCoordinates(List <Coordinates> coordinates) { List <Direction> directionsToProcess = new List <Direction>(); TTPointsEngine pointsEngine = new TTPointsEngine(); for (int i = 0; i < coordinates.Count; i++) { directionsToProcess.Add(pointsEngine.DetermineDirectionOfBall(coordinates[i], coordinates[i + 1])); } return(BounceDirection(directionsToProcess)); }
public void DetermineDirectionOfBall_WhenBallTravelsNorth() { var pointsEngine = new TTPointsEngine(); Coordinates previousPosition = new Coordinates(5, 6); Coordinates currentPosition = new Coordinates(5, 3); var result = pointsEngine.DetermineDirectionOfBall(previousPosition, currentPosition); Assert.AreEqual(Direction.North, result); }
public void DetermineDirectionOfBall_WhenBallTravelsSouthWest() { var pointsEngine = new TTPointsEngine(); Coordinates previousPosition = new Coordinates(5, 1); Coordinates currentPosition = new Coordinates(3, 5); var result = pointsEngine.DetermineDirectionOfBall(previousPosition, currentPosition); Assert.AreEqual(Direction.SouthWest, result); }
public void DetermineDirectionOfBall_WhenWeGet2Coordinates_GivesADirection() { var pointsEngine = new TTPointsEngine(); Coordinates firstPoint = new Coordinates(3, 1); Coordinates secondPoint = new Coordinates(5, 4); var result = pointsEngine.DetermineDirectionOfBall(firstPoint, secondPoint); Assert.IsTrue(result.GetType() == typeof(Direction)); }