Comments (8)
Thanks!
More minimal reprex :
constructive::construct(as.Date(Inf))
#> as.Date(NA_character_)
#> Error in `constructive::construct()`:
#> ! {constructive} couldn't create code that reproduces perfectly the output
#> `original`: Inf
#> `recreated`: NA
#> ℹ use `check = FALSE` to ignore this error
Created on 2022-08-16 by the reprex package (v2.0.1)
This is due to the code using format(x)
to use as.Date()
on the character representation of dates.
as.Date(Inf)
is formatted as NA
by R so constructive uses as.Date(NA_character_)
.
I'm not sure if there's a pretty way to handle it since we cannot do : as.Date(c(Inf, "2021-07-31"))
as it would be coerced to character. So I believe we need to fall back on this format if date vectors contain infinite values:
as.Date(c(Inf, 18839), origin = "1970-01-01")
#> [1] NA "2021-07-31"
Created on 2022-08-16 by the reprex package (v2.0.1)
from constructive.
#17 should do it!
df <- structure(
list(
regular = structure(c(18839, 18900), class = "Date"),
plus_inf = structure(c(Inf, 18900), class = "Date"),
minus_inf = structure(c(18839, -Inf), class = "Date")
),
class = "data.frame",
row.names = c(NA, -2L))
df
#> regular plus_inf minus_inf
#> 1 2021-07-31 <NA> 2021-07-31
#> 2 2021-09-30 2021-09-30 <NA>
constructive::construct(df)
#> data.frame(
#> regular = as.Date(c("2021-07-31", "2021-09-30")),
#> plus_inf = as.Date(c(Inf, 18900), origin = "1970-01-01"),
#> minus_inf = as.Date(c(18839, -Inf), origin = "1970-01-01")
#> )
Created on 2022-08-16 by the reprex package (v2.0.1)
from constructive.
Cool! Thank you! Great pakcage btw, helps a lot writing tests!
from constructive.
Thanks, If I may ask, do you use it for snapshot test outputs, or to build test inputs ?
from constructive.
As test inputs for reproducable tests in order to keep the 80 margin column in RStudio. Compared to dput
it saves a lot of manual formatting work. 👍
But actually a good idea for test outputs to have a more interactive test... 🤔 (and benefitting from prettycode
) 👍
from constructive.
Thanks for the feedback, it helps a lot
from constructive.
You're welcome, great work! 👍
from constructive.
This old thread has been automatically locked. If you think you have found something related to this, please open a new issue and link to this old issue if necessary.
from constructive.
Related Issues (20)
- Release constructive 0.2.0 HOT 4
- `.env()` forces crash of RStudio HOT 5
- "readRDS" constructor for environments ? HOT 1
- setup_reprex() HOT 3
- diff() warning when simplifying integer vector wit big differences
- `construct_multi()` should support promises
- Harmonize constructors HOT 1
- Think about package ecosystem
- Improve extension system HOT 2
- roxygen2 import? HOT 2
- Changes in ggplot2 HOT 2
- S4 construction should not use representation()
- Bug when exploring S4
- opts_formula() needs a "next" constructor
- data pronouns are not handled properly
- `deparse_call()` and options HOT 1
- Dependency Dashboard
- can't construct classed pointers
- more ggplot2 issues
- Release constructive 0.3.0
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from constructive.