Проверка пользовательской функции в Form1 - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть несколько модульных тестов, которые успешно тестируют функции в других классах, добавленных в общий проект.Кажется, я не вижу «функций», которые я добавляю в Form1, в каких-либо дополнительных файлах, которые являются частичными классами From1:form.

Функция, которую я хочу проверить, изменена internal.Я добавил [assembly: InternalsVisibleTo("Tests")] в файл Свойства -> AssemblyInfo.cs

Что я делаю не так?

Моя функция для проверки:

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Windows.Forms;
using Accord.Collections;
using System.IO;
using Accord.Math;
using g = GeometRi;
using msf = System.Math;


namespace ProcessPointsCSharp
{
    public partial class Form1 : Form
    {

    internal List<Point> FindPointsInCapsule(
        List<NodeDistance<KDTreeNode<Point>>> points,
        Point searchPoint,
        Axis axis,
        double width = 0,
        double radius = 0.03,
        double bandwidth = 0.005
        )
    {
        g.Point3d lowerPoint = new Point();
        g.Point3d upperPoint = new Point();
        g.Segment3d centerLine;
        double innerRadius = radius - bandwidth;

        switch (axis)
        {
            case Axis.x:
                lowerPoint = new Point(searchPoint.X - (width / 2), searchPoint.Y, searchPoint.Z);
                upperPoint = new Point(searchPoint.X + (width / 2), searchPoint.Y, searchPoint.Z);
                break;
            case Axis.y:
                lowerPoint = new Point(searchPoint.X, searchPoint.Y - (width / 2), searchPoint.Z);
                upperPoint = new Point(searchPoint.X, searchPoint.Y + (width / 2), searchPoint.Z);
                break;
            case Axis.z:
                lowerPoint = new Point(searchPoint.X, searchPoint.Y, searchPoint.Z - (width / 2));
                upperPoint = new Point(searchPoint.X, searchPoint.Y, searchPoint.Z + (width / 2));
                break;
        }

        centerLine = new g.Segment3d(lowerPoint, upperPoint);

        List<Point> results = new List<Point>();
        foreach(NodeDistance<KDTreeNode<Point>> kv in points)
        {
            if(centerLine.DistanceTo(kv.Node.Value) > innerRadius && centerLine.DistanceTo(kv.Node.Value) < radius)
            {
                results.Add(kv.Node.Value);
            }
        }
        return results;
    }

}

Мой тестовый файл:

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using g = GeometRi;
using Accord.Collections;
using ProcessPointsCSharp;
using Helpers;

namespace Tests
{
    [TestClass]
    public class CapsuleTest
    {
        [TestMethod]
        public void TestMethod1()
        {

            KDTree<Point> tree = new KDTree<Point>(3);

            tree.Add(
                new double[] { -0.30652008, 0.39502587, 0.00 },
                new Point(-0.30652008, 0.39502587, 0.00)
                );

            tree.Add(
                new double[] { 0, 0, 0, },
                new Point(0, 0, 0)
                );

            tree.Add(
                new double[] { 0.45, 0.31819805, 0.31819805 },
                new Point( 0.45, 0.31819805, 0.31819805 )
                );

            tree.Add(
                new double[] { 2.00723708, 0.37538366, 0.33028338 },
                new Point(2.00723708, 0.37538366, 0.33028338)
                );

            tree.Add(
                new double[] { 0.25, 0.1767767, 0.1767767 },
                new Point(0.25, 0.1767767, 0.1767767)
                );

            tree.Add(
                new double[] { 3.59315974, 1.32408059, 0.00 },
                new Point(3.59315974, 1.32408059, 0.00)
                );

            tree.Add(
                new double[] { 5.41553352 , -0.23012364 , 0.00 },
                new Point(5.41553352, -0.23012364, 0.00)
                );

            var points = tree.Nearest(new double[] { 0,0,0}, 100);

            Assert.AreEqual(7, points.Count);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...