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

            // replace position
            {
                // before head
                sary.Clear();
                sary.Add(InitData.ToCharArray());
                try{ sary.Replace(-1, "000".ToCharArray(), 0, 2); Console.WriteLine("### REP_P_BH ###"); }
                catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }

                // head
                sary.Clear();
                sary.Add(InitData.ToCharArray());
                sary.Replace(0, "000".ToCharArray(), 0, 2);
                TestUtl.AssertEquals("00gepiyo", ToString(sary));

                // middle
                sary.Clear();
                sary.Add(InitData.ToCharArray());
                sary.Replace(4, "000".ToCharArray(), 0, 2);
                TestUtl.AssertEquals("hoge00yo", ToString(sary));

                // end
                sary.Clear();
                sary.Add(InitData.ToCharArray());
                sary.Replace(6, "000".ToCharArray(), 0, 2);
                TestUtl.AssertEquals("hogepi00", ToString(sary));

                // after end
                sary.Clear();
                sary.Add(InitData.ToCharArray());
                try{ sary.Replace(7, "000".ToCharArray(), 0, 2); Console.WriteLine("### REP_P_AE1 ##"); }
                catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }
                try{ sary.Replace(8, "000".ToCharArray(), 0, 2); Console.WriteLine("### REP_P_AE2 ###"); }
                catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }
            }

            // value array
            {
                // giving null
                try{ sary.Replace(0, null, 0, 1); Console.WriteLine("### REP_A_NULL ###"); }
                catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }

                // empty array
                sary.Replace(0, "".ToCharArray(), 0, 0);
                TestUtl.AssertEquals("hogepiyo", ToString(sary));

                // empty range
                sary.Replace(0, "000".ToCharArray(), 0, 0);
                TestUtl.AssertEquals("hogepiyo", ToString(sary));

                // invalid range (reversed)
                try{ sary.Replace(0, "000".ToCharArray(), 1, 0); Console.WriteLine("### REP_A_REV ###"); }
                catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }

                // invalid range (before head)
                try{ sary.Replace(0, "000".ToCharArray(), -1, 0); Console.WriteLine("### REP_A_BH ###"); }
                catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }

                // invalid range (after head)
                try{ sary.Replace(0, "000".ToCharArray(), 3, 4); Console.WriteLine("### REPEP_A_AE ###"); }
                catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); }
            }
        }
コード例 #2
0
        public void Replace()
        {
            const string      InitData = "hogepiyo";
            SplitArray <char> sary     = new SplitArray <char>(5, 8);

            // replace position
            {
                // before head
                sary.Clear();
                sary.Add(InitData.ToCharArray());
                MyAssert.Throws <AssertException>(delegate {
                    sary.Replace(-1, "000".ToCharArray(), 0, 2);
                });

                // head
                sary.Clear();
                sary.Add(InitData.ToCharArray());
                sary.Replace(0, "000".ToCharArray(), 0, 2);
                Assert.AreEqual("00gepiyo", ToString(sary));

                // middle
                sary.Clear();
                sary.Add(InitData.ToCharArray());
                sary.Replace(4, "000".ToCharArray(), 0, 2);
                Assert.AreEqual("hoge00yo", ToString(sary));

                // end
                sary.Clear();
                sary.Add(InitData.ToCharArray());
                sary.Replace(6, "000".ToCharArray(), 0, 2);
                Assert.AreEqual("hogepi00", ToString(sary));

                // after end
                sary.Clear();
                sary.Add(InitData.ToCharArray());
                MyAssert.Throws <AssertException>(delegate {
                    sary.Replace(7, "000".ToCharArray(), 0, 2);
                });
                MyAssert.Throws <AssertException>(delegate {
                    sary.Replace(8, "000".ToCharArray(), 0, 2);
                });
            }

            // value array
            {
                // giving null
                MyAssert.Throws <AssertException>(delegate {
                    sary.Replace(0, null, 0, 1);
                });

                // empty array
                sary.Replace(0, "".ToCharArray(), 0, 0);
                Assert.AreEqual("hogepiyo", ToString(sary));

                // empty range
                sary.Replace(0, "000".ToCharArray(), 0, 0);
                Assert.AreEqual("hogepiyo", ToString(sary));

                // invalid range (reversed)
                MyAssert.Throws <AssertException>(delegate {
                    sary.Replace(0, "000".ToCharArray(), 1, 0);
                });

                // invalid range (before head)
                MyAssert.Throws <AssertException>(delegate {
                    sary.Replace(0, "000".ToCharArray(), -1, 0);
                });

                // invalid range (after head)
                MyAssert.Throws <AssertException>(delegate {
                    sary.Replace(0, "000".ToCharArray(), 3, 4);
                });
            }
        }