R Under development (unstable) (2025-02-18 r87748 ucrt) -- "Unsuffered Consequences" Copyright (C) 2025 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > library(flint) > > ok0 <- + function (...) + tryCatch({ x[ ... ]; x.[ ... ]; FALSE }, error = function (e) TRUE) && + tryCatch({ x[[...]]; x.[[...]]; FALSE }, error = function (e) TRUE) > ok1 <- + function (...) + flintIdentical(x[ ... ], new(.cl, x = x.[ ... ])) && + tryCatch({ x[[...]]; x.[[...]]; FALSE }, error = function (e) TRUE) > ok2 <- + function (...) + tryCatch({ x[ ... ]; x.[ ... ]; FALSE }, error = function (e) TRUE) && + flintIdentical(x[[...]], new(.cl, x = x.[[...]])) > ok3 <- + function (...) + flintIdentical(x[ ... ], new(.cl, x = x.[ ... ])) && + flintIdentical(x[[...]], new(.cl, x = x.[[...]])) > > for (.cl in c("ulong", "slong", "fmpz", "fmpq", "mag", "arf", "acf", + "arb", "acb")) { + for (.n in 0L:2L) { + x. <- seq_len(.n) + names(x.) <- letters[seq_len(.n)] + x <- new(.cl, x = x.) + stopifnot(ok0("?"), + ok0(NULL, NULL), + ok0(NA), + ok0(NA_integer_), + ok0(NA_real_), + ok0(complex(0L)), + ok1(), + ok1(NULL), + ok1(logical(0L)), + ok1(logical(.n)), + ok1(logical(.n + 2L)), + ok1(integer(0L)), + ok1(integer(.n + 2L)), + ok1(double(0L)), + ok1(double(.n + 2L)), + ok1(rep(-0.9, .n + 2L)), + ok1(rep( 0.9, .n + 2L)), + ok1(character(0L))) + if (.n >= 1L) + stopifnot(ok0(c(-1L, 1L)), + ok1(c( 1L, 1L)), + (if (.n == 1L) ok3 else ok1)(TRUE), + ok1(c(TRUE, logical(.n + 1L))), + ok3(1L), + ok1(c(1L, integer(.n + 1L))), + ok3(1), + ok1(c(1, double(.n + 1L))), + ok3(1.9), + ok1(c(1.9, rep(-0.9, .n + 1L))), + ok1(c(1.9, rep( 0.9, .n + 1L))), + ok3(names(x.)[1L]), + (if (.n == 2L) ok3 else ok1)(-.n)) + else + stopifnot(ok0(TRUE), + ok0(1L), + ok0(1), + ok0(-1L)) + if (.n >= 2L) + stopifnot(ok1(c(TRUE, TRUE, logical(.n))), + ok1(c(1L, 2L, integer(.n))), + ok1(c(1, 2, double(.n))), + ok1(c(1.9, 2.9, rep(-0.9, .n))), + ok1(c(1.9, 2.9, rep( 0.9, .n))), + ok1(names(x.)[c(1L, 2L)]), + ok1(-c(.n, .n - 1L)), + ok3(-seq_len(.n)[-1L])) + else + stopifnot(ok0(c(FALSE, TRUE)), + ok0(2L), + ok0(2), + ok0(-2L)) + } + } > > proc.time() user system elapsed 1.20 0.10 1.29