public void testParsing() { SifFormatter SIF1x = new Sif1xFormatter(); SifFormatter SIF2x = new Sif2xFormatter(); Boolean BooleanValue = true; //mjn declare types as nullable Boolean?BooleanNull = null; int? intNull = null; assertBooleanParsing(SIF1x, "Yes", BooleanValue); Assert.AreEqual("", SIF1x.ToString(BooleanNull), "Null Bool Value"); //( (Boolean)null )); assertBooleanParsing(SIF2x, "true", BooleanValue); Assert.IsNull(SIF2x.ToString(BooleanNull), "Null Bool Value"); bool?testValue = SIF2x.ToBool("1"); Assert.IsTrue(testValue.Value, "Boolean Value"); testValue = SIF2x.ToBool("0"); Assert.IsFalse(testValue.Value, "Boolean Value"); float floatValue = 99.34f; assertFloatParsing(SIF1x, "99.34", floatValue); Assert.IsNull(SIF1x.ToString((float?)null)); assertFloatParsing(SIF2x, "99.34", floatValue); Assert.IsNull(SIF2x.ToString((float?)null)); floatValue = 321651.09934f; assertFloatParsing(SIF1x, "321651.1", floatValue); assertFloatParsing(SIF2x, "321651.1", floatValue); //INF, -INF and NaN assertFloatParsing(SIF1x, "INF", float.PositiveInfinity); assertFloatParsing(SIF1x, "-INF", float.NegativeInfinity); float?nan = SIF1x.ToFloat("NaN"); Assert.IsTrue(float.IsNaN(nan.Value)); assertFloatParsing(SIF2x, "INF", float.PositiveInfinity); assertFloatParsing(SIF2x, "-INF", float.NegativeInfinity); nan = SIF2x.ToFloat("NaN"); Assert.IsTrue(float.IsNaN(nan.Value)); int intValue = 9998877; // new int(9998877); assertintParsing(SIF1x, "9998877", intValue); Assertion.AssertEquals("Null int Value", "", SIF1x.ToString(intNull)); assertintParsing(SIF2x, "9998877", intValue); Assertion.AssertNull("Null int Value", SIF2x.ToString(intNull)); DateTime?sampleDate = new DateTime(1999, 10, 01); AssertDateParsing(SIF1x, "19991001", sampleDate); Assertion.AssertEquals("Null Value", "", SIF1x.ToDateString(null)); AssertDateParsing(SIF2x, "1999-10-01" /* + tzOffset */, sampleDate); Assertion.AssertNull("Null Date Value", SIF2x.ToDateString(null)); }