コード例 #1
0
        public void VectorVelocity_Calculates_Velocity_And_Bearing_Correctly()
        {
            var worksheet = new ExcelWorksheetData(TestContext);

            var velocity = new VectorVelocity()
            {
                IsWesterlyVelocity  = worksheet.Bool("IsWesterlyVelocity"),
                IsSoutherlyVelocity = worksheet.Bool("IsSoutherlyVelocity"),
                EastWestVelocity    = worksheet.NShort("EastWestVelocity"),
                EastWestExceeded    = worksheet.Bool("EastWestExceeded"),
                NorthSouthVelocity  = worksheet.NShort("NorthSouthVelocity"),
                NorthSouthExceeded  = worksheet.Bool("NorthSouthExceeded"),
            };

            if (worksheet.String("Speed") == null)
            {
                Assert.IsNull(velocity.Speed);
            }
            else
            {
                Assert.AreEqual(worksheet.Double("Speed"), velocity.Speed.Value, 0.000001);
            }

            if (worksheet.String("Bearing") == null)
            {
                Assert.IsNull(velocity.Bearing);
            }
            else
            {
                Assert.AreEqual(worksheet.Double("Bearing"), velocity.Bearing.Value, 0.000001);
            }
        }
コード例 #2
0
        public void VectorVelocity_Recalculates_When_Properties_Change()
        {
            var velocity = new VectorVelocity();

            DoCheckCalculationAfterPropertyChange(velocity, v => { v.EastWestVelocity = 0; v.NorthSouthVelocity = 0; }, 0, null);
            DoCheckCalculationAfterPropertyChange(velocity, v => v.EastWestVelocity   = 1, 1, 90);
            DoCheckCalculationAfterPropertyChange(velocity, v => v.IsWesterlyVelocity = true, 1, 270);
            DoCheckCalculationAfterPropertyChange(velocity, v => { v.EastWestVelocity = 0; v.NorthSouthVelocity = 1; }, 1, 0);
            DoCheckCalculationAfterPropertyChange(velocity, v => v.IsSoutherlyVelocity = true, 1, 180);
            DoCheckCalculationAfterPropertyChange(velocity, v => { v.EastWestVelocity = 0; v.NorthSouthVelocity = 0; }, 0, null);
        }
コード例 #3
0
        public void VectorVelocity_Initialises_To_Known_State_And_Properties_Work()
        {
            var velocity = new VectorVelocity();

            Assert.IsNull(velocity.Bearing);
            Assert.IsNull(velocity.Speed);

            TestUtilities.TestProperty(velocity, r => r.EastWestExceeded, false);
            TestUtilities.TestProperty(velocity, r => r.EastWestVelocity, null, (short)1234);
            TestUtilities.TestProperty(velocity, r => r.IsSoutherlyVelocity, false);
            TestUtilities.TestProperty(velocity, r => r.IsWesterlyVelocity, false);
            TestUtilities.TestProperty(velocity, r => r.NorthSouthExceeded, false);
            TestUtilities.TestProperty(velocity, r => r.NorthSouthVelocity, null, (short)1234);
        }
コード例 #4
0
 private void DoCheckCalculationAfterPropertyChange(VectorVelocity velocity, Action <VectorVelocity> changeVelocity, double?expectedVelocity, double?expectedBearing)
 {
     changeVelocity(velocity);
     Assert.AreEqual(expectedVelocity, velocity.Speed);
     Assert.AreEqual(expectedBearing, velocity.Bearing);
 }