Skip to content

Commit

Permalink
Move the tests into sql query test suit
Browse files Browse the repository at this point in the history
  • Loading branch information
HyukjinKwon committed Nov 4, 2016
1 parent b432355 commit 160ea54
Show file tree
Hide file tree
Showing 3 changed files with 101 additions and 25 deletions.
17 changes: 17 additions & 0 deletions sql/core/src/test/resources/sql-tests/inputs/random.sql
@@ -0,0 +1,17 @@
-- rand with the seed 0
SELECT rand(0);
SELECT rand(cast(3 / 7 AS int));
SELECT rand(NULL);
SELECT rand(cast(NULL AS int));

-- rand unsupported data type
SELECT rand(1.0);

-- randn with the seed 0
SELECT randn(0L);
SELECT randn(cast(3 / 7 AS long));
SELECT randn(NULL);
SELECT randn(cast(NULL AS long));

-- randn unsupported data type
SELECT rand('1')
84 changes: 84 additions & 0 deletions sql/core/src/test/resources/sql-tests/results/random.sql.out
@@ -0,0 +1,84 @@
-- Automatically generated by SQLQueryTestSuite
-- Number of queries: 10


-- !query 0
SELECT rand(0)
-- !query 0 schema
struct<rand(0):double>
-- !query 0 output
0.8446490682263027


-- !query 1
SELECT rand(cast(3 / 7 AS int))
-- !query 1 schema
struct<rand(CAST((CAST(3 AS DOUBLE) / CAST(7 AS DOUBLE)) AS INT)):double>
-- !query 1 output
0.8446490682263027


-- !query 2
SELECT rand(NULL)
-- !query 2 schema
struct<rand(CAST(NULL AS INT)):double>
-- !query 2 output
0.8446490682263027


-- !query 3
SELECT rand(cast(NULL AS int))
-- !query 3 schema
struct<rand(CAST(NULL AS INT)):double>
-- !query 3 output
0.8446490682263027


-- !query 4
SELECT rand(1.0)
-- !query 4 schema
struct<>
-- !query 4 output
org.apache.spark.sql.AnalysisException
cannot resolve 'rand(1.0BD)' due to data type mismatch: argument 1 requires (int or bigint) type, however, '1.0BD' is of decimal(2,1) type.; line 1 pos 7


-- !query 5
SELECT randn(0L)
-- !query 5 schema
struct<randn(0):double>
-- !query 5 output
1.1164209726833079


-- !query 6
SELECT randn(cast(3 / 7 AS long))
-- !query 6 schema
struct<randn(CAST((CAST(3 AS DOUBLE) / CAST(7 AS DOUBLE)) AS BIGINT)):double>
-- !query 6 output
1.1164209726833079


-- !query 7
SELECT randn(NULL)
-- !query 7 schema
struct<randn(CAST(NULL AS INT)):double>
-- !query 7 output
1.1164209726833079


-- !query 8
SELECT randn(cast(NULL AS long))
-- !query 8 schema
struct<randn(CAST(NULL AS BIGINT)):double>
-- !query 8 output
1.1164209726833079


-- !query 9
SELECT rand('1')
-- !query 9 schema
struct<>
-- !query 9 output
org.apache.spark.sql.AnalysisException
cannot resolve 'rand('1')' due to data type mismatch: argument 1 requires (int or bigint) type, however, ''1'' is of string type.; line 1 pos 7
25 changes: 0 additions & 25 deletions sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala
Expand Up @@ -1728,29 +1728,4 @@ class DataFrameSuite extends QueryTest with SharedSQLContext {
val df = spark.createDataFrame(spark.sparkContext.makeRDD(rows), schema)
assert(df.filter($"array1" === $"array2").count() == 1)
}

test("SPARK-17854: rand/randn allows null and long as input seed") {
checkAnswer(testData.selectExpr("rand(NULL)"), testData.selectExpr("rand(0)"))
checkAnswer(testData.selectExpr("rand(0L)"), testData.selectExpr("rand(0)"))
checkAnswer(testData.selectExpr("randn(NULL)"), testData.selectExpr("randn(0)"))
checkAnswer(testData.selectExpr("randn(0L)"), testData.selectExpr("randn(0)"))
checkAnswer(testData.selectExpr("rand(cast(NULL AS INT))"), testData.selectExpr("rand(0)"))
checkAnswer(testData.selectExpr("rand(cast(3 / 7 AS INT))"), testData.selectExpr("rand(0)"))
checkAnswer(
testData.selectExpr("randn(cast(NULL AS LONG))"), testData.selectExpr("randn(0L)"))
checkAnswer(
testData.selectExpr("randn(cast(3L / 12L AS LONG))"), testData.selectExpr("randn(0L)"))

val eOne = intercept[AnalysisException] {
testData.selectExpr("rand(key)").collect()
}
assert(
eOne.message.contains("Input argument to rand must be an integer, long or null literal."))

val eTwo = intercept[AnalysisException] {
testData.selectExpr("randn(key)").collect()
}
assert(
eTwo.message.contains("Input argument to randn must be an integer, long or null literal."))
}
}

0 comments on commit 160ea54

Please sign in to comment.