From 93c665e822a9ff6e6d042c897d5578435fd3baf1 Mon Sep 17 00:00:00 2001 From: randef1ned <46381867+randef1ned@users.noreply.github.com> Date: Tue, 9 Jan 2024 20:39:37 +0800 Subject: [PATCH] Fix: testNumeric() function treated the matrix as numeric --- src/checks.c | 2 +- tests/testthat/test_checkNumeric.R | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/checks.c b/src/checks.c index 2ee92481..68c21db4 100644 --- a/src/checks.c +++ b/src/checks.c @@ -522,7 +522,7 @@ SEXP attribute_hidden c_check_double(SEXP x, SEXP lower, SEXP upper, SEXP finite } SEXP attribute_hidden c_check_numeric(SEXP x, SEXP lower, SEXP upper, SEXP finite, SEXP any_missing, SEXP all_missing, SEXP len, SEXP min_len, SEXP max_len, SEXP unique, SEXP sorted, SEXP names, SEXP typed_missing, SEXP null_ok) { - HANDLE_TYPE_NULL(is_class_numeric(x) || check_typed_missing(x, typed_missing), "numeric", null_ok); + HANDLE_TYPE_NULL(!is_class_matrix(x) && is_class_numeric(x) || check_typed_missing(x, typed_missing), "numeric", null_ok); ASSERT_TRUE(check_vector_len(x, len, min_len, max_len)); ASSERT_TRUE(check_vector_names(x, names)); ASSERT_TRUE(check_vector_missings(x, any_missing, all_missing)); diff --git a/tests/testthat/test_checkNumeric.R b/tests/testthat/test_checkNumeric.R index 848b7883..fa350070 100644 --- a/tests/testthat/test_checkNumeric.R +++ b/tests/testthat/test_checkNumeric.R @@ -28,7 +28,7 @@ test_that("checkNumeric", { expect_false(testNumeric(1:3, any.missing=FALSE, len=5)) expect_true(testNumeric(1:3, lower = 1L, upper = 3L)) expect_false(testNumeric(1:3, lower = 5)) - + expect_false(testNumeric(matrix(1:3))) expect_error(assertNumeric("a"), "numeric") })