From 82a384ee1356cc32c2edd00d6fef7a6a7faf30dd Mon Sep 17 00:00:00 2001 From: beliefer Date: Fri, 31 Jul 2020 23:10:24 +0800 Subject: [PATCH] Add test cases. --- .../expressions/RegexpExpressionsSuite.scala | 42 ++++++++++--------- .../results/regexp-functions.sql.out | 6 +-- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/RegexpExpressionsSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/RegexpExpressionsSuite.scala index ac276e7cde0db..a7d4f3f297ad0 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/RegexpExpressionsSuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/RegexpExpressionsSuite.scala @@ -323,45 +323,47 @@ class RegexpExpressionsSuite extends SparkFunSuite with ExpressionEvalHelper { } test("RegexExtractAll") { - val row1 = create_row("100-200,300-400,500-600", "(\\d+)-(\\d+)", 1) - val row2 = create_row("100-200,300-400,500-600", "(\\d+)-(\\d+)", 2) - val row3 = create_row("100-200,300-400,500-600", "(\\d+).*", 1) - val row4 = create_row("100-200,300-400,500-600", "([a-z])", 1) - val row5 = create_row(null, "([a-z])", 1) - val row6 = create_row("100-200,300-400,500-600", null, 1) - val row7 = create_row("100-200,300-400,500-600", "([a-z])", null) + val row1 = create_row("100-200,300-400,500-600", "(\\d+)-(\\d+)", 0) + val row2 = create_row("100-200,300-400,500-600", "(\\d+)-(\\d+)", 1) + val row3 = create_row("100-200,300-400,500-600", "(\\d+)-(\\d+)", 2) + val row4 = create_row("100-200,300-400,500-600", "(\\d+).*", 1) + val row5 = create_row("100-200,300-400,500-600", "([a-z])", 1) + val row6 = create_row(null, "([a-z])", 1) + val row7 = create_row("100-200,300-400,500-600", null, 1) + val row8 = create_row("100-200,300-400,500-600", "([a-z])", null) val s = 's.string.at(0) val p = 'p.string.at(1) val r = 'r.int.at(2) val expr = RegExpExtractAll(s, p, r) - checkEvaluation(expr, Seq("100", "300", "500"), row1) - checkEvaluation(expr, Seq("200", "400", "600"), row2) - checkEvaluation(expr, Seq("100"), row3) - checkEvaluation(expr, Seq(), row4) - checkEvaluation(expr, null, row5) + checkEvaluation(expr, Seq("100-200", "300-400", "500-600"), row1) + checkEvaluation(expr, Seq("100", "300", "500"), row2) + checkEvaluation(expr, Seq("200", "400", "600"), row3) + checkEvaluation(expr, Seq("100"), row4) + checkEvaluation(expr, Seq(), row5) checkEvaluation(expr, null, row6) checkEvaluation(expr, null, row7) + checkEvaluation(expr, null, row8) val expr1 = new RegExpExtractAll(s, p) - checkEvaluation(expr1, Seq("100", "300", "500"), row1) + checkEvaluation(expr1, Seq("100", "300", "500"), row2) val nonNullExpr = RegExpExtractAll(Literal("100-200,300-400,500-600"), Literal("(\\d+)-(\\d+)"), Literal(1)) - checkEvaluation(nonNullExpr, Seq("100", "300", "500"), row1) + checkEvaluation(nonNullExpr, Seq("100", "300", "500"), row2) // invalid group index - val row8 = create_row("100-200,300-400,500-600", "(\\d+)-(\\d+)", 3) - val row9 = create_row("100-200,300-400,500-600", "(\\d+).*", 2) - val row10 = create_row("100-200,300-400,500-600", "\\d+", 1) + val row9 = create_row("100-200,300-400,500-600", "(\\d+)-(\\d+)", 3) + val row10 = create_row("100-200,300-400,500-600", "(\\d+).*", 2) + val row11 = create_row("100-200,300-400,500-600", "\\d+", 1) checkExceptionInExpression[IllegalArgumentException]( - expr, row8, "Regex group count is 2, but the specified group index is 3") + expr, row9, "Regex group count is 2, but the specified group index is 3") checkExceptionInExpression[IllegalArgumentException]( - expr, row9, "Regex group count is 1, but the specified group index is 2") + expr, row10, "Regex group count is 1, but the specified group index is 2") checkExceptionInExpression[IllegalArgumentException]( - expr, row10, "Regex group count is 0, but the specified group index is 1") + expr, row11, "Regex group count is 0, but the specified group index is 1") } test("SPLIT") { diff --git a/sql/core/src/test/resources/sql-tests/results/regexp-functions.sql.out b/sql/core/src/test/resources/sql-tests/results/regexp-functions.sql.out index a83253e88c1fb..2eef926f63e37 100644 --- a/sql/core/src/test/resources/sql-tests/results/regexp-functions.sql.out +++ b/sql/core/src/test/resources/sql-tests/results/regexp-functions.sql.out @@ -247,8 +247,8 @@ struct> -- !query -SELECT regexp_extract_all('1a 2b 14m', '(\\d+)?([a-z]+)', 1) +SELECT regexp_extract_all('a 2b 14m', '(\\d+)?([a-z]+)', 1) -- !query schema -struct> +struct> -- !query output -["","2","14"] \ No newline at end of file +["","2","14"]