@@ -402,61 +402,61 @@ test_that("power with integer64", {
402402 expect_identical(as.integer64(" 94906267" )^ 2L , as.integer64(" 94906267" ) * as.integer64(" 94906267" ))
403403
404404 # integer64 base with integer64 exponent
405- expect_identical(as.integer64(10 ) ^ as.integer64(3 ), as.integer64(1000 ))
406- expect_identical(as.integer64(" 2147483650" ) ^ as.integer64(2 ), as.integer64(" 4611686027017322500" ))
407- expect_identical(as.integer64(2 ) ^ 62L , as.integer64(" 4611686018427387904" ))
408- expect_identical(as.integer64(2 ) ^ as.integer64(62 ), as.integer64(" 4611686018427387904" ))
409- expect_identical(as.integer64(3 ) ^ 39L , as.integer64(" 4052555153018976267" ))
405+ expect_identical(as.integer64(10L ) ^ as.integer64(3L ), as.integer64(1000L ))
406+ expect_identical(as.integer64(" 2147483650" ) ^ as.integer64(2L ), as.integer64(" 4611686027017322500" ))
407+ expect_identical(as.integer64(2L ) ^ 62L , as.integer64(" 4611686018427387904" ))
408+ expect_identical(as.integer64(2L ) ^ as.integer64(62L ), as.integer64(" 4611686018427387904" ))
409+ expect_identical(as.integer64(3L ) ^ 39L , as.integer64(" 4052555153018976267" ))
410410
411411 # Special bases: 0, 1, -1
412- expect_identical(as.integer64(0 ) ^ 0L , as.integer64(1L ))
413- expect_identical(as.integer64(0 ) ^ 1L , as.integer64(0L ))
414- expect_identical(as.integer64(0 ) ^ 5L , as.integer64(0L ))
415- expect_warning(expect_identical(as.integer64(0 ) ^ (- 1L ), NA_integer64_ ))
416-
417- expect_identical(as.integer64(1 ) ^ 0L , as.integer64(1L ))
418- expect_identical(as.integer64(1 ) ^ 100L , as.integer64(1L ))
419- expect_identical(as.integer64(1 ) ^ (- 5L ), as.integer64(1L ))
420- expect_identical(as.integer64(1 ) ^ lim.integer64()[2L ], as.integer64(1L ))
421-
422- expect_identical(as.integer64(- 1 ) ^ 0L , as.integer64(1L ))
423- expect_identical(as.integer64(- 1 ) ^ 1L , as.integer64(- 1L ))
424- expect_identical(as.integer64(- 1 ) ^ 2L , as.integer64(1L ))
425- expect_identical(as.integer64(- 1 ) ^ 3L , as.integer64(- 1L ))
426- expect_identical(as.integer64(- 1 ) ^ (- 1L ), as.integer64(- 1L ))
427- expect_identical(as.integer64(- 1 ) ^ (- 2L ), as.integer64(1L ))
428- expect_identical(as.integer64(- 1 ) ^ (- 3L ), as.integer64(- 1L ))
429- expect_identical(as.integer64(- 1 ) ^ lim.integer64()[2L ], as.integer64(- 1L ))
412+ expect_identical(as.integer64(0L ) ^ 0L , as.integer64(1L ))
413+ expect_identical(as.integer64(0L ) ^ 1L , as.integer64(0L ))
414+ expect_identical(as.integer64(0L ) ^ 5L , as.integer64(0L ))
415+ expect_warning(expect_identical(as.integer64(0L ) ^ (- 1L ), NA_integer64_ ))
416+
417+ expect_identical(as.integer64(1L ) ^ 0L , as.integer64(1L ))
418+ expect_identical(as.integer64(1L ) ^ 100L , as.integer64(1L ))
419+ expect_identical(as.integer64(1L ) ^ (- 5L ), as.integer64(1L ))
420+ expect_identical(as.integer64(1L ) ^ lim.integer64()[2L ], as.integer64(1L ))
421+
422+ expect_identical(as.integer64(- 1L ) ^ 0L , as.integer64(1L ))
423+ expect_identical(as.integer64(- 1L ) ^ 1L , as.integer64(- 1L ))
424+ expect_identical(as.integer64(- 1L ) ^ 2L , as.integer64(1L ))
425+ expect_identical(as.integer64(- 1L ) ^ 3L , as.integer64(- 1L ))
426+ expect_identical(as.integer64(- 1L ) ^ (- 1L ), as.integer64(- 1L ))
427+ expect_identical(as.integer64(- 1L ) ^ (- 2L ), as.integer64(1L ))
428+ expect_identical(as.integer64(- 1L ) ^ (- 3L ), as.integer64(- 1L ))
429+ expect_identical(as.integer64(- 1L ) ^ lim.integer64()[2L ], as.integer64(- 1L ))
430430
431431 # Negative exponents with |base| >= 2
432- expect_identical(as.integer64(2 ) ^ (- 1L ), as.integer64(0L ))
433- expect_identical(as.integer64(2 ) ^ (- 5L ), as.integer64(0L ))
434- expect_identical(as.integer64(- 2 ) ^ (- 1L ), as.integer64(0L ))
432+ expect_identical(as.integer64(2L ) ^ (- 1L ), as.integer64(0L ))
433+ expect_identical(as.integer64(2L ) ^ (- 5L ), as.integer64(0L ))
434+ expect_identical(as.integer64(- 2L ) ^ (- 1L ), as.integer64(0L ))
435435
436436 # Overflow detection with both odd and even exponents
437437 expect_warning(expect_identical(as.integer64(" 2147483650" ) ^ 3L , NA_integer64_ ), overflow_warning )
438- expect_warning(expect_identical(as.integer64(100000 ) ^ 8L , NA_integer64_ ), overflow_warning )
439- expect_warning(expect_identical(as.integer64(2 ) ^ 63L , NA_integer64_ ), overflow_warning )
440- expect_warning(expect_identical(as.integer64(2 ) ^ 64L , NA_integer64_ ), overflow_warning )
441- expect_warning(expect_identical(as.integer64(3 ) ^ 40L , NA_integer64_ ), overflow_warning )
442- expect_warning(expect_identical(as.integer64(3 ) ^ 64L , NA_integer64_ ), overflow_warning )
438+ expect_warning(expect_identical(as.integer64(100000L ) ^ 8L , NA_integer64_ ), overflow_warning )
439+ expect_warning(expect_identical(as.integer64(2L ) ^ 63L , NA_integer64_ ), overflow_warning )
440+ expect_warning(expect_identical(as.integer64(2L ) ^ 64L , NA_integer64_ ), overflow_warning )
441+ expect_warning(expect_identical(as.integer64(3L ) ^ 40L , NA_integer64_ ), overflow_warning )
442+ expect_warning(expect_identical(as.integer64(3L ) ^ 64L , NA_integer64_ ), overflow_warning )
443443 expect_warning(expect_identical(lim.integer64()[1L ] ^ 2L , NA_integer64_ ), overflow_warning )
444444 expect_warning(expect_identical(lim.integer64()[2L ] ^ 2L , NA_integer64_ ), overflow_warning )
445445
446446 # Missing values and empty inputs
447447 expect_no_warning(expect_identical(NA_integer64_ ^ 2L , NA_integer64_ ))
448- expect_no_warning(expect_identical(as.integer64(2 ) ^ NA_integer_ , NA_integer64_ ))
449- expect_no_warning(expect_identical(as.integer64(2 ) ^ NA_integer64_ , NA_integer64_ ))
450- expect_no_warning(expect_identical(as.integer64(2 ) ^ NA_real_ , NA_integer64_ ))
451- expect_identical(integer64(0 ) ^ 2L , integer64(0 ))
452- expect_identical(as.integer64(2 ) ^ integer(0 ), integer64(0 ))
453- expect_identical(integer64(0 ) ^ integer(0 ), integer64(0 ))
448+ expect_no_warning(expect_identical(as.integer64(2L ) ^ NA_integer_ , NA_integer64_ ))
449+ expect_no_warning(expect_identical(as.integer64(2L ) ^ NA_integer64_ , NA_integer64_ ))
450+ expect_no_warning(expect_identical(as.integer64(2L ) ^ NA_real_ , NA_integer64_ ))
451+ expect_identical(integer64() ^ 2L , integer64())
452+ expect_identical(as.integer64(2L ) ^ integer(), integer64())
453+ expect_identical(integer64() ^ integer(), integer64())
454454
455455 # Vectorization and recycling
456- expect_identical(c(as.integer64(2 ), as.integer64(3 )) ^ 2L , as.integer64(c(4 , 9 )))
457- expect_identical(as.integer64(2 ) ^ c(1L , 2L , 3L ), as.integer64(c(2 , 4 , 8 )))
456+ expect_identical(c(as.integer64(2L ), as.integer64(3L )) ^ 2L , as.integer64(c(4L , 9L )))
457+ expect_identical(as.integer64(2L ) ^ c(1L , 2L , 3L ), as.integer64(c(2L , 4L , 8L )))
458458 expect_warning(
459- expect_identical(c(as.integer64(2 ), as.integer64(2 )) ^ c(2L , 64L ), c(as.integer64(4 ), NA_integer64_ )),
459+ expect_identical(c(as.integer64(2L ), as.integer64(2L )) ^ c(2L , 64L ), c(as.integer64(4L ), NA_integer64_ )),
460460 overflow_warning
461461 )
462462})
0 commit comments