public void PropertyBoundApproximationTest()
        {
            var Q = new float[, ] {
                { 0.4f, 0.3f, 0.1f, 0.4f, 0.1f },
                { 0.7f, 0.1f, 0.0f, 0.7f, 0.1f },
                { 0.3f, 0.6f, 0.2f, 0.2f, 0.1f },
                { 0.1f, 0.2f, 0.8f, 0.2f, 0.2f },
                { 0.1f, 0.0f, 0.2f, 0.2f, 0.8f },
            };
            var R = new float[, ] {
                { 0.8f, 0.6f, 0.2f, 0.6f, 0.1f },
                { 0.0f, 0.4f, 0.6f, 0.1f, 0.1f },
                { 0.8f, 0.8f, 0.0f, 0.2f, 0.0f },
                { 0.6f, 0.5f, 0.3f, 0.7f, 0.3f },
            };
            var exp = new Bounds[, ]
            {
                { b(0.4, 0.4), b(0.3, 0.4), b(0.1, 0.2), b(0.4, 0.4), b(0.1, 0.2), },
                { b(0.7, 0.7), b(0.1, 0.4), b(0.0, 0.2), b(0.7, 0.7), b(0.1, 0.2), },
                { b(0.3, 0.3), b(0.6, 0.6), b(0.2, 0.2), b(0.2, 0.3), b(0.1, 0.2), },
                { b(0.1, 0.3), b(0.2, 0.4), b(0.8, 0.8), b(0.2, 0.3), b(0.2, 0.2), },
                { b(0.1, 0.3), b(0.0, 0.4), b(0.2, 0.2), b(0.2, 0.3), b(0.8, 0.8), },
            };

            var act = Approximations.PropertyBoundApproximation(Norms.Lukasiewicz, Implications.Lukasiewicz, Q, R);

            AssertApproximationsEqual(exp, act);
        }