コード例 #1
0
        public void CopyTo()
        {
            const string      initBufContent = "123456";
            SplitArray <char> sary           = new SplitArray <char>(5, 8);

            char[] buf;
            sary.Insert(0, "hogepiyo".ToCharArray());

            // before head to middle
            buf = initBufContent.ToCharArray();
            MyAssert.Throws <AssertException>(delegate {
                sary.CopyTo(-1, 5, buf);
            });

            // begin to middle
            buf = initBufContent.ToCharArray();
            sary.CopyTo(0, 5, buf);
            Assert.AreEqual("hogep6", new String(buf));

            // middle to middle
            buf = initBufContent.ToCharArray();
            sary.CopyTo(1, 5, buf);
            Assert.AreEqual("ogep56", new String(buf));

            // middle to end
            buf = initBufContent.ToCharArray();
            sary.CopyTo(5, 8, buf);
            Assert.AreEqual("iyo456", new String(buf));

            // end to after end
            buf = initBufContent.ToCharArray();
            MyAssert.Throws <AssertException>(delegate {
                sary.CopyTo(5, 9, buf);
            });

            // Range before the gap
            MoveGap(sary, 2);
            buf = initBufContent.ToCharArray();
            sary.CopyTo(0, 1, buf);
            Assert.AreEqual("h23456", new String(buf));

            // Range including the gap
            MoveGap(sary, 2);
            buf = initBufContent.ToCharArray();
            sary.CopyTo(0, 4, buf);
            Assert.AreEqual("hoge56", new String(buf));

            // Range after the gap
            MoveGap(sary, 2);
            buf = initBufContent.ToCharArray();
            sary.CopyTo(4, 8, buf);
            Assert.AreEqual("piyo56", new String(buf));
        }
コード例 #2
0
        static void Test_CopyTo()
        {
            const string      initBufContent = "123456";
            SplitArray <char> sary           = new SplitArray <char>(5, 8);

            char[] buf;
            sary.Insert(0, "hogepiyo".ToCharArray());

            // before head to middle
            buf = initBufContent.ToCharArray();
            try{ sary.CopyTo(-1, 5, buf); Debug.Fail("Exception wasn't thrown as expected."); }
            catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }

            // begin to middle
            buf = initBufContent.ToCharArray();
            sary.CopyTo(0, 5, buf);
            TestUtl.AssertEquals("hogep6", new String(buf));

            // middle to middle
            buf = initBufContent.ToCharArray();
            sary.CopyTo(1, 5, buf);
            TestUtl.AssertEquals("ogep56", new String(buf));

            // middle to end
            buf = initBufContent.ToCharArray();
            sary.CopyTo(5, 8, buf);
            TestUtl.AssertEquals("iyo456", new String(buf));

            // end to after end
            buf = initBufContent.ToCharArray();
            try{ sary.CopyTo(5, 9, buf); Debug.Fail("Exception wasn't thrown as expected."); }
            catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }

            // Range before the gap
            MoveGap(sary, 2);
            buf = initBufContent.ToCharArray();
            sary.CopyTo(0, 1, buf);
            TestUtl.AssertEquals("h23456", new String(buf));

            // Range including the gap
            MoveGap(sary, 2);
            buf = initBufContent.ToCharArray();
            sary.CopyTo(0, 4, buf);
            TestUtl.AssertEquals("hoge56", new String(buf));

            // Range after the gap
            MoveGap(sary, 2);
            buf = initBufContent.ToCharArray();
            sary.CopyTo(4, 8, buf);
            TestUtl.AssertEquals("piyo56", new String(buf));
        }
コード例 #3
0
        public void Insert_Array()
        {
            const string      InitData = "hogepiyo";
            SplitArray <char> sary     = new SplitArray <char>(5, 8);

            // null array
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            MyAssert.Throws <AssertException>(delegate {
                sary.Insert(0, null);
            });

            // empty array
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(0, "".ToCharArray());
            Assert.AreEqual("hogepiyo", ToString(sary));

            // before head
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            MyAssert.Throws <AssertException>(delegate {
                sary.Insert(-1, "FOO".ToCharArray());
            });

            // head
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(0, "FOO".ToCharArray());
            Assert.AreEqual(11, sary.Count);
            Assert.AreEqual("FOOhogepiyo", ToString(sary));

            // middle
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(4, "FOO".ToCharArray());
            Assert.AreEqual(11, sary.Count);
            Assert.AreEqual("hogeFOOpiyo", ToString(sary));

            // end
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(8, "FOO".ToCharArray());
            Assert.AreEqual(11, sary.Count);
            Assert.AreEqual("hogepiyoFOO", ToString(sary));

            // after end
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            MyAssert.Throws <AssertException>(delegate {
                sary.Insert(9, "FOO".ToCharArray());
            });
        }
コード例 #4
0
        static void Test_Insert_Array()
        {
            const string      InitData = "hogepiyo";
            SplitArray <char> sary     = new SplitArray <char>(5, 8);

            // null array
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            try{ sary.Insert(0, null); Console.WriteLine("### INSA_NULL ###"); }
            catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }

            // empty array
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(0, "".ToCharArray());
            TestUtl.AssertEquals("hogepiyo", ToString(sary));

            // before head
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            try{ sary.Insert(-1, "FOO".ToCharArray()); Console.WriteLine("### INSA_BH ###"); }
            catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }

            // head
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(0, "FOO".ToCharArray());
            TestUtl.AssertEquals(11, sary.Count);
            TestUtl.AssertEquals("FOOhogepiyo", ToString(sary));

            // middle
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(4, "FOO".ToCharArray());
            TestUtl.AssertEquals(11, sary.Count);
            TestUtl.AssertEquals("hogeFOOpiyo", ToString(sary));

            // end
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(8, "FOO".ToCharArray());
            TestUtl.AssertEquals(11, sary.Count);
            TestUtl.AssertEquals("hogepiyoFOO", ToString(sary));

            // after end
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            try{ sary.Insert(9, "FOO".ToCharArray()); Console.WriteLine("### INSA_AE ###"); }
            catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }
        }
コード例 #5
0
        public void Insert_One()
        {
            const string      InitData = "hogepiyo";
            SplitArray <char> sary     = new SplitArray <char>(5, 8);

            // control-char
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(3, '\0');
            Assert.AreEqual("hog\0epiyo", ToString(sary));

            // before head
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            MyAssert.Throws <AssertException>(delegate {
                sary.Insert(-1, 'G');
            });

            // head
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(0, 'G');
            Assert.AreEqual(9, sary.Count);
            Assert.AreEqual("Ghogepiyo", ToString(sary));

            // middle
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(4, 'G');
            Assert.AreEqual(9, sary.Count);
            Assert.AreEqual("hogeGpiyo", ToString(sary));

            // end
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(8, 'G');
            Assert.AreEqual(9, sary.Count);
            Assert.AreEqual("hogepiyoG", ToString(sary));

            // after end
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            MyAssert.Throws <AssertException>(delegate {
                sary.Insert(9, 'G');
            });
        }
コード例 #6
0
        static void Test_Insert_One()
        {
            const string      InitData = "hogepiyo";
            SplitArray <char> sary     = new SplitArray <char>(5, 8);

            // control-char
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(3, '\0');
            TestUtl.AssertEquals("hog\0epiyo", ToString(sary));

            // before head
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            try{ sary.Insert(-1, 'G'); Debug.Fail("### INSO_BH ###"); }
            catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }

            // head
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(0, 'G');
            TestUtl.AssertEquals(9, sary.Count);
            TestUtl.AssertEquals("Ghogepiyo", ToString(sary));

            // middle
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(4, 'G');
            TestUtl.AssertEquals(9, sary.Count);
            TestUtl.AssertEquals("hogeGpiyo", ToString(sary));

            // end
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            sary.Insert(8, 'G');
            TestUtl.AssertEquals(9, sary.Count);
            TestUtl.AssertEquals("hogepiyoG", ToString(sary));

            // after end
            sary.Clear();
            sary.Add(InitData.ToCharArray());
            try{ sary.Insert(9, 'G'); Console.WriteLine("### INSO_AE ###"); }
            catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }
        }
コード例 #7
0
 static void MoveGap(SplitArray <char> sary, int index)
 {
     sary.Insert(index, new char[] {});
 }