R Under development (unstable) (2023-11-16 r85542 ucrt) -- "Unsuffered Consequences" Copyright (C) 2023 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("R.utils") Loading required package: R.oo Loading required package: R.methodsS3 R.methodsS3 v1.8.2 (2022-06-13 22:00:14 UTC) successfully loaded. See ?R.methodsS3 for help. R.oo v1.25.0 (2022-06-12 02:20:02 UTC) successfully loaded. See ?R.oo for help. Attaching package: 'R.oo' The following object is masked from 'package:R.methodsS3': throw The following objects are masked from 'package:methods': getClasses, getMethods The following objects are masked from 'package:base': attach, detach, load, save R.utils v2.12.3 successfully loaded. See ?R.utils for help. Attaching package: 'R.utils' The following object is masked from 'package:utils': timestamp The following objects are masked from 'package:base': cat, commandArgs, getOption, isOpen, nullfile, parse, warnings > > x <- c(7, 8, 15, 16) > print(x) [1] 7 8 15 16 > > y <- intToHex(x) > y_truth <- c("07", "08", "0f", "10") > print(y) [1] "07" "08" "0f" "10" > stopifnot(is.character(y), all(!is.na(y)), identical(y, y_truth)) > > y <- intToOct(x) > y_truth <- c("07", "10", "17", "20") > print(y) [1] "07" "10" "17" "20" > stopifnot(is.character(y), all(!is.na(y)), identical(y, y_truth)) > > y <- intToBin(x) > y_truth <- c("00111", "01000", "01111", "10000") > print(y) [1] "00111" "01000" "01111" "10000" > stopifnot(is.character(y), all(!is.na(y)), identical(y, y_truth)) > > > x <- -3:3 > print(x) [1] -3 -2 -1 0 1 2 3 > > y <- intToHex(x) > y_truth <- c("fffffffd", "fffffffe", "ffffffff", + "00000000", + "00000001", "00000002", "00000003") > print(y) [1] "fffffffd" "fffffffe" "ffffffff" "00000000" "00000001" "00000002" "00000003" > stopifnot(is.character(y), all(!is.na(y)), identical(y, y_truth)) > > y <- intToOct(x) > y_truth <- c("37777777775", "37777777776", "37777777777", + "00000000000", + "00000000001", "00000000002", "00000000003") > print(y) [1] "37777777775" "37777777776" "37777777777" "00000000000" "00000000001" [6] "00000000002" "00000000003" > stopifnot(is.character(y), all(!is.na(y)), identical(y, y_truth)) > > y <- intToBin(x) > y_truth <- c("1111111111111111111111111111101", + "1111111111111111111111111111110", + "1111111111111111111111111111111", + "0000000000000000000000000000000", + "0000000000000000000000000000001", + "0000000000000000000000000000010", + "0000000000000000000000000000011") > print(y) [1] "1111111111111111111111111111101" "1111111111111111111111111111110" [3] "1111111111111111111111111111111" "0000000000000000000000000000000" [5] "0000000000000000000000000000001" "0000000000000000000000000000010" [7] "0000000000000000000000000000011" > stopifnot(is.character(y), all(!is.na(y)), identical(y, y_truth)) > > > ## Integer out of range > x <- 2^31 > > y <- intToBin(x) Warning message: In intToBin(x) : NAs introduced by coercion to integer range > print(y) [1] NA > stopifnot(is.character(y), is.na(y)) > > y <- intToHex(x) Warning message: In intToHex(x) : NAs introduced by coercion to integer range > print(y) [1] NA > stopifnot(is.character(y), is.na(y)) > > y <- intToOct(x) Warning message: In intToOct(x) : NAs introduced by coercion to integer range > print(y) [1] NA > stopifnot(is.character(y), is.na(y)) > > proc.time() user system elapsed 0.29 0.12 0.37