コード例 #1
0
        public void ShouldNotRecognizeInvalidTouchpoints()
        {
            // Arrange
            var samplesInvalid = new List <List <Point2D> > {
                new List <Point2D> {
                    new Point2D(303, 152),
                    new Point2D(379, 577),
                    new Point2D(368, 171),
                    new Point2D(368, 285)
                },
                new List <Point2D> {
                    new Point2D(1473, 235),
                    new Point2D(1417, 328),
                    new Point2D(1563, 340),
                    new Point2D(1624, 263)
                }
            };

            // System Under Test
            var api = new TouchcodeAPI();

            // Act + Assert
            foreach (var sample in samplesInvalid)
            {
                Assert.AreEqual(Touchcode.None, api.Check(sample));
            }
        }
コード例 #2
0
        public void ShouldGetReferenceSystemRotated135Degrees()
        {
            // Arrange
            var touchpoints = new List <Point2D> {
                new Point2D(0, 0),
                new Point2D(0, 3),
                new Point2D(3, 3),
                new Point2D(1, 2),
                new Point2D(1, 1)
            };

            // Arrange
            var origin     = touchpoints[1];
            var expectedVx = touchpoints[0] - origin;
            var expectedVy = touchpoints[2] - origin;

            // System Under Test
            var api = new TouchcodeAPI();

            // Act
            var referenceSystem = api.ExtractReferenceSystemFrom(touchpoints);

            // Assert
            Assert.AreEqual(origin, referenceSystem.Origin);
            Assert.AreEqual(expectedVx, referenceSystem.Vx);
            Assert.AreEqual(expectedVy, referenceSystem.Vy);
        }
コード例 #3
0
        public void ShouldRecognizeTouchcode0x10()
        {
            // System Under Test
            var api = new TouchcodeAPI();

            // Act + Assert
            foreach (var sample in _samples0x10)
            {
                Assert.AreEqual(0x10, api.Check(sample).Value);
            }
        }
コード例 #4
0
        public MainWindow()
        {
            InitializeComponent();

            _touchcodeAPI     = new TouchcodeAPI();
            _currentTouchcode = Touchcode.None;
            _canvas           = CreateTouchcodeVisualization();

            canvas.Children.Add(_canvas);

            Redraw();
        }
コード例 #5
0
        public void ShouldReturnDefaultTouchcodeForNull()
        {
            // Arrange
            List <Point2D> touchpoints = null;

            // System Under Test
            var api = new TouchcodeAPI();

            // Act
            var touchcode = api.Check(touchpoints);

            // Assert
            Assert.AreEqual(touchcode, Touchcode.None);
        }
コード例 #6
0
        public void ShouldRecongizeEmptyTouchcode()
        {
            // Arrange
            var touchpoints     = new List <Point2D>();
            var referenceSystem = new ReferenceSystem(new Point2D(0, 0), new Vector2D(3, 0), new Vector2D(0, 3));

            // System Under Test
            var api = new TouchcodeAPI();

            // Act
            var touchcode = referenceSystem.MapPointsToTouchcode(touchpoints).Value;

            // Assert
            Assert.AreEqual(touchcode, 0);
        }
コード例 #7
0
        public void ShouldRecognizeTouchcode0x001()
        {
            // Arrange
            List <Point2D> points = new List <Point2D> {
                new Point2D(306, 501),
                new Point2D(300, 647),
                new Point2D(445, 660),
                new Point2D(362, 507)
            };

            // System Under Test
            var api = new TouchcodeAPI();

            // Act
            var touchcode = api.Check(points);

            // Assert
            Assert.AreEqual(0x001, touchcode.Value);
        }
コード例 #8
0
        public void ShouldMirrorCoordinatesAlongXAxis(double xBefore, double yBefore, double xAfter, double yAfter)
        {
            // Arrange
            int maxY = 1080;

            var touchpoints = new List <Point2D> {
                new Point2D(xBefore, yBefore)
            };

            // System Under Test
            var api = new TouchcodeAPI();

            // Act
            var mirroredPoints = api.MirrorX(touchpoints, maxY);

            // Assert
            Assert.AreEqual(mirroredPoints[0].X, xAfter);
            Assert.AreEqual(mirroredPoints[0].Y, yAfter);
        }
コード例 #9
0
        public void ShouldGetReferenceSystemForSamples0x10()
        {
            // System Under Test
            var api = new TouchcodeAPI();

            foreach (var sample in _samples0x10)
            {
                // Arrange
                var origin     = sample[3];
                var expectedVx = sample[1] - origin;
                var expectedVy = sample[0] - origin;

                // Act
                var referenceSystem = api.ExtractReferenceSystemFrom(sample);

                // Assert
                Assert.AreEqual(origin, referenceSystem.Origin);
                Assert.AreEqual(expectedVx, referenceSystem.Vx);
                Assert.AreEqual(expectedVy, referenceSystem.Vy);
            }
        }
コード例 #10
0
        public void ShouldGetReferenceSystemSimple()
        {
            // Arrange
            var touchpoints = new List <Point2D> {
                new Point2D(0, 0),
                new Point2D(3, 0),
                new Point2D(0, 3),
                new Point2D(1, 1),
                new Point2D(2, 2),
            };

            // System Under Test
            var api = new TouchcodeAPI();

            // Act
            var referenceSystem = api.ExtractReferenceSystemFrom(touchpoints);

            // Assert
            Assert.AreEqual(touchpoints[0], referenceSystem.Origin);
            Assert.AreEqual(touchpoints[1].ToVector2D(), referenceSystem.Vx);
            Assert.AreEqual(touchpoints[2].ToVector2D(), referenceSystem.Vy);
        }
コード例 #11
0
        public void ShouldReturnDefaultTouchcodeForLessThanThreeTouchpoints()
        {
            // Arrange
            List <Point2D> touchpoints = new List <Point2D>();

            // System Under Test
            var api = new TouchcodeAPI();

            // Act
            var touchcode = api.Check(touchpoints);

            // Assert
            Assert.AreEqual(touchcode, Touchcode.None);

            touchpoints.Add(new Point2D(0, 0));
            touchcode = api.Check(touchpoints);
            Assert.AreEqual(touchcode, Touchcode.None);

            touchpoints.Add(new Point2D(0, 0));
            touchcode = api.Check(touchpoints);
            Assert.AreEqual(touchcode, Touchcode.None);
        }