Github user ueshin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/22013#discussion_r210162791
  
    --- Diff: 
sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/HigherOrderFunctionsSuite.scala
 ---
    @@ -283,6 +289,75 @@ class HigherOrderFunctionsSuite extends SparkFunSuite 
with ExpressionEvalHelper
           15)
       }
     
    +  test("TransformKeys") {
    +    val ai0 = Literal.create(
    +      Map(1 -> 1, 2 -> 2, 3 -> 3, 4 -> 4),
    +      MapType(IntegerType, IntegerType, valueContainsNull = false))
    +    val ai1 = Literal.create(
    +      Map.empty[Int, Int],
    +      MapType(IntegerType, IntegerType, valueContainsNull = true))
    +    val ai2 = Literal.create(
    +      Map(1 -> 1, 2 -> null, 3 -> 3),
    +      MapType(IntegerType, IntegerType, valueContainsNull = true))
    +    val ai3 = Literal.create(null, MapType(IntegerType, IntegerType, 
valueContainsNull = false))
    +
    +    val plusOne: (Expression, Expression) => Expression = (k, v) => k + 1
    +    val plusValue: (Expression, Expression) => Expression = (k, v) => k + v
    +    val modKey: (Expression, Expression) => Expression = (k, v) => k % 3
    +
    +    checkEvaluation(transformKeys(ai0, plusOne), Map(2 -> 1, 3 -> 2, 4 -> 
3, 5 -> 4))
    +    checkEvaluation(transformKeys(ai0, plusValue), Map(2 -> 1, 4 -> 2, 6 
-> 3, 8 -> 4))
    +    checkEvaluation(
    +      transformKeys(transformKeys(ai0, plusOne), plusValue), Map(3 -> 1, 5 
-> 2, 7 -> 3, 9 -> 4))
    +    checkEvaluation(transformKeys(ai0, modKey),
    +      ArrayBasedMapData(Array(1, 2, 0, 1), Array(1, 2, 3, 4)))
    +    checkEvaluation(transformKeys(ai1, plusOne), Map.empty[Int, Int])
    +    checkEvaluation(transformKeys(ai1, plusOne), Map.empty[Int, Int])
    +    checkEvaluation(
    +      transformKeys(transformKeys(ai1, plusOne), plusValue), 
Map.empty[Int, Int])
    +    checkEvaluation(transformKeys(ai2, plusOne), Map(2 -> 1, 3 -> null, 4 
-> 3))
    +    checkEvaluation(
    +      transformKeys(transformKeys(ai2, plusOne), plusOne), Map(3 -> 1, 4 
-> null, 5 -> 3))
    +    checkEvaluation(transformKeys(ai3, plusOne), null)
    +
    +    val as0 = Literal.create(
    +      Map("a" -> "xy", "bb" -> "yz", "ccc" -> "zx"),
    +      MapType(StringType, StringType, valueContainsNull = false))
    +    val as1 = Literal.create(
    +      Map("a" -> "xy", "bb" -> "yz", "ccc" -> null),
    +      MapType(StringType, StringType, valueContainsNull = true))
    +    val as2 = Literal.create(null,
    +      MapType(StringType, StringType, valueContainsNull = false))
    +    val asn = Literal.create(Map.empty[StringType, StringType],
    --- End diff --
    
    `as3`?


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to