public void SocketBoardTest()
        {
            #region Inputs
            double BoardWidth = 4;
            double BoardHeight = 1;
            double CutDepth = 2;
            double EndMillDiameter = (double)1 / 8;
            double Clearance = (double)1 / 64;
            double EndPinWidth = 0.5;
            int NumInteriorPins = 1;
            #endregion

            #region Assignment
            Breakpoints testPoints = new Breakpoints(BoardWidth, Clearance, EndPinWidth, NumInteriorPins);
            double[] testSocketPoints = testPoints.generateSocketBoard();

            Board testBoard = new Board(BoardHeight, BoardWidth, EndMillDiameter, CutDepth, Clearance);
            CutArea[] testAreas = testBoard.generateSocketBoard(EndPinWidth, NumInteriorPins);

            int x = 0;
            #endregion

            #region Testing
            for (int i = 0; i < testSocketPoints.Length - 1;)
            {
                Assert.AreEqual(testSocketPoints[i++], testAreas[x].xStart);
                Assert.AreEqual(testSocketPoints[i++], testAreas[x].xStop);
                Assert.AreEqual((0 - (0.5 * EndMillDiameter)), testAreas[x].yStart);
                Assert.AreEqual((BoardWidth + (0.5 * EndMillDiameter)), testAreas[x].yStop);
                Assert.AreEqual(CutDepth, testAreas[x++].CutDepth);
            }
            #endregion
        }
        public Form1()
        {
            InitializeComponent();
            double BoardWidth = 7;
            double BoardHeight = 2;
            double CutDepth = 2;
            double EndMillDiameter = (double)1 / 8;
            double Clearance = ((double)1 / 32);
            double EndPinWidth = 1;
            int NumInteriorPins = 5;

            
            
            
            Breakpoints breakPointsTest = new Breakpoints(BoardWidth, Clearance, EndPinWidth, NumInteriorPins);
            Console.WriteLine();
            Console.WriteLine("Ideal Breakpoints:");
            Console.WriteLine("[" + string.Join(", ", breakPointsTest.IdealBreakpoints) + "]");
            Console.WriteLine("Pin Board Break Points:");
            Console.WriteLine("[" + string.Join(", ", breakPointsTest.generatePinBoard()) + "]");
            Console.WriteLine("Socket Board Break Points:");
            Console.WriteLine("[" + string.Join(", ", breakPointsTest.generateSocketBoard()) + "]");

            Board boardTest = new Board(BoardHeight, BoardWidth, EndMillDiameter, CutDepth, Clearance);
            CutArea[] pinBoardTest = boardTest.generatePinBoard(EndPinWidth, NumInteriorPins);
            CutArea[] socketBoardTest = boardTest.generateSocketBoard(EndPinWidth, NumInteriorPins);

            Console.WriteLine();
            Console.WriteLine("Pinboard areas to be cut:");
            foreach (CutArea cutArea in pinBoardTest)
            {
                Console.WriteLine(cutArea.ToString());
            }
            
            Console.WriteLine("Socketboard areas to be cut:");
            foreach (CutArea cutArea in socketBoardTest)
            {
                Console.WriteLine(cutArea.ToString());
            }
        }