Пример #1
0
        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));
        }