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); } } }
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); }); } }