From fab279630df5bd7006986de02ca12a074843d434 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20=C3=9Acar?= Date: Mon, 29 Jul 2024 11:27:38 +0200 Subject: [PATCH] improve formatting of null values, closes #48 --- NEWS.md | 1 + R/print.R | 2 +- tests/testthat/test-print.R | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 4e2392d..7398ee6 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,7 @@ # errors 0.4.2 - Add support for PDG rounding rules (@davidchall #59 addressing #45). +- Improve formatting of null values (#48). # errors 0.4.1 diff --git a/R/print.R b/R/print.R index e939b57..e376c1b 100644 --- a/R/print.R +++ b/R/print.R @@ -45,7 +45,7 @@ format.errors = function(x, e <- signif(.e(x), digits) nulle <- e == 0 & !is.na(e) - xexp <- get_exponent(x) + xexp <- ifelse(.v(x) == 0, get_exponent(e) + 1, get_exponent(x)) value_digits <- ifelse(e, digits - get_exponent(e), digits) value <- ifelse(e, signif(.v(x), xexp + value_digits), .v(x)) value <- ifelse(is.finite(value), value, .v(x)) diff --git a/tests/testthat/test-print.R b/tests/testthat/test-print.R index e0c4ac2..5c4668a 100644 --- a/tests/testthat/test-print.R +++ b/tests/testthat/test-print.R @@ -57,4 +57,8 @@ test_that("error formatting works properly", { expect_equal(format(x[3]), "NaN(NaN)") expect_equal(format(x[4]), "Inf(Inf)") expect_equal(format(x[5]), "-Inf(Inf)") + + x <- set_errors(c(0e10, 1e12), 0.1e12) + expect_equal(format(x), c("0.0(1)e12", "1.0(1)e12")) + expect_equal(format(x, digits=2), c("0.00(10)e12", "1.00(10)e12")) })