private void _TestTargeting(TCTestJig tj) { TimeSpan ts = tj.TempCtrl.TimeNeededToReachTargetTemp(); _Debug.WriteLine("Mixture temp = " + tj.Mixture.Temperature); _Debug.WriteLine("Setpoint temp = " + tj.TempCtrl.TCSetpoint); _Debug.WriteLine("Source temp = " + tj.TempCtrl.TCSrcTemperature); _Debug.WriteLine("Ambient temp = " + tj.TempCtrl.AmbientTemperature); _Debug.WriteLine("TCSys Delta T = " + tj.TempCtrl.TCSrcDelta); _Debug.WriteLine("RampRate = " + (tj.TempCtrl.TCTemperatureRampRate.DegreesKelvin / tj.TempCtrl.TCTemperatureRampRate.PerTimePeriod.TotalMinutes) + " degrees per minute."); _Debug.WriteLine("TCSys Mode = " + tj.TempCtrl.TCMode); _Debug.WriteLine("TCSys is " + (tj.TempCtrl.TCEnabled?"enabled.":"disabled.")); string driveString = tj.TempCtrl.TCEnabled?"be driven to":"drift to"; _Debug.WriteLine("Time needed for mixture to " + driveString + " a target temperature of " + tj.TempCtrl.TCSetpoint + " is " + ts); _Debug.WriteLine("At time 00:00:00, " + tj.Mixture); tj.TempCtrl.ImposeEffectsOfDuration(ts); _Debug.WriteLine("At time " + ts + ", " + tj.Mixture); if (!tj.TempCtrl.TCEnabled) { Assert.IsTrue(tj.MixTempWithinTolerance, "In tolerance at the specified time."); } if (tj.TempCtrl.TCEnabled) { tj.TempCtrl.ImposeEffectsOfDuration(ts); _Debug.WriteLine("At twice the time " + ts + ", " + tj.Mixture); Assert.IsTrue(tj.MixTempWithinTolerance, "Still in tolerance at twice the specified time (Temperature Control is enabled.)"); } }
public void TestReplicateFailAfterTurningOffTCEnabled() { _Debug.WriteLine("\r\nTesting what happens when temperature control is turned off, but ambient cannot drive achievement of the setpoint."); TCTestJig tj; TimeSpan ts; bool fail = false; foreach (TemperatureControllerMode tcMode in Enum.GetValues(typeof(TemperatureControllerMode))) { // Set specific pre-conditions. tj = new TCTestJig(5.0, 34.0, 20.0, 10.0, 5.0, 01.0, tcMode, true); // Make sure they're achievable with TC on. ts = tj.TempCtrl.TimeNeededToReachTargetTemp(); // Turn TC off. tj.TempCtrl.TCEnabled = false; try { ts = tj.TempCtrl.TimeNeededToReachTargetTemp(); Console.WriteLine("Success: No error generated when TCMode is {0}.", tcMode); } catch (TemperatureController.IncalculableTimeToSetpointException) { fail = true; Console.WriteLine("FAIL: Error generated when TCMode is {0}.", tcMode); } } _Debug.Assert(!fail); }
public void TestTCConstTRampRateKlendathu() { _Debug.WriteLine("\r\nTesting temperature drive up from constant RampRate."); // SRC MIX AMB SET RMP ERR MODE ENBL TCTestJig tj = new TCTestJig(17.0, 17.0, 34.0, 35.0, 5.0, 00.0, CONST_RAMP, true); _TestTargeting(tj); }
public void TestTCConstTSrcTargetingLevel() { _Debug.WriteLine("\r\nTesting temperature drive up from constant TSrc."); // SRC MIX AMB SET RMP ERR MODE ENBL TCTestJig tj = new TCTestJig(60.0, 20.0, 34.0, 60.0, 5.0, 01.0, CONST_TSRC, true); _TestTargeting(tj); }
public void TestTCConstDeltaTargetingUp2() { _Debug.WriteLine("\r\nTesting temperature drive up from constant delta."); // SRC MIX AMB SET RMP ERR MODE ENBL TCTestJig tj = new TCTestJig(60.0, 25.0, 34.0, 65.0, 5.0, 01.0, CONST_DLTA, true); _TestTargeting(tj); }
public void TestTCDriftUp() { _Debug.WriteLine("\r\nTesting temperature updrift due to ambient."); // SRC MIX AMB SET RMP ERR MODE ENBL TCTestJig tj = new TCTestJig(90.0, 34.0, 70.0, 44.0, 5.0, 01.0, CONST_DLTA, false); _TestTargeting(tj); }
public void TestTCConstTRampRateTargetingDown() { _Debug.WriteLine("\r\nTesting temperature drive down from constant RampRate."); // SRC MIX AMB SET RMP ERR MODE ENBL TCTestJig tj = new TCTestJig(20.0, 70.0, 34.0, 50.0, 5.0, 01.0, CONST_RAMP, true); _TestTargeting(tj); }
public void TestUnderShootWhileOn() { _Debug.WriteLine("\r\nTesting what happens when temperature undershoots the setpoint."); // SRC MIX AMB SET RMP ERR MODE ENBL TCTestJig tj = new TCTestJig(20.0, 34.0, 20.0, 30.0, 5.0, 01.0, CONST_DLTA, true); TimeSpan ts = tj.TempCtrl.TimeNeededToReachTargetTemp(); _Debug.Write("We need " + ts + " to reach setpoint. We will drive the system for "); ts += TimeSpan.FromSeconds(ts.TotalSeconds * .25); _Debug.WriteLine(ts); _Debug.WriteLine(tj.Mixture.ToString()); tj.TempCtrl.ImposeEffectsOfDuration(ts); _Debug.WriteLine(tj.Mixture.ToString()); _Debug.Assert(true == tj.MixTempWithinTolerance, ""); }