public void HorizontalAlignment_givenStationOffsetValues_getXYvalues()
        {
            bool allValuesAgree = true;
             List<IRM21fundamentalGeometry> fundmtlGeoms = createTestHA_fundGeom1();

             rm21HorizontalAlignment HA = new rm21HorizontalAlignment(
            fundamentalGeometryList: fundmtlGeoms,
            Name: null, stationEquationing: null);

             StationOffsetElevation anSOE = new StationOffsetElevation();

             // test a point right of the second line segment (the third segment)
             anSOE.station = 3611.75; anSOE.offset.OFST = 238.949;
             ptsPoint anXYpoint = HA.getXYZcoordinates(anSOE);
             if (anXYpoint != null)
             {
            allValuesAgree &= anXYpoint.x.tolerantEquals(6180.0, 0.014);
            allValuesAgree &= anXYpoint.y.tolerantEquals(4460.0, 0.014);
            allValuesAgree &= anXYpoint.z.tolerantEquals(0.0, 0.000001);
             }
             else
             {
            allValuesAgree = false;
             }

             // test a point right of the second arc (the fourth segment)
             anSOE.station = 4469.2978; anSOE.offset.OFST = 138.1336;
             anXYpoint = HA.getXYZcoordinates(anSOE);
             if (anXYpoint != null)
             {
            allValuesAgree &= anXYpoint.x.tolerantEquals(7062.3839, 0.014);
            allValuesAgree &= anXYpoint.y.tolerantEquals(4636.0766, 0.014);
            allValuesAgree &= anXYpoint.z.tolerantEquals(0.0, 0.000001);
             }
             else
             {
            allValuesAgree = false;
             }

             Assert.IsTrue(allValuesAgree);
        }
        public void HorizontalAlignment_givenBeginStationAndLeftOffset_getXYcoordinates()
        {
            var HA = new rm21HorizontalAlignment(
            fundamentalGeometryList: createTestHA_fundGeom1(),
            Name: null, stationEquationing: null);

             var actual = HA.getXYZcoordinates(0.0, -20.0, 0.0);
             Assert.AreEqual(expected: 3540.3922, actual: actual.x, delta: 0.00015);
             Assert.AreEqual(expected: 2538.8385, actual: actual.y, delta: 0.00015);
        }