public void NullGasRatioReturnedWhenDenominatorIsZero() { IMeasurement numGas = new GasMeasurement() { Value = 100, Unit = new ConcentrationUnits.PartsPerMillion() }; IMeasurement denGas = new GasMeasurement() { Value = 0, Unit = new ConcentrationUnits.PartsPerMillion() }; var ratio = AlgorithmHelperCalculations.GasRatio(numGas, denGas); Assert.AreEqual(null, ratio); }
public void ValidGasRatioIsCalculated() { IMeasurement numGas = new GasMeasurement() { Value = 100, Unit = new ConcentrationUnits.PartsPerMillion() }; IMeasurement denGas = new GasMeasurement() { Value = 100, Unit = new ConcentrationUnits.PartsPerMillion() }; var ratio = AlgorithmHelperCalculations.GasRatio(numGas, denGas); Assert.AreEqual(1.0, ratio); }
public async Task SaveSummary(IReadOnlyCollection <GasMeasurement> gasMeasurements) { var count = gasMeasurements.Count; var moment = gasMeasurements.OrderByDescending(x => x.Moment).First().Moment; var summary = new GasMeasurement { BtcVsUsd = gasMeasurements.Sum(x => x.BtcVsUsd) / count, EthGasPriceFast = gasMeasurements.Sum(x => x.EthGasPriceFast) / count, EthGasPriceLow = gasMeasurements.Sum(x => x.EthGasPriceLow) / count, EthGasPriceStandard = gasMeasurements.Sum(x => x.EthGasPriceStandard) / count, EthVsUsd = gasMeasurements.Sum(x => x.EthVsUsd) / count, RSKMinGasPrice = gasMeasurements.Sum(x => x.RSKMinGasPrice) / count, Moment = moment, }; await GetSummaryBlob(moment).UploadTextAsync(JsonConvert.SerializeObject(summary)); }
public void Save(GasMeasurement gas) { var l = Get(gas.Moment); l.Add(gas); GetBlob(gas.Moment).UploadTextAsync(JsonConvert.SerializeObject(l)); try { SaveSummary(l); } catch (Exception e) { Console.WriteLine($"Error saving summary ({gas.Moment})."); Console.WriteLine(e); } }