public void TestMethod1() { MovingAverage avg = new MovingAverage(2); Assert.AreEqual(0, avg.GetAverage()); avg.AddValue(100); Assert.AreEqual(100, avg.GetAverage()); avg.AddValue(50); Assert.AreEqual(75, avg.GetAverage()); avg.AddValue(0); Assert.AreEqual(25, avg.GetAverage()); avg.AddValue(1000); Assert.AreEqual(500, avg.GetAverage()); }
protected override void Inspect(Vessel vessel) { double previousIspPerRunningEngine = engineIspPerRunningEngine; engineTotalThrust = 0.0; engineIspPerRunningEngine = 0.0; propReqPerRunningEngine = 0.0f; enginesRunningCount = 0; enginesTotalCount = 0; deltaIspPerSecond.Clear();; foreach (ModuleEngines engine in engines) { enginesTotalCount++; double thrust = engine.finalThrust; engineTotalThrust += thrust; if (engine.isEnabled && thrust > 0.0) { engineIspPerRunningEngine += engine.realIsp; propReqPerRunningEngine += engine.propellantReqMet; enginesRunningCount++; } } this.afterburnerEnabled = false; if (enginesRunningCount > 0) { // ISP per engine engineIspPerRunningEngine = engineIspPerRunningEngine / enginesRunningCount; // propellant requirements per running engine propReqPerRunningEngine = propReqPerRunningEngine / enginesRunningCount; // Delta ISP double interval = Planetarium.GetUniversalTime() - GetLastInspectTime(); if (interval > 0.0) { deltaIspPerSecond.AddValue((engineIspPerRunningEngine - previousIspPerRunningEngine) * (1 / interval)); } // afterbruner foreach (MultiModeEngine afterburner in this.afterburner) { if (afterburner.isEnabled && !afterburner.runningPrimary) { this.afterburnerEnabled = true; break; } } } else { engineIspPerRunningEngine = 0; propReqPerRunningEngine = 0; } }