You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ki...@apache.org on 2015/02/06 00:37:00 UTC
[text] Fix Javadocs and include initial tests
Repository: commons-text
Updated Branches:
refs/heads/myers-algo a7e88eef1 -> 38f79f914
Fix Javadocs and include initial tests
Project: http://git-wip-us.apache.org/repos/asf/commons-text/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-text/commit/38f79f91
Tree: http://git-wip-us.apache.org/repos/asf/commons-text/tree/38f79f91
Diff: http://git-wip-us.apache.org/repos/asf/commons-text/diff/38f79f91
Branch: refs/heads/myers-algo
Commit: 38f79f914c73d902ad720d3bb7e46cad5063b1be
Parents: a7e88ee
Author: Bruno P. Kinoshita <ki...@apache.org>
Authored: Thu Feb 5 21:36:49 2015 -0200
Committer: Bruno P. Kinoshita <ki...@apache.org>
Committed: Thu Feb 5 21:36:49 2015 -0200
----------------------------------------------------------------------
.../apache/commons/text/diff/EditCommand.java | 4 +
.../commons/text/diff/StringsComparator.java | 44 +------
.../text/diff/StringsComparatorTest.java | 121 +++++++++++++++++++
3 files changed, 126 insertions(+), 43 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-text/blob/38f79f91/src/main/java/org/apache/commons/text/diff/EditCommand.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/text/diff/EditCommand.java b/src/main/java/org/apache/commons/text/diff/EditCommand.java
index 627db4d..972cebb 100644
--- a/src/main/java/org/apache/commons/text/diff/EditCommand.java
+++ b/src/main/java/org/apache/commons/text/diff/EditCommand.java
@@ -41,6 +41,10 @@ package org.apache.commons.text.diff;
* and the <code>equals</code> method is specialized.
* </p>
*
+ * <p>
+ * This code has been adapted from Apache Commons Collections 4.0.
+ * </p>
+ *
* @see StringsComparator
* @see EditScript
*
http://git-wip-us.apache.org/repos/asf/commons-text/blob/38f79f91/src/main/java/org/apache/commons/text/diff/StringsComparator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/text/diff/StringsComparator.java b/src/main/java/org/apache/commons/text/diff/StringsComparator.java
index c2fbfab..b2940fa 100644
--- a/src/main/java/org/apache/commons/text/diff/StringsComparator.java
+++ b/src/main/java/org/apache/commons/text/diff/StringsComparator.java
@@ -42,7 +42,7 @@ package org.apache.commons.text.diff;
* the second one.
*
* <p>
- * This class has been adapted from the commons-collections implementation.
+ * This code has been adapted from Apache Commons Collections 4.0.
* </p>
*
* @see EditScript
@@ -325,46 +325,4 @@ public class StringsComparator {
}
}
- public static void main(String[] args) {
- StringsComparator sc = new StringsComparator("O Bruno eh um bom rapaz. Ele eh do Brasil.", "O Bruno foi um bom rapaz. Ele eh do Brasil .");
- EditScript<Character> es = sc.getScript();
- es.visit(new CommandVisitor<Character>() {
-
- boolean nlAdd = true;
- boolean nlRemove = true;
-
- @Override
- public void visitInsertCommand(Character object) {
- if (nlAdd) {
- System.out.println();
- System.out.print("> ");
- nlAdd = false;
- }
- System.out.print(object);
- }
-
- @Override
- public void visitKeepCommand(Character object) {
- if (!nlAdd) {
- nlAdd = true;
- }
- if (!nlRemove) {
- nlRemove = true;
- System.out.println();
- }
- System.out.print(object);
- }
-
- @Override
- public void visitDeleteCommand(Character object) {
- if (nlRemove) {
- System.out.println();
- System.out.print("< ");
- nlRemove = false;
- }
- System.out.print(object);
- }
- });
- }
-
}
http://git-wip-us.apache.org/repos/asf/commons-text/blob/38f79f91/src/test/java/org/apache/commons/text/diff/StringsComparatorTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/text/diff/StringsComparatorTest.java b/src/test/java/org/apache/commons/text/diff/StringsComparatorTest.java
new file mode 100644
index 0000000..a988581
--- /dev/null
+++ b/src/test/java/org/apache/commons/text/diff/StringsComparatorTest.java
@@ -0,0 +1,121 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.text.diff;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class StringsComparatorTest {
+
+ private List<String> before;
+ private List<String> after;
+ private int[] length;
+
+ @Test
+ public void testLength() {
+ for (int i = 0; i < before.size(); ++i) {
+ final StringsComparator comparator = new StringsComparator(before.get(i), after.get(i));
+ Assert.assertEquals(length[i], comparator.getScript().getModifications());
+ }
+ }
+
+ @Test
+ public void testExecution() {
+ for (int i = 0; i < before.size(); ++i) {
+ final ExecutionVisitor<Character> ev = new ExecutionVisitor<Character>();
+ new StringsComparator(before.get(i), after.get(i)).getScript().visit(ev);
+ Assert.assertEquals(after.get(i), ev.getString());
+ }
+ }
+
+ private class ExecutionVisitor<T> implements CommandVisitor<T> {
+
+ private StringBuilder v;
+
+ public ExecutionVisitor() {
+ v = new StringBuilder();
+ }
+
+ public void visitInsertCommand(final T object) {
+ v.append(object);
+ }
+
+ public void visitKeepCommand(final T object) {
+ v.append(object);
+ }
+
+ public void visitDeleteCommand(final T object) {
+ }
+
+ public String getString() {
+ return v.toString();
+ }
+
+ }
+
+ @Before
+ public void setUp() {
+
+ before = Arrays.asList(
+ "bottle",
+ "nematode knowledge",
+ "",
+ "aa",
+ "prefixed string",
+ "ABCABBA",
+ "glop glop",
+ "coq",
+ "spider-man");
+
+ after = Arrays.asList(
+ "noodle",
+ "empty bottle",
+ "",
+ "C",
+ "prefix",
+ "CBABAC",
+ "pas glop pas glop",
+ "ane",
+ "klingon");
+
+ length = new int[] {
+ 6,
+ 16,
+ 0,
+ 3,
+ 9,
+ 5,
+ 8,
+ 6,
+ 13
+ };
+
+ }
+
+ @After
+ public void tearDown() {
+ before = null;
+ after = null;
+ length = null;
+ }
+
+}