コード例 #1
0
        public void ParseNumbers()
        {
            // ConsumeInteger()
            {
                Substring subs = new Substring();
                int       result;
                UT_EQ(false, subs.ConsumeInteger(out result));   UT_EQ(0, result);
                subs.Set(""); UT_EQ(false, subs.ConsumeInteger(out result));   UT_EQ(0, result);
                subs.Set("  ABC"); UT_EQ(false, subs.ConsumeInteger(out result));   UT_EQ(0, result);
                subs.Set("  12345"); UT_EQ(true, subs.ConsumeInteger(out result));   UT_EQ(12345, result);
                subs.Set("  12 45"); UT_EQ(true, subs.ConsumeInteger(out result));   UT_EQ(12, result);
                UT_EQ(true, subs.ConsumeInteger(out result));   UT_EQ(45, result);

                subs.Set(" 42 ; 7 ; 6 "); UT_EQ(true, subs.ConsumeInteger(out result));   UT_EQ(42, result);
                UT_EQ(false, subs.ConsumeInteger(out result));   UT_EQ(0, result);
                UT_EQ(false, subs.ConsumeInteger(out result));   UT_EQ(0, result);

                char[] ws = " ;".ToCharArray();
                subs.Set(" 42 ; 7 ; 6 "); UT_EQ(true, subs.ConsumeInteger(out result, ws));   UT_EQ(42, result);
                UT_EQ(true, subs.ConsumeInteger(out result, ws));   UT_EQ(7, result);
                UT_EQ(true, subs.ConsumeInteger(out result, ws));   UT_EQ(6, result);
                UT_EQ(false, subs.ConsumeInteger(out result, ws));   UT_EQ(0, result);
                UT_EQ(false, subs.ConsumeInteger(out result, ws));   UT_EQ(0, result);
            }

            // ConsumeFloat()
            {
                Substring subs = new Substring();
                double    result;
                UT_EQ(false, subs.ConsumeFloat(out result));   UT_EQ(0.0, result);
                subs.Set(""); UT_EQ(false, subs.ConsumeFloat(out result));   UT_EQ(0.0, result);
                subs.Set("  ABC"); UT_EQ(false, subs.ConsumeFloat(out result));   UT_EQ(0.0, result);
                subs.Set("  12345"); UT_EQ(true, subs.ConsumeFloat(out result));   UT_EQ(12345.0, result);
                subs.Set(" 12.45 "); UT_EQ(true, subs.ConsumeFloat(out result));   UT_EQ(12.45, result);
                subs.Set("  12 45"); UT_EQ(true, subs.ConsumeFloat(out result));   UT_EQ(12.0, result);
                UT_EQ(true, subs.ConsumeFloat(out result));   UT_EQ(45.0, result);

                char[] ws = " ;".ToCharArray();
                subs.Set(" 42.3 ; 0.7 ; 6 "); UT_EQ(true, subs.ConsumeFloat(out result, null, ws));   UT_EQ(42.3, result);
                UT_EQ(true, subs.ConsumeFloat(out result, null, ws));   UT_EQ(0.7, result);
                UT_EQ(true, subs.ConsumeFloat(out result, null, ws));   UT_EQ(6.0, result);
                UT_EQ(false, subs.ConsumeFloat(out result, null, ws));   UT_EQ(0.0, result);
                UT_EQ(false, subs.ConsumeFloat(out result, null, ws));   UT_EQ(0.0, result);
            }
        }