public void FromFormattedLoop() { // Run through a big loop of variations on formatted strings and // see if SIValue can parse them all. bool[] truefalse = new bool[] { true, false }; int ntested = 0; foreach (string unit in new string[] { "mV", "V" }) { foreach (bool neg in truefalse) { foreach (bool zeros in truefalse) { for (int leadingSpace = 0; leadingSpace <= 2; leadingSpace++) { for (int midSpace = 0; midSpace <= 2; midSpace++) { for (int trailSpace = 0; trailSpace <= 2; trailSpace++) { string formatted = new string(' ', leadingSpace); if (neg) { formatted += '-'; } if (unit == "V") { if (zeros) { formatted += "0"; } formatted += '.'; } formatted += "123"; if (unit == "mV" && zeros) { formatted += ".00"; } formatted += new string(' ', midSpace) + unit + new string(' ', trailSpace); SIPrefixedValue sivnew = new SIVoltage(formatted); Assert.AreEqual(sivnew.Formatted, neg ? "-123mV" : "123mV"); Assert.AreEqual(sivnew.SigDigs, neg ? -123 : 123); Assert.AreEqual(sivnew.Prefix, "m"); Assert.AreEqual(sivnew.Exponent, -3); Assert.AreEqual(sivnew.Unit, "V"); ntested++; } } } } } } Assert.AreEqual(ntested, 2 * 2 * 2 * 3 * 3 * 3); }
public void FromFormatted() { SIVoltage volts = new SIVoltage("0.4mV"); Assert.AreEqual(volts.Exponent, -6); Assert.AreEqual(volts.Formatted, "400uV"); Assert.AreEqual(volts.Prefix, "u"); Assert.AreEqual(volts.SigDigs, 400); Assert.AreEqual(volts.Unit, "V"); Assert.IsTrue(Math.Abs(volts.Value / 400e-6 - 1) < 1e-6); }