@@ -1580,7 +1580,18 @@ public void pow_null_output() {
15801580 assertEquals (String .format ("pow(%s, %s)" , (double ) -2 , 1.5 ), pow .toString ());
15811581 assertTrue (pow .valueOf (valueEnv ()).isNull ());
15821582
1583- pow = DSL .pow (DSL .literal ((double ) -2 ), DSL .literal ((double ) 2 ));
1583+ pow = DSL .pow (DSL .literal ((float ) -2 ), DSL .literal ((float ) 1.5 ));
1584+ assertEquals (pow .type (), DOUBLE );
1585+ assertEquals (String .format ("pow(%s, %s)" , (float ) -2 , (float ) 1.5 ), pow .toString ());
1586+ assertTrue (pow .valueOf (valueEnv ()).isNull ());
1587+ }
1588+
1589+ /**
1590+ * Test pow/power with edge cases
1591+ */
1592+ @ Test
1593+ public void pow_edge_cases () {
1594+ FunctionExpression pow = DSL .pow (DSL .literal ((double ) -2 ), DSL .literal ((double ) 2 ));
15841595 assertEquals (pow .type (), DOUBLE );
15851596 assertEquals (String .format ("pow(%s, %s)" ,(double ) -2 , (double ) 2 ), pow .toString ());
15861597 assertThat (
@@ -1594,11 +1605,6 @@ public void pow_null_output() {
15941605 pow .valueOf (valueEnv ()),
15951606 allOf (hasType (DOUBLE ), hasValue (Math .pow (2 , 1.5 ))));
15961607
1597- pow = DSL .pow (DSL .literal ((float ) -2 ), DSL .literal ((float ) 1.5 ));
1598- assertEquals (pow .type (), DOUBLE );
1599- assertEquals (String .format ("pow(%s, %s)" , (float ) -2 , (float ) 1.5 ), pow .toString ());
1600- assertTrue (pow .valueOf (valueEnv ()).isNull ());
1601-
16021608 pow = DSL .pow (DSL .literal ((float ) -2 ), DSL .literal ((float ) 2 ));
16031609 assertEquals (pow .type (), DOUBLE );
16041610 assertEquals (String .format ("pow(%s, %s)" , (float ) -2 , (float ) 2 ), pow .toString ());
0 commit comments