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)); }
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)); }
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()); }); }
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); } }
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'); }); }
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); } }
static void MoveGap(SplitArray <char> sary, int index) { sary.Insert(index, new char[] {}); }