From: Jim Procter Date: Fri, 18 Sep 2015 15:27:33 +0000 (+0100) Subject: JAL-1270 JAL-1889 move the stevesoft test back into stevesoft package. It tests code... X-Git-Tag: Release_2_9_0b2~11^2~1 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=389cdd1c306da7425743aaa2345bc3c942e92e41;p=jalview.git JAL-1270 JAL-1889 move the stevesoft test back into stevesoft package. It tests code note required for Jalview. --- diff --git a/src/com/stevesoft/pat/RegexWriter.java b/src/com/stevesoft/pat/RegexWriter.java index 61bcdf6..57e2170 100755 --- a/src/com/stevesoft/pat/RegexWriter.java +++ b/src/com/stevesoft/pat/RegexWriter.java @@ -8,6 +8,7 @@ package com.stevesoft.pat; import java.io.IOException; +import java.io.StringWriter; import java.io.Writer; import com.stevesoft.pat.wrap.WriterWrap; @@ -231,4 +232,51 @@ public class RegexWriter extends Writer { 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!!!"); + } } diff --git a/test/com/stevesoft/pat/RegexWriterTest.java b/test/com/stevesoft/pat/RegexWriterTest.java deleted file mode 100644 index 4c06f66..0000000 --- a/test/com/stevesoft/pat/RegexWriterTest.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * 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 . - * 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" } }; - } -}