Exemplo n.º 1
0
        public void testAddTwo()
        {
            Edit e1 = new Edit(1, 2, 1, 1);
            Edit e2 = new Edit(8, 8, 8, 12);
            EditList l = new EditList();
            l.Add(e1);
            l.Add(e2);
            Assert.AreEqual(2, l.size());
            Assert.AreSame(e1, l.get(0));
            Assert.AreSame(e2, l.get(1));

            IEnumerator i = l.GetEnumerator();
            i.Reset();
            i.MoveNext();
            Assert.AreSame(e1, i.Current);
            i.MoveNext();
            Assert.AreSame(e2, i.Current);

            Assert.IsTrue(l.Equals(l));
            Assert.IsFalse(l.Equals(new EditList()));

            EditList l2 = new EditList();
            l2.Add(e1);
            l2.Add(e2);
            Assert.IsTrue(l.Equals(l2));
            Assert.IsTrue(l2.Equals(l));
            Assert.AreEqual(l.GetHashCode(), l2.GetHashCode());
        }
Exemplo n.º 2
0
	    public void testAddOne()
        {
		    Edit e = new Edit(1, 2, 1, 1);
		    EditList l = new EditList();
		    l.Add(e);
		    Assert.AreEqual(1, l.size());
		    Assert.IsFalse(l.isEmpty());
		    Assert.AreSame(e, l.get(0));
            IEnumerator i = l.GetEnumerator();
            i.Reset();
            i.MoveNext();
		    Assert.AreSame(e, i.Current);

		    Assert.IsTrue(l.Equals(l));
		    Assert.IsFalse(l.Equals(new EditList()));

		    EditList l2 = new EditList();
		    l2.Add(e);
		    Assert.IsTrue(l.Equals(l2));
		    Assert.IsTrue(l2.Equals(l));
		    Assert.AreEqual(l.GetHashCode(), l2.GetHashCode());
	    }
Exemplo n.º 3
0
	    public void testRemove()
        {
		    Edit e1 = new Edit(1, 2, 1, 1);
		    Edit e2 = new Edit(8, 8, 8, 12);
		    EditList l = new EditList();
		    l.Add(e1);
		    l.Add(e2);
		    l.Remove(e1);
		    Assert.AreEqual(1, l.size());
		    Assert.AreSame(e2, l.get(0));
	    }
Exemplo n.º 4
0
	    public void testSet()
        {
		    Edit e1 = new Edit(1, 2, 1, 1);
		    Edit e2 = new Edit(3, 4, 3, 3);
		    EditList l = new EditList();
		    l.Add(e1);
		    Assert.AreSame(e1, l.get(0));
		    Assert.AreSame(e1, l.set(0, e2));
		    Assert.AreSame(e2, l.get(0));
	    }
Exemplo n.º 5
0
        /// <summary>
        /// Returns a list describing the content edits performed within the hunk.
        /// </summary>
        /// <returns></returns>
        public EditList ToEditList()
        {
            var r = new EditList();
            byte[] buf = _file.Buffer;
            int c = RawParseUtils.nextLF(buf, _startOffset);
            int oLine = _oldImage.StartLine;
            int nLine = NewStartLine;
            Edit inEdit = null;

            for (; c < EndOffset; c = RawParseUtils.nextLF(buf, c))
            {
                bool breakScan;

                switch (buf[c])
                {
                    case (byte)' ':
                    case (byte)'\n':
                        inEdit = null;
                        oLine++;
                        nLine++;
                        continue;

                    case (byte)'-':
                        if (inEdit == null)
                        {
                            inEdit = new Edit(oLine - 1, nLine - 1);
                            r.Add(inEdit);
                        }
                        oLine++;
                        inEdit.ExtendA();
                        continue;

                    case (byte)'+':
                        if (inEdit == null)
                        {
                            inEdit = new Edit(oLine - 1, nLine - 1);
                            r.Add(inEdit);
                        }
                        nLine++;
                        inEdit.ExtendB();
                        continue;

                    case (byte)'\\': // Matches "\ No newline at end of file"
                        continue;

                    default:
                        breakScan = true;
                        break;
                }

                if (breakScan)
                {
                    break;
                }
            }

            return r;
        }
Exemplo n.º 6
0
	    /** @return a list describing the content edits performed within the hunk. */
	    public EditList toEditList()
        {
		    EditList r = new EditList();
		    byte[] buf = file.buf;
		    int c = RawParseUtils.nextLF(buf, startOffset);
		    int oLine = old.startLine;
		    int nLine = newStartLine;
		    Edit inEdit = null;

            bool break_scan = false;
		    for (; c < endOffset; c = RawParseUtils.nextLF(buf, c)) {
			    switch (buf[c]) {
			    case (byte)' ':
			    case (byte)'\n':
				    inEdit = null;
				    oLine++;
				    nLine++;
				    continue;

			    case (byte)'-':
				    if (inEdit == null) {
					    inEdit = new Edit(oLine - 1, nLine - 1);
					    r.Add(inEdit);
				    }
				    oLine++;
				    inEdit.extendA();
				    continue;

			    case (byte)'+':
				    if (inEdit == null) {
					    inEdit = new Edit(oLine - 1, nLine - 1);
					    r.Add(inEdit);
				    }
				    nLine++;
				    inEdit.extendB();
				    continue;

			    case (byte)'\\': // Matches "\ No newline at end of file"
				    continue;

			    default:
				    break_scan = true;
                    break;
			    }
                if (break_scan)
                    break;
		    }
		    return r;
	    }