コード例 #1
0
        public void CompareTo()
        {
            Substring tss = new Substring();

            // null string comparison

            String nullString = null;

            UT_TRUE(tss.CompareTo(nullString) == 0);
            UT_TRUE(tss.Equals(nullString));

            tss.Set("");
            UT_TRUE(tss.CompareTo(nullString) != 0);
            UT_TRUE(!tss.Equals(nullString));

            tss.SetNull();
            UT_TRUE(tss.CompareTo(nullString) == 0);
            UT_TRUE(tss.Equals(nullString));

            String t = "abcde";

            tss = new Substring("01" + t + "234", 2, t.Length);

            int result, resSys;

            result = tss.CompareTo(t);                                     UT_EQ(t.CompareTo(t), result);
            result = tss.CompareTo(t + "x");                               UT_EQ(t.CompareTo(t + "x"), result);
            result = tss.CompareTo(t.Substring(0, t.Length - 1));             UT_EQ(t.CompareTo(t.Substring(0, t.Length - 1)), result);
            result = tss.CompareTo("pad" + t, Case.Sensitive, 3);   UT_EQ(0, result);
            result = tss.CompareTo("pad" + t, Case.Sensitive, 3, 2);   UT_EQ(1, result);


            // greater/smaller strings
            {
                String greater  = "x";
                String greater2 = "abcdef";
                String smaller  = "aaa";
                String smaller2 = "abcd";
                result = tss.CompareTo(greater);  resSys = t.CompareTo(greater); UT_TRUE(result == resSys || (result < 0 && resSys < 0) || (result > 0 && resSys > 0));
                result = tss.CompareTo(greater2);  resSys = t.CompareTo(greater2); UT_TRUE(result == resSys || (result < 0 && resSys < 0) || (result > 0 && resSys > 0));
                result = tss.CompareTo(smaller);  resSys = t.CompareTo(smaller); UT_TRUE(result == resSys || (result < 0 && resSys < 0) || (result > 0 && resSys > 0));
                result = tss.CompareTo(smaller2);  resSys = t.CompareTo(smaller2); UT_TRUE(result == resSys || (result < 0 && resSys < 0) || (result > 0 && resSys > 0));
                String ut = t.ToUpper();
                UT_FALSE(0 == tss.CompareTo(ut));
                UT_FALSE(0 == tss.CompareTo(ut, Case.Sensitive));
                UT_TRUE(0 == tss.CompareTo(ut, Case.Ignore));
            }

            {
                AString greater  = new AString("x");
                AString greater2 = new AString("abcdef");
                AString smaller  = new AString("aaa");
                AString smaller2 = new AString("abcd");
                result = tss.CompareTo(greater);  resSys = t.CompareTo(greater.ToString()); UT_TRUE(result == resSys || (result < 0 && resSys < 0) || (result > 0 && resSys > 0));
                result = tss.CompareTo(greater2);  resSys = t.CompareTo(greater2.ToString()); UT_TRUE(result == resSys || (result < 0 && resSys < 0) || (result > 0 && resSys > 0));
                result = tss.CompareTo(smaller);  resSys = t.CompareTo(smaller.ToString()); UT_TRUE(result == resSys || (result < 0 && resSys < 0) || (result > 0 && resSys > 0));
                result = tss.CompareTo(smaller2);  resSys = t.CompareTo(smaller2.ToString()); UT_TRUE(result == resSys || (result < 0 && resSys < 0) || (result > 0 && resSys > 0));
                AString ut = new AString(t.ToUpper());
                UT_FALSE(0 == tss.CompareTo(ut));
                UT_FALSE(0 == tss.CompareTo(ut, Case.Sensitive));
                UT_TRUE(0 == tss.CompareTo(ut, Case.Ignore));
            }
            {
                Substring greater  = new Substring("123x", 3);
                Substring greater2 = new Substring("123abcdef", 3);
                Substring smaller  = new Substring("123aaa", 3);
                Substring smaller2 = new Substring("123abcd", 3);
                result = tss.CompareTo(greater);  resSys = t.CompareTo(greater.ToString()); UT_TRUE(result == resSys || (result < 0 && resSys < 0) || (result > 0 && resSys > 0));
                result = tss.CompareTo(greater2);  resSys = t.CompareTo(greater2.ToString()); UT_TRUE(result == resSys || (result < 0 && resSys < 0) || (result > 0 && resSys > 0));
                result = tss.CompareTo(smaller);  resSys = t.CompareTo(smaller.ToString()); UT_TRUE(result == resSys || (result < 0 && resSys < 0) || (result > 0 && resSys > 0));
                result = tss.CompareTo(smaller2);  resSys = t.CompareTo(smaller2.ToString()); UT_TRUE(result == resSys || (result < 0 && resSys < 0) || (result > 0 && resSys > 0));
                Substring ut = new Substring(t.ToUpper());
                UT_FALSE(0 == tss.CompareTo(ut));
                UT_FALSE(0 == tss.CompareTo(ut, Case.Sensitive));
                UT_TRUE(0 == tss.CompareTo(ut, Case.Ignore));
            }
        }