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); } }
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); }
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); }
private void DoCheckCalculationAfterPropertyChange(VectorVelocity velocity, Action <VectorVelocity> changeVelocity, double?expectedVelocity, double?expectedBearing) { changeVelocity(velocity); Assert.AreEqual(expectedVelocity, velocity.Speed); Assert.AreEqual(expectedBearing, velocity.Bearing); }