11
2- # # Copyright (C) 2010 - 2024 Dirk Eddelbuettel and Romain Francois
2+ # # Copyright (C) 2010 - 2025 Dirk Eddelbuettel and Romain Francois
33# # Copyright (C) 2025 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar
44# #
55# # This file is part of Rcpp.
@@ -23,7 +23,8 @@ Rcpp::sourceCpp("cpp/sugar.cpp")
2323
2424# # There are some (documented, see https://blog.r-project.org/2020/11/02/will-r-work-on-apple-silicon/index.html)
2525# # issues with NA propagation on arm64 / macOS. We not (yet ?) do anything special so we just skip some tests
26- isArmMacOs <- Sys.info()[[" sysname" ]] == " Darwin" && Sys.info()[[" machine" ]] == " arm64"
26+ # # This also seems to hit arm64 on Linux (aka 'aarch64' here)
27+ isArm <- Sys.info()[[" machine" ]] == " arm64" || Sys.info()[[" machine" ]] == " aarch64"
2728
2829# # Needed for a change in R 3.6.0 reducing a bias in very large samples
2930suppressWarnings(RNGversion(" 3.5.0" ))
@@ -36,8 +37,8 @@ expect_equal( runit_abs(x,y) , list( abs(x), abs(y) ) )
3637# test.sugar.all.one.less <- function( ){
3738expect_true( runit_all_one_less( 1 ) )
3839expect_true( ! runit_all_one_less( 1 : 10 ) )
39- if (! isArmMacOs ) expect_true( is.na( runit_all_one_less( NA ) ) )
40- if (! isArmMacOs ) expect_true( is.na( runit_all_one_less( c( NA , 1 ) ) ) )
40+ if (! isArm ) expect_true( is.na( runit_all_one_less( NA ) ) )
41+ if (! isArm ) expect_true( is.na( runit_all_one_less( c( NA , 1 ) ) ) )
4142expect_true( ! runit_all_one_less( c( 6 , NA ) ) )
4243
4344
@@ -46,14 +47,14 @@ expect_true( ! runit_all_one_greater( 1 ) )
4647expect_true( ! runit_all_one_greater( 1 : 10 ) )
4748expect_true( runit_all_one_greater( 6 : 10 ) )
4849expect_true( ! runit_all_one_greater( c(NA , 1 ) ) )
49- if (! isArmMacOs ) expect_true( is.na( runit_all_one_greater( c(NA , 6 ) ) ) )
50+ if (! isArm ) expect_true( is.na( runit_all_one_greater( c(NA , 6 ) ) ) )
5051
5152
5253# test.sugar.all.one.less.or.equal <- function( ){
5354expect_true( runit_all_one_less_or_equal( 1 ) )
5455expect_true( ! runit_all_one_less_or_equal( 1 : 10 ) )
55- if (! isArmMacOs ) expect_true( is.na( runit_all_one_less_or_equal( NA ) ) )
56- if (! isArmMacOs ) expect_true( is.na( runit_all_one_less_or_equal( c( NA , 1 ) ) ) )
56+ if (! isArm ) expect_true( is.na( runit_all_one_less_or_equal( NA ) ) )
57+ if (! isArm ) expect_true( is.na( runit_all_one_less_or_equal( c( NA , 1 ) ) ) )
5758expect_true( ! runit_all_one_less_or_equal( c( 6 , NA ) ) )
5859expect_true( runit_all_one_less_or_equal( 5 ) )
5960
@@ -66,15 +67,15 @@ expect_true( ! fx( 1:10 ) )
6667expect_true( fx( 6 : 10 ) )
6768expect_true( fx( 5 ) )
6869expect_true( ! fx( c(NA , 1 ) ) )
69- if (! isArmMacOs ) expect_true( is.na( fx( c(NA , 6 ) ) ) )
70+ if (! isArm ) expect_true( is.na( fx( c(NA , 6 ) ) ) )
7071
7172
7273# test.sugar.all.one.equal <- function( ){
7374fx <- runit_all_one_equal
7475expect_true( ! fx( 1 ) )
7576expect_true( ! fx( 1 : 2 ) )
7677expect_true( fx( rep(5 ,4 ) ) )
77- if (! isArmMacOs ) expect_true( is.na( fx( c(5 ,NA ) ) ) )
78+ if (! isArm ) expect_true( is.na( fx( c(5 ,NA ) ) ) )
7879expect_true(! fx( c(NA , 1 ) ) )
7980
8081
@@ -83,7 +84,7 @@ fx <- runit_all_not_equal_one
8384expect_true( fx( 1 ) )
8485expect_true( fx( 1 : 2 ) )
8586expect_true( ! fx( 5 ) )
86- if (! isArmMacOs ) expect_true( is.na( fx( c(NA , 1 ) ) ) )
87+ if (! isArm ) expect_true( is.na( fx( c(NA , 1 ) ) ) )
8788expect_true( ! fx( c(NA , 5 ) ) )
8889
8990
@@ -1620,8 +1621,8 @@ expect_error(strimws(x[1], "invalid"), info = "strimws -- bad `which` argument")
16201621# # min/max
16211622# test.sugar.min.max <- function() {
16221623# # min(empty) gives NA for integer, Inf for numeric (#844)
1623- if (! isArmMacOs ) expect_true(is.na(intmin(integer(0 ))), " min(integer(0))" )
1624- if (! isArmMacOs ) expect_equal(doublemin(numeric (0 )), Inf , info = " min(numeric(0))" )
1624+ if (! isArm ) expect_true(is.na(intmin(integer(0 ))), " min(integer(0))" )
1625+ if (! isArm ) expect_equal(doublemin(numeric (0 )), Inf , info = " min(numeric(0))" )
16251626
16261627# # max(empty_ gives NA for integer, Inf for numeric (#844)
16271628expect_true(is.na(intmax(integer(0 ))), " max(integer(0))" )
0 commit comments