package com.stevesoft.pat;
import java.io.IOException;
+import java.io.StringWriter;
import java.io.Writer;
import com.stevesoft.pat.wrap.WriterWrap;
{
bufferSize = i;
}
+
+ static void test(String re, String inp, int n) throws Exception
+ {
+ StringWriter sw = new StringWriter();
+ Regex rex = Regex.perlCode(re);
+ String res1 = rex.replaceAll(inp);
+ RegexWriter rw = new RegexWriter(rex, sw);
+ for (int i = 0; i < inp.length(); i++)
+ {
+ rw.write(inp.charAt(i));
+ }
+ rw.close();
+ String res2 = sw.toString();
+ if (!res1.equals(res2))
+ {
+ System.out.println("nmax=" + n);
+ System.out.println("re=" + re);
+ System.out.println("inp=" + inp);
+ System.out.println("res1=" + res1);
+ System.out.println("res2=" + res2);
+ System.exit(255);
+ }
+ }
+
+ public static void main(String[] args) throws Exception
+ {
+ for (int n = 1; n <= 1; n++)
+ {
+ test("s/x/y/", "-----x123456789", n);
+ test("s/x/y/", "x123456789", n);
+ test("s/x/y/", "-----x", n);
+ test("s/x.*?x/y/", ".xx..x..x...x...x....x....x", n);
+ test("s/x.*x/[$&]/", "--x........x--xx", n);
+ test("s/x.*x/[$&]/", "--x........x------", n);
+ test("s/.$/a/m", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbbbbbbbbbbbb", n);
+ test("s/.$/a/", "123", n);
+ test("s/.$/a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb", n);
+ test("s/^./a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb", n);
+ test("s/$/a/", "bbb", n);
+ test("s/^/a/", "bbb", n);
+ test("s/^/a/", "", n);
+ test("s{.*}{N}", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", n);
+ test("s/.{0,7}/y/", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", n);
+ test("s/x/$&/", "xxx", n);
+ }
+ System.out.println("Success!!!");
+ }
}
+++ /dev/null
-/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
- */
-package com.stevesoft.pat;
-
-import static org.testng.AssertJUnit.assertEquals;
-
-import java.io.IOException;
-import java.io.StringWriter;
-
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-/**
- * Test class refactored from RegexWriter main method
- */
-public class RegexWriterTest
-{
-
- /**
- * Asserts that the result of performing 'replaceAll' on the input using the
- * regular expression is the same as the output of a RegexWriter, constructed
- * from the regular expression, writing out each character of the input
- * string.
- *
- * @param re
- * a regular expression
- * @param inp
- * an input string
- * @throws Exception
- */
-
- @Test(groups = { "Functional" }, dataProvider = "testWriteParam")
- void test(String re, String inp) throws IOException
- {
- StringWriter sw = new StringWriter();
- Regex rex = Regex.perlCode(re);
- String res1 = rex.replaceAll(inp);
- RegexWriter rw = new RegexWriter(rex, sw);
- for (int i = 0; i < inp.length(); i++)
- {
- rw.write(inp.charAt(i));
- }
- rw.close();
- String res2 = sw.toString();
- if (!res1.equals(res2))
- {
- System.out.println("re=" + re);
- System.out.println("inp=" + inp);
- System.out.println("res1=" + res1);
- System.out.println("res2=" + res2);
- assertEquals(res1, res2);
- }
- }
-
- // @Test(groups ={ "Functional" })
- // public void testWrite() throws IOException
- // {
- // for (int n = 1; n <= 1; n++)
- // {
- // test("s/x/y/", "-----x123456789");
- // test("s/x/y/", "x123456789");
- // test("s/x/y/", "-----x");
- // test("s/x.*?x/y/", ".xx..x..x...x...x....x....x");
- // test("s/x.*x/[$&]/", "--x........x--xx");
- // test("s/x.*x/[$&]/", "--x........x------");
- // test("s/.$/a/m", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbbbbbbbbbbbb");
- // test("s/.$/a/", "123");
- // test("s/.$/a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb");
- // test("s/^./a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb");
- // test("s/$/a/", "bbb");
- // test("s/^/a/", "bbb");
- // test("s/^/a/", "");
- // test("s{.*}{N}", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
- // test("s/.{0,7}/y/", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
- // test("s/x/$&/", "xxx");
- // }
- // }
-
- @DataProvider(name = "testWriteParam")
- public Object[][] regexTestParams()
- {
- return new Object[][] { { "s/x/y/", "-----x123456789" },
- { "s/x/y/", "x123456789" }, { "s/x/y/", "-----x" },
- { "s/x.*?x/y/", ".xx..x..x...x...x....x....x" },
- { "s/x.*x/[$&]/", "--x........x--xx" },
- { "s/x.*x/[$&]/", "--x........x------" },
- { "s/.$/a/m", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbbbbbbbbbbbb" },
- { "s/.$/a/", "123" },
- { "s/.$/a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb" },
- { "s/^./a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb" },
- { "s/$/a/", "bbb" }, { "s/^/a/", "bbb" }, { "s/^/a/", "" },
- { "s{.*}{N}", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" },
- { "s/.{0,7}/y/", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" },
- { "s/x/$&/", "xxx" } };
- }
-}