Add some string function tests
Including a test for Apache TEXT-149 behavior change https://github.com/apache/commons-text/pull/119 Add some more string function tests
This commit is contained in:
parent
b5aea3b780
commit
441c069bc5
@ -48,9 +48,9 @@ public class ToStringTests extends RefineTest {
|
|||||||
public void testToString() throws CalendarParserException {
|
public void testToString() throws CalendarParserException {
|
||||||
assertTrue(invoke("toString") instanceof EvalError);
|
assertTrue(invoke("toString") instanceof EvalError);
|
||||||
assertEquals(invoke("toString", (Object) null), "");
|
assertEquals(invoke("toString", (Object) null), "");
|
||||||
assertEquals(invoke("toString", Long.valueOf(100)),"100");
|
assertEquals(invoke("toString", Long.valueOf(100)), "100");
|
||||||
assertEquals(invoke("toString", Double.valueOf(100.0)),"100.0");
|
assertEquals(invoke("toString", Double.valueOf(100.0)), "100.0");
|
||||||
assertEquals(invoke("toString", Double.valueOf(100.0),"%.0f"),"100");
|
assertEquals(invoke("toString", Double.valueOf(100.0),"%.0f"), "100");
|
||||||
|
|
||||||
String inputDate = "2013-06-01";
|
String inputDate = "2013-06-01";
|
||||||
assertEquals(invoke("toString", CalendarParser.parseAsOffsetDateTime(inputDate)), "2013-06-01T00:00:00Z");
|
assertEquals(invoke("toString", CalendarParser.parseAsOffsetDateTime(inputDate)), "2013-06-01T00:00:00Z");
|
||||||
@ -61,8 +61,8 @@ public class ToStringTests extends RefineTest {
|
|||||||
String inputDateTime = "2013-06-01 13:12:11";
|
String inputDateTime = "2013-06-01 13:12:11";
|
||||||
assertEquals(invoke("toString", CalendarParser.parseAsOffsetDateTime(inputDateTime)), "2013-06-01T13:12:11Z");
|
assertEquals(invoke("toString", CalendarParser.parseAsOffsetDateTime(inputDateTime)), "2013-06-01T13:12:11Z");
|
||||||
assertEquals(invoke("toString", CalendarParser.parseAsOffsetDateTime(inputDateTime), "yyyy-MM-dd"), "2013-06-01");
|
assertEquals(invoke("toString", CalendarParser.parseAsOffsetDateTime(inputDateTime), "yyyy-MM-dd"), "2013-06-01");
|
||||||
assertEquals(invoke("toString", CalendarParser.parseAsOffsetDateTime(inputDateTime), "yyyy-MM-dd hh:mm:ss"),"2013-06-01 01:12:11");
|
assertEquals(invoke("toString", CalendarParser.parseAsOffsetDateTime(inputDateTime), "yyyy-MM-dd hh:mm:ss"), "2013-06-01 01:12:11");
|
||||||
assertEquals(invoke("toString", CalendarParser.parseAsOffsetDateTime(inputDateTime), "yyyy-MM-dd HH:mm:ss"),"2013-06-01 13:12:11");
|
assertEquals(invoke("toString", CalendarParser.parseAsOffsetDateTime(inputDateTime), "yyyy-MM-dd HH:mm:ss"), "2013-06-01 13:12:11");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -26,15 +26,29 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package com.google.refine.expr.functions.strings;
|
package com.google.refine.expr.functions.strings;
|
||||||
|
|
||||||
|
import static org.testng.Assert.assertEquals;
|
||||||
|
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import com.google.refine.RefineTest;
|
||||||
import com.google.refine.util.TestUtils;
|
import com.google.refine.util.TestUtils;
|
||||||
|
|
||||||
public class ChompTests {
|
public class ChompTests extends RefineTest {
|
||||||
@Test
|
@Test
|
||||||
public void serializeChomp() {
|
public void serializeChomp() {
|
||||||
String json = "{\"description\":\"Removes separator from the end of str if it's there, otherwise leave it alone.\",\"params\":\"string str, string separator\",\"returns\":\"string\"}";
|
String json = "{\"description\":\"Removes separator from the end of str if it's there, otherwise leave it alone.\",\"params\":\"string str, string separator\",\"returns\":\"string\"}";
|
||||||
TestUtils.isSerializedTo(new Chomp(), json);
|
TestUtils.isSerializedTo(new Chomp(), json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testChomp() {
|
||||||
|
// FIXME: These return null instead of an EvalError
|
||||||
|
// assertTrue(invoke("chomp") instanceof EvalError);
|
||||||
|
// assertTrue(invoke("chomp", "") instanceof EvalError);
|
||||||
|
// assertTrue(invoke("chomp", 1, 1) instanceof EvalError);
|
||||||
|
assertEquals(invoke("chomp", "test,", ","), "test");
|
||||||
|
assertEquals(invoke("chomp", "test,", ":"), "test,");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,15 +26,25 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package com.google.refine.expr.functions.strings;
|
package com.google.refine.expr.functions.strings;
|
||||||
|
|
||||||
|
import static org.testng.Assert.assertFalse;
|
||||||
|
import static org.testng.Assert.assertTrue;
|
||||||
|
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import com.google.refine.RefineTest;
|
||||||
import com.google.refine.util.TestUtils;
|
import com.google.refine.util.TestUtils;
|
||||||
|
|
||||||
public class EndsWithTests {
|
public class EndsWithTests extends RefineTest {
|
||||||
@Test
|
@Test
|
||||||
public void serializeEndsWith() {
|
public void serializeEndsWith() {
|
||||||
String json = "{\"description\":\"Returns whether s ends with sub\",\"params\":\"string s, string sub\",\"returns\":\"boolean\"}";
|
String json = "{\"description\":\"Returns whether s ends with sub\",\"params\":\"string s, string sub\",\"returns\":\"boolean\"}";
|
||||||
TestUtils.isSerializedTo(new EndsWith(), json);
|
TestUtils.isSerializedTo(new EndsWith(), json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testStartsWith() {
|
||||||
|
assertTrue((Boolean) invoke("endsWith", "testString", "ing"));
|
||||||
|
assertFalse((Boolean) invoke("startsWith", "testString", "banana"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,28 +43,32 @@ public class EscapeTests extends RefineTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testEscape() {
|
public void testEscape() {
|
||||||
assertNull(invoke("escape"));
|
assertNull(invoke("escape"));
|
||||||
assertEquals(invoke("escape",null,"xml"),"");
|
assertEquals(invoke("escape",null,"xml"), "");
|
||||||
assertEquals(invoke("escape", "mystring", "html"),"mystring");
|
assertEquals(invoke("escape", "mystring", "html"), "mystring");
|
||||||
assertEquals(invoke("escape", "mystring", "xml"),"mystring");
|
assertEquals(invoke("escape", "mystring", "xml"), "mystring");
|
||||||
assertEquals(invoke("escape", "mystring", "csv"),"mystring");
|
assertEquals(invoke("escape", "mystring", "csv"), "mystring");
|
||||||
assertEquals(invoke("escape", "mystring", "url"),"mystring");
|
assertEquals(invoke("escape", "mystring", "url"), "mystring");
|
||||||
assertEquals(invoke("escape", "mystring", "javascript"),"mystring");
|
assertEquals(invoke("escape", "mystring", "javascript"), "mystring");
|
||||||
assertEquals(invoke("escape", 1, "html"),"1");
|
assertEquals(invoke("escape", 1, "html") ,"1");
|
||||||
assertEquals(invoke("escape", 1, "xml"),"1");
|
assertEquals(invoke("escape", 1, "xml"), "1");
|
||||||
assertEquals(invoke("escape", 1, "csv"),"1");
|
assertEquals(invoke("escape", 1, "csv"), "1");
|
||||||
assertEquals(invoke("escape", 1, "url"),"1");
|
assertEquals(invoke("escape", 1, "url"), "1");
|
||||||
assertEquals(invoke("escape", 1, "javascript"),"1");
|
assertEquals(invoke("escape", 1, "javascript"), "1");
|
||||||
assertEquals(invoke("escape", Long.parseLong("1"), "html"),"1");
|
assertEquals(invoke("escape", Long.parseLong("1"), "html"), "1");
|
||||||
assertEquals(invoke("escape", Long.parseLong("1"), "xml"),"1");
|
assertEquals(invoke("escape", Long.parseLong("1"), "xml"), "1");
|
||||||
assertEquals(invoke("escape", Long.parseLong("1"), "csv"),"1");
|
assertEquals(invoke("escape", Long.parseLong("1"), "csv"), "1");
|
||||||
assertEquals(invoke("escape", Long.parseLong("1"), "url"),"1");
|
assertEquals(invoke("escape", Long.parseLong("1"), "url"), "1");
|
||||||
assertEquals(invoke("escape", Long.parseLong("1"), "javascript"),"1");
|
assertEquals(invoke("escape", Long.parseLong("1"), "javascript"), "1");
|
||||||
assertEquals(invoke("escape", Double.parseDouble("1.23"), "html"),"1.23");
|
assertEquals(invoke("escape", Double.parseDouble("1.23"), "html"), "1.23");
|
||||||
assertEquals(invoke("escape", Double.parseDouble("1.23"), "xml"),"1.23");
|
assertEquals(invoke("escape", Double.parseDouble("1.23"), "xml"), "1.23");
|
||||||
assertEquals(invoke("escape", Double.parseDouble("1.23"), "csv"),"1.23");
|
assertEquals(invoke("escape", Double.parseDouble("1.23"), "csv"), "1.23");
|
||||||
assertEquals(invoke("escape", Double.parseDouble("1.23"), "url"),"1.23");
|
assertEquals(invoke("escape", Double.parseDouble("1.23"), "url"), "1.23");
|
||||||
assertEquals(invoke("escape", Double.parseDouble("1.23"), "javascript"),"1.23");
|
assertEquals(invoke("escape", Double.parseDouble("1.23"), "javascript"), "1.23");
|
||||||
}
|
|
||||||
|
assertEquals("\",\"", invoke("escape", ",", "csv")); // commas get quoted
|
||||||
|
assertEquals("\"\n\"", invoke("escape", "\n", "csv")); // newlines get quoted
|
||||||
|
assertEquals("\"\"\"\"", invoke("escape", "\"", "csv")); // quotes get doubled
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,15 +26,34 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package com.google.refine.expr.functions.strings;
|
package com.google.refine.expr.functions.strings;
|
||||||
|
|
||||||
|
import static org.testng.Assert.assertEquals;
|
||||||
|
import static org.testng.Assert.assertTrue;
|
||||||
|
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import com.google.refine.RefineTest;
|
||||||
|
import com.google.refine.expr.EvalError;
|
||||||
import com.google.refine.util.TestUtils;
|
import com.google.refine.util.TestUtils;
|
||||||
|
|
||||||
public class ReplaceTests {
|
public class ReplaceTests extends RefineTest {
|
||||||
@Test
|
@Test
|
||||||
public void serializeReplace() {
|
public void serializeReplace() {
|
||||||
String json = "{\"description\":\"Returns the string obtained by replacing f with r in s\",\"params\":\"string s, string or regex f, string r\",\"returns\":\"string\"}";
|
String json = "{\"description\":\"Returns the string obtained by replacing f with r in s\",\"params\":\"string s, string or regex f, string r\",\"returns\":\"string\"}";
|
||||||
TestUtils.isSerializedTo(new Replace(), json);
|
TestUtils.isSerializedTo(new Replace(), json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testReplace() {
|
||||||
|
assertTrue(invoke("replace") instanceof EvalError);
|
||||||
|
assertTrue(invoke("replace", "test") instanceof EvalError);
|
||||||
|
assertTrue(invoke("replace", "test", "test") instanceof EvalError);
|
||||||
|
assertTrue(invoke("replace", "test", "test", null) instanceof EvalError);
|
||||||
|
assertEquals(invoke("replace", "", "ripe", "green"), "");
|
||||||
|
assertEquals(invoke("replace", "", "", ""), "");
|
||||||
|
assertEquals(invoke("replace", "ripe banana", "ripe", "green"), "green banana");
|
||||||
|
assertEquals(invoke("replace", "ripe banana", "ripe", ""), " banana");
|
||||||
|
assertEquals(invoke("replace", "ripe banana", "wrong", "green"), "ripe banana");
|
||||||
|
assertEquals(invoke("replace", "ripe ripe banana", "ripe", "green"), "green green banana");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,15 +26,26 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package com.google.refine.expr.functions.strings;
|
package com.google.refine.expr.functions.strings;
|
||||||
|
|
||||||
|
import static org.testng.Assert.assertEquals;
|
||||||
|
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import com.google.refine.RefineTest;
|
||||||
import com.google.refine.util.TestUtils;
|
import com.google.refine.util.TestUtils;
|
||||||
|
|
||||||
public class SplitTests {
|
public class SplitTests extends RefineTest {
|
||||||
@Test
|
@Test
|
||||||
public void serializeSplit() {
|
public void serializeSplit() {
|
||||||
String json = "{\"description\":\"Returns the array of strings obtained by splitting s with separator sep. If preserveAllTokens is true, then empty segments are preserved.\",\"params\":\"string s, string or regex sep, optional boolean preserveAllTokens\",\"returns\":\"array\"}";
|
String json = "{\"description\":\"Returns the array of strings obtained by splitting s with separator sep. If preserveAllTokens is true, then empty segments are preserved.\",\"params\":\"string s, string or regex sep, optional boolean preserveAllTokens\",\"returns\":\"array\"}";
|
||||||
TestUtils.isSerializedTo(new Split(), json);
|
TestUtils.isSerializedTo(new Split(), json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSplit() {
|
||||||
|
assertEquals(invoke("split", "a,,b,c,d", ","), new String[] {"a", "b", "c", "d"});
|
||||||
|
assertEquals(invoke("split", "a,,b,c,d", ",", true), new String[] {"a", "", "b", "c", "d"});
|
||||||
|
assertEquals(invoke("split", "", ","), new String[] {});
|
||||||
|
assertEquals(invoke("split", ",,,", ","), new String[] {""}); // TODO: Should this return an empty array?
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,15 +26,25 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package com.google.refine.expr.functions.strings;
|
package com.google.refine.expr.functions.strings;
|
||||||
|
|
||||||
|
import static org.testng.Assert.assertFalse;
|
||||||
|
import static org.testng.Assert.assertTrue;
|
||||||
|
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import com.google.refine.RefineTest;
|
||||||
import com.google.refine.util.TestUtils;
|
import com.google.refine.util.TestUtils;
|
||||||
|
|
||||||
public class StartsWithTests {
|
public class StartsWithTests extends RefineTest {
|
||||||
@Test
|
@Test
|
||||||
public void serializeStartsWith() {
|
public void serializeStartsWith() {
|
||||||
String json = "{\"description\":\"Returns whether s starts with sub\",\"params\":\"string s, string sub\",\"returns\":\"boolean\"}";
|
String json = "{\"description\":\"Returns whether s starts with sub\",\"params\":\"string s, string sub\",\"returns\":\"boolean\"}";
|
||||||
TestUtils.isSerializedTo(new StartsWith(), json);
|
TestUtils.isSerializedTo(new StartsWith(), json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testStartsWith() {
|
||||||
|
assertTrue((Boolean) invoke("startsWith", "testString", "test"));
|
||||||
|
assertFalse((Boolean) invoke("startsWith", "testString", "banana"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,15 +26,34 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package com.google.refine.expr.functions.strings;
|
package com.google.refine.expr.functions.strings;
|
||||||
|
|
||||||
|
import org.testng.Assert;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import com.google.refine.RefineTest;
|
||||||
|
import com.google.refine.expr.EvalError;
|
||||||
import com.google.refine.util.TestUtils;
|
import com.google.refine.util.TestUtils;
|
||||||
|
|
||||||
public class ToLowercaseTests {
|
public class ToLowercaseTests extends RefineTest {
|
||||||
@Test
|
@Test
|
||||||
public void serializeToLowercase() {
|
public void serializeToLowercase() {
|
||||||
String json = "{\"description\":\"Returns s converted to lowercase\",\"params\":\"string s\",\"returns\":\"string\"}";
|
String json = "{\"description\":\"Returns s converted to lowercase\",\"params\":\"string s\",\"returns\":\"string\"}";
|
||||||
TestUtils.isSerializedTo(new ToLowercase(), json);
|
TestUtils.isSerializedTo(new ToLowercase(), json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testtoLowercaseInvalidParams() {
|
||||||
|
Assert.assertTrue(invoke("toLowercase") instanceof EvalError);
|
||||||
|
Assert.assertTrue(invoke("toLowercase", (Object[])null) instanceof EvalError);
|
||||||
|
Assert.assertTrue(invoke("toLowercase", "one", "two", "three") instanceof EvalError);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testtoLowercase() {
|
||||||
|
Assert.assertEquals((String)(invoke("toLowercase", "One")), "one");
|
||||||
|
Assert.assertEquals((String)(invoke("toLowercase", "Ône")), "ône");
|
||||||
|
Assert.assertEquals((String)(invoke("toLowercase", "ONE")), "one");
|
||||||
|
Assert.assertEquals((String)(invoke("toLowercase", 1)), "1");
|
||||||
|
Assert.assertEquals((String)(invoke("toLowercase", true)), "true");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,8 +26,6 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package com.google.refine.expr.functions.strings;
|
package com.google.refine.expr.functions.strings;
|
||||||
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.testng.Assert;
|
import org.testng.Assert;
|
||||||
import org.testng.annotations.BeforeTest;
|
import org.testng.annotations.BeforeTest;
|
||||||
@ -40,7 +38,6 @@ import com.google.refine.util.TestUtils;
|
|||||||
|
|
||||||
public class TrimTests extends RefineTest {
|
public class TrimTests extends RefineTest {
|
||||||
|
|
||||||
static Properties bindings;
|
|
||||||
private static String NBSP = "\u00A0";
|
private static String NBSP = "\u00A0";
|
||||||
private static String ENQUAD = "\u2000";
|
private static String ENQUAD = "\u2000";
|
||||||
private static String EMQUAD = "\u2001";
|
private static String EMQUAD = "\u2001";
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package com.google.refine.expr.functions.strings;
|
package com.google.refine.expr.functions.strings;
|
||||||
|
|
||||||
import static org.testng.AssertJUnit.assertEquals;
|
import static org.testng.Assert.assertEquals;
|
||||||
|
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
@ -42,8 +42,13 @@ public class UnescapeTests extends RefineTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUnescape() {
|
public void testUnescape() {
|
||||||
assertEquals(invoke("unescape", "Ä", "html"),"Ä");
|
assertEquals(invoke("unescape", "Ä", "html"), "Ä");
|
||||||
assertEquals(invoke("unescape", "\\u00C4", "javascript"),"Ä");
|
assertEquals(invoke("unescape", "\\u00C4", "javascript"), "Ä");
|
||||||
|
|
||||||
|
assertEquals(invoke("unescape", "\"Test\"", "csv"), "Test"); // Apache TEXT-149 https://github.com/apache/commons-text/pull/119
|
||||||
|
assertEquals(invoke("unescape", "\"This \"\"is\"\" a test\"", "csv"), "This \"is\" a test");
|
||||||
|
assertEquals(invoke("unescape", "\"\n\"", "csv"), "\n");
|
||||||
|
assertEquals(invoke("unescape", "\"a, b\"", "csv"), "a, b");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user