コード例 #1
0
        public void RemoveRange()
        {
            const string      InitData = "hogepiyo";
            SplitArray <char> chars    = new SplitArray <char>(5, 8);

            // case 2 (moving gap to buffer head)
            chars.Add(InitData.ToCharArray());
            chars.RemoveAt(2);
            Assert.AreEqual(7, chars.Count);
            Assert.AreEqual("hoepiyo", ToString(chars));
            MyAssert.Throws <AssertException>(delegate {
                chars.GetAt(7);
            });

            // case 1 (moving gap to buffer end)
            chars.Clear();
            chars.Add(InitData.ToCharArray());
            chars.RemoveRange(5, 7);
            Assert.AreEqual(6, chars.Count);
            Assert.AreEqual("hogepo", ToString(chars));
            MyAssert.Throws <AssertException>(delegate {
                chars.GetAt(6);
            });

            // before head to middle
            chars.Clear();
            chars.Add(InitData.ToCharArray());
            MyAssert.Throws <AssertException>(delegate {
                chars.RemoveRange(-1, 2);
            });

            // head to middle
            chars.Clear();
            chars.Add(InitData.ToCharArray());
            chars.RemoveRange(0, 2);
            Assert.AreEqual("gepiyo", ToString(chars));

            // middle to middle
            chars.Clear();
            chars.Add(InitData.ToCharArray());
            chars.RemoveRange(2, 5);
            Assert.AreEqual("hoiyo", ToString(chars));

            // middle to end
            chars.Clear();
            chars.Add(InitData.ToCharArray());
            chars.RemoveRange(5, 8);
            Assert.AreEqual("hogep", ToString(chars));

            // middle to after end
            chars.Clear();
            chars.Add(InitData.ToCharArray());
            MyAssert.Throws <AssertException>(delegate {
                chars.RemoveRange(5, 9);
            });
        }
コード例 #2
0
        static void Test_RemoveRange()
        {
            const string      InitData = "hogepiyo";
            SplitArray <char> chars    = new SplitArray <char>(5, 8);

            // case 2 (moving gap to buffer head)
            chars.Add(InitData.ToCharArray());
            chars.RemoveAt(2);
            TestUtl.AssertEquals(7, chars.Count);
            TestUtl.AssertEquals("hoepiyo", ToString(chars));
            try{ chars.GetAt(7); Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!"); }
            catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }

            // case 1 (moving gap to buffer end)
            chars.Clear();
            chars.Add(InitData.ToCharArray());
            chars.RemoveRange(5, 7);
            TestUtl.AssertEquals(6, chars.Count);
            TestUtl.AssertEquals("hogepo", ToString(chars));
            try{ chars.GetAt(6); Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!"); }
            catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }

            // before head to middle
            chars.Clear();
            chars.Add(InitData.ToCharArray());
            try{ chars.RemoveRange(-1, 2); Debug.Fail("Exception wasn't thrown as expected."); }
            catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }

            // head to middle
            chars.Clear();
            chars.Add(InitData.ToCharArray());
            chars.RemoveRange(0, 2);
            TestUtl.AssertEquals("gepiyo", ToString(chars));

            // middle to middle
            chars.Clear();
            chars.Add(InitData.ToCharArray());
            chars.RemoveRange(2, 5);
            TestUtl.AssertEquals("hoiyo", ToString(chars));

            // middle to end
            chars.Clear();
            chars.Add(InitData.ToCharArray());
            chars.RemoveRange(5, 8);
            TestUtl.AssertEquals("hogep", ToString(chars));

            // middle to after end
            chars.Clear();
            chars.Add(InitData.ToCharArray());
            try{ chars.RemoveRange(5, 9); Debug.Fail("Exception wasn't thrown as expected."); }
            catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }
        }