public void DmmMeasurementRange_ExtraMax() { var r = new DmmMeasurementRange("Test", 0, 100, DmmMeasurementType.Unknown); Assert.AreEqual(0, r.MinimumExponent); Assert.AreEqual(9, r.MaximumExponent); }
public void DmmMeasurementRange_UndefinedRange() { var r = new DmmMeasurementRange(DmmMeasurementType.VoltageDC); Assert.AreEqual(-9, r.MinimumExponent); Assert.AreEqual(9, r.MaximumExponent); }
public void DmmMeasurementRange_Basic() { var r = new DmmMeasurementRange("Test", -3, 3, DmmMeasurementType.VoltageDC); Assert.AreEqual("Test", r.Title); Assert.AreEqual(-3, r.MinimumExponent); Assert.AreEqual(3, r.MaximumExponent); Assert.AreEqual(DmmMeasurementType.VoltageDC, r.MeasurementType); }
public void DmmMeasurementRange_SlightlyOver2() { var r = new DmmMeasurementRange("Test", 2, 4, DmmMeasurementType.VoltageDC); Assert.AreEqual("Test", r.Title); Assert.AreEqual(3, r.MinimumExponent); Assert.AreEqual(6, r.MaximumExponent); Assert.AreEqual(DmmMeasurementType.VoltageDC, r.MeasurementType); }
public void DmmMeasurement_RangeMilliToNone_Below() { var r = new DmmMeasurementRange("Current", -3, 3, DmmMeasurementType.CurrentDC); var m = new DmmMeasurement(0.0001M, r); Assert.AreEqual(0.1M, m.Value.Coefficient); Assert.AreEqual(-3, m.Value.Exponent); Assert.AreEqual("m", m.Value.SIPrefix); Assert.AreEqual("mA", m.SIUnit); }
public void DmmMeasurement_RangeMilliToNone_Above() { var r = new DmmMeasurementRange("Current", -3, 0, DmmMeasurementType.CurrentDC); var m = new DmmMeasurement(1000, r); Assert.AreEqual(1000, m.Value.Coefficient); Assert.AreEqual(0, m.Value.Exponent); Assert.AreEqual("", m.Value.SIPrefix); Assert.AreEqual("A", m.SIUnit); }
private DmmMeasurement GetNextMeasurement() { var bytes = new byte[5]; if (this.Readings.IsEmpty || (Rnd.Next(100) == 0)) { switch (Rnd.Next(9)) { case 0: this.Range = new DmmMeasurementRange(DmmMeasurementType.VoltageDC); break; case 1: this.Range = new DmmMeasurementRange(DmmMeasurementType.VoltageAC, "~"); break; case 2: this.Range = new DmmMeasurementRange(DmmMeasurementType.Resistance); break; case 3: this.Range = new DmmMeasurementRange(DmmMeasurementType.Diode); break; case 4: this.Range = new DmmMeasurementRange(DmmMeasurementType.Capacitance); break; case 5: this.Range = new DmmMeasurementRange(DmmMeasurementType.CurrentDC); break; case 6: this.Range = new DmmMeasurementRange(DmmMeasurementType.CurrentAC, "~"); break; case 7: this.Range = new DmmMeasurementRange(DmmMeasurementType.Frequency); break; default: this.Range = new DmmMeasurementRange(DmmMeasurementType.Unknown, "?"); break; } this.Readings.Clear(); var newValue = Rnd.Next(-9, 10) * Math.Pow(10, Rnd.Next(-8, 9)); this.Readings.Add(newValue); } else { var currValue = this.Readings.Average; var newDelta = Rnd.Next(-200, 201) / 100.0; var newRange = (currValue != 0) ? Math.Pow(10, Math.Truncate((Math.Log10(Math.Abs(currValue))))) : 1; if (newRange < 1) { newRange /= 10; } var newValue = currValue + newDelta * newRange * 0.1; this.Readings.Add(newValue); } return(new DmmMeasurement(Convert.ToDecimal(this.Readings.Average), this.Range)); }
public void DmmMeasurementRange_MinLargerThanMax() { var r = new DmmMeasurementRange("Test", 1, 0, DmmMeasurementType.Unknown); }