Пример #1
0
        public void EuclideanDistanceTest()
        {
            var pR = new Bounds[, ]
            {
                { B(0.6f, 0.8f), B(0.6f, 0.6f), B(0.2f, 0.2f), B(0.6f, 0.8f), B(0.1f, 0.2f) },
                { B(0.0f, 0.3f), B(0.3f, 0.4f), B(0.6f, 0.6f), B(0.0f, 0.3f), B(0.1f, 0.2f) },
                { B(0.2f, 0.8f), B(0.4f, 0.8f), B(0.0f, 0.2f), B(0.2f, 0.8f), B(0.0f, 0.2f) },
                { B(0.6f, 0.7f), B(0.5f, 0.5f), B(0.3f, 0.3f), B(0.6f, 0.7f), B(0.3f, 0.3f) }
            };

            var cQ = new Bounds[, ]
            {
                { B(0.4f, 0.4f), B(0.3f, 0.4f), B(0.1f, 0.2f), B(0.4f, 0.4f), B(0.1f, 0.2f) },
                { B(0.7f, 0.7f), B(0.1f, 0.4f), B(0.0f, 0.2f), B(0.7f, 0.7f), B(0.1f, 0.2f) },
                { B(0.3f, 0.3f), B(0.6f, 0.6f), B(0.2f, 0.2f), B(0.2f, 0.3f), B(0.1f, 0.2f) },
                { B(0.1f, 0.3f), B(0.2f, 0.4f), B(0.8f, 0.8f), B(0.2f, 0.3f), B(0.2f, 0.2f) },
                { B(0.1f, 0.3f), B(0.0f, 0.4f), B(0.2f, 0.2f), B(0.2f, 0.3f), B(0.8f, 0.8f) },
            };

            var exp = new float[, ]
            {
                { 0.23f, 0.19f, 0.27f, 0.43f, 0.46f },
                { 0.27f, 0.43f, 0.24f, 0.12f, 0.36f },
                { 0.24f, 0.28f, 0.25f, 0.42f, 0.43f },
                { 0.20f, 0.18f, 0.26f, 0.37f, 0.39f }
            };

            var result = Distances.EuclideanSetDistance(pR, cQ);

            AssertSetsEqual(exp, result);
        }