From b0266056d23be0a4a21bc62a3794333e154d9174 Mon Sep 17 00:00:00 2001 From: Mauricio 'Pacha' Vargas Sepulveda Date: Mon, 29 Apr 2024 11:25:49 -0400 Subject: [PATCH] test with default table style in latex --- .Rbuildignore | 2 + R/extract_metadata.R | 16 +- R/output.R | 2 +- inst/examples/data.Rnw | 33 ---- inst/examples/data.pdf | Bin 28330 -> 14006 bytes inst/examples/data.qmd | 33 ++++ inst/examples/data.tex | 219 --------------------------- tests/testthat/test_extract_tables.R | 16 +- tests/testthat/test_write_methods.R | 10 +- 9 files changed, 63 insertions(+), 268 deletions(-) delete mode 100644 inst/examples/data.Rnw create mode 100644 inst/examples/data.qmd delete mode 100644 inst/examples/data.tex diff --git a/.Rbuildignore b/.Rbuildignore index c5eb406..b5a7031 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -14,3 +14,5 @@ ignore/* ^codecov\.yml$ ^dev$ ^README\.html$ +^inst/examples/data\.qmd$ +^inst/examples/text\.qmd$ diff --git a/R/extract_metadata.R b/R/extract_metadata.R index 14b64e6..64d499a 100644 --- a/R/extract_metadata.R +++ b/R/extract_metadata.R @@ -23,6 +23,18 @@ extract_metadata <- function(file, password = NULL, copy = FALSE) { on.exit(pdfDocument$close()) info <- pdfDocument$getDocumentInformation() + + info_creation_date <- info$getCreationDate() + info_modification_date <- info$getModificationDate() + + if (!is.null(info_creation_date)) { + info_creation_date <- info_creation_date$getTime()$toString() + } + + if (!is.null(info_modification_date)) { + info_modification_date <- info_modification_date$getTime()$toString() + } + list( pages = pdfDocument$getNumberOfPages(), title = info$getTitle(), @@ -31,8 +43,8 @@ extract_metadata <- function(file, password = NULL, copy = FALSE) { keywords = info$getKeywords(), creator = info$getCreator(), producer = info$getProducer(), - created = info$getCreationDate()$getTime()$toString(), - modified = info$getModificationDate()$getTime()$toString(), + created = info_creation_date, + modified = info_modification_date, trapped = info$getTrapped() ) } diff --git a/R/output.R b/R/output.R index 47a68fb..44777ed 100644 --- a/R/output.R +++ b/R/output.R @@ -99,7 +99,7 @@ list_characters <- function(tables, delim = "\t", encoding = NULL, ...) { list_data_frames <- function(tables, delim = "\t", encoding = NULL, ...) { char <- list_characters(tables = tables, delim = delim, encoding = encoding) lapply(char, function(x) { - o <- try(read_delim(file = x, delim = delim)) + o <- try(read_delim(file = x, delim = delim, show_col_types = FALSE)) if (inherits(o, "try-error")) { return(x) } else { diff --git a/inst/examples/data.Rnw b/inst/examples/data.Rnw deleted file mode 100644 index 774f754..0000000 --- a/inst/examples/data.Rnw +++ /dev/null @@ -1,33 +0,0 @@ -\documentclass{article} - -\begin{document} - -<>= -library("xtable") -library("datasets") -@ - -<>= -xtable(mtcars, align = "|l|r|r|r|r|r|r|r|r|r|r|r|") -@ - -\clearpage - -<>= -xtable(head(iris), align = "|l|r|r|r|r|r|") -@ - -\vspace{20em} - -<>= -xtable(tail(iris), align = "|l|r|r|r|r|r|") -@ - -\clearpage - -<>= -xtable(ToothGrowth, align = "|l|r|r|r|") -@ - - -\end{document} \ No newline at end of file diff --git a/inst/examples/data.pdf b/inst/examples/data.pdf index 8bdda7f411ecd3958f53e62e74d84afc02367b93..0c111d9640da9773d996c43e7ef54741e448b7f4 100644 GIT binary patch literal 14006 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 X0)KQeHG^Ye0|0?=l$2uf;&A^9r;(s% literal 28330 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 sFDVV=<&u<^~HKaBc_LQgNFCX4d_09KU8_W%F@ diff --git a/inst/examples/data.qmd b/inst/examples/data.qmd new file mode 100644 index 0000000..e75fa21 --- /dev/null +++ b/inst/examples/data.qmd @@ -0,0 +1,33 @@ +--- +format: pdf +--- + +\pagenumbering{gobble} + +```{r, echo=FALSE} +library(xtable) +library(datasets) +options(xtable.comment = FALSE) +``` + +```{r, results="asis", echo=FALSE} +print(xtable(mtcars, align = "|l|r|r|r|r|r|r|r|r|r|r|r|"), include.rownames = FALSE) +``` + +\clearpage + +```{r, results="asis", echo=FALSE} +print(xtable(head(iris), align = "|l|r|r|r|r|r|"), include.rownames = FALSE) +``` + +\vspace{20em} + +```{r, results="asis", echo=FALSE} +print(xtable(tail(iris), align = "|l|r|r|r|r|r|"), include.rownames = FALSE) +``` + +\clearpage + +```{r, results="asis", echo=FALSE} +print(xtable(ToothGrowth[1:15, ], align = "|l|r|r|r|"), include.rownames = FALSE) +``` diff --git a/inst/examples/data.tex b/inst/examples/data.tex deleted file mode 100644 index 0abaa48..0000000 --- a/inst/examples/data.tex +++ /dev/null @@ -1,219 +0,0 @@ -\documentclass{article}\usepackage[]{graphicx}\usepackage[]{color} -%% maxwidth is the original width if it is less than linewidth -%% otherwise use linewidth (to make sure the graphics do not exceed the margin) -\makeatletter -\def\maxwidth{ % - \ifdim\Gin@nat@width>\linewidth - \linewidth - \else - \Gin@nat@width - \fi -} -\makeatother - -\definecolor{fgcolor}{rgb}{0.345, 0.345, 0.345} -\newcommand{\hlnum}[1]{\textcolor[rgb]{0.686,0.059,0.569}{#1}}% -\newcommand{\hlstr}[1]{\textcolor[rgb]{0.192,0.494,0.8}{#1}}% -\newcommand{\hlcom}[1]{\textcolor[rgb]{0.678,0.584,0.686}{\textit{#1}}}% -\newcommand{\hlopt}[1]{\textcolor[rgb]{0,0,0}{#1}}% -\newcommand{\hlstd}[1]{\textcolor[rgb]{0.345,0.345,0.345}{#1}}% -\newcommand{\hlkwa}[1]{\textcolor[rgb]{0.161,0.373,0.58}{\textbf{#1}}}% -\newcommand{\hlkwb}[1]{\textcolor[rgb]{0.69,0.353,0.396}{#1}}% -\newcommand{\hlkwc}[1]{\textcolor[rgb]{0.333,0.667,0.333}{#1}}% -\newcommand{\hlkwd}[1]{\textcolor[rgb]{0.737,0.353,0.396}{\textbf{#1}}}% - -\usepackage{framed} -\makeatletter -\newenvironment{kframe}{% - \def\at@end@of@kframe{}% - \ifinner\ifhmode% - \def\at@end@of@kframe{\end{minipage}}% - \begin{minipage}{\columnwidth}% - \fi\fi% - \def\FrameCommand##1{\hskip\@totalleftmargin \hskip-\fboxsep - \colorbox{shadecolor}{##1}\hskip-\fboxsep - % There is no \\@totalrightmargin, so: - \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}% - \MakeFramed {\advance\hsize-\width - \@totalleftmargin\z@ \linewidth\hsize - \@setminipage}}% - {\par\unskip\endMakeFramed% - \at@end@of@kframe} -\makeatother - -\definecolor{shadecolor}{rgb}{.97, .97, .97} -\definecolor{messagecolor}{rgb}{0, 0, 0} -\definecolor{warningcolor}{rgb}{1, 0, 1} -\definecolor{errorcolor}{rgb}{1, 0, 0} -\newenvironment{knitrout}{}{} % an empty environment to be redefined in TeX - -\usepackage{alltt} -\IfFileExists{upquote.sty}{\usepackage{upquote}}{} -\begin{document} - - - -% latex table generated in R 3.2.5 by xtable 1.8-2 package -% Fri Apr 29 22:30:10 2016 -\begin{table}[ht] -\centering -\begin{tabular}{|l|r|r|r|r|r|r|r|r|r|r|r|} - \hline - & mpg & cyl & disp & hp & drat & wt & qsec & vs & am & gear & carb \\ - \hline -Mazda RX4 & 21.00 & 6.00 & 160.00 & 110.00 & 3.90 & 2.62 & 16.46 & 0.00 & 1.00 & 4.00 & 4.00 \\ - Mazda RX4 Wag & 21.00 & 6.00 & 160.00 & 110.00 & 3.90 & 2.88 & 17.02 & 0.00 & 1.00 & 4.00 & 4.00 \\ - Datsun 710 & 22.80 & 4.00 & 108.00 & 93.00 & 3.85 & 2.32 & 18.61 & 1.00 & 1.00 & 4.00 & 1.00 \\ - Hornet 4 Drive & 21.40 & 6.00 & 258.00 & 110.00 & 3.08 & 3.21 & 19.44 & 1.00 & 0.00 & 3.00 & 1.00 \\ - Hornet Sportabout & 18.70 & 8.00 & 360.00 & 175.00 & 3.15 & 3.44 & 17.02 & 0.00 & 0.00 & 3.00 & 2.00 \\ - Valiant & 18.10 & 6.00 & 225.00 & 105.00 & 2.76 & 3.46 & 20.22 & 1.00 & 0.00 & 3.00 & 1.00 \\ - Duster 360 & 14.30 & 8.00 & 360.00 & 245.00 & 3.21 & 3.57 & 15.84 & 0.00 & 0.00 & 3.00 & 4.00 \\ - Merc 240D & 24.40 & 4.00 & 146.70 & 62.00 & 3.69 & 3.19 & 20.00 & 1.00 & 0.00 & 4.00 & 2.00 \\ - Merc 230 & 22.80 & 4.00 & 140.80 & 95.00 & 3.92 & 3.15 & 22.90 & 1.00 & 0.00 & 4.00 & 2.00 \\ - Merc 280 & 19.20 & 6.00 & 167.60 & 123.00 & 3.92 & 3.44 & 18.30 & 1.00 & 0.00 & 4.00 & 4.00 \\ - Merc 280C & 17.80 & 6.00 & 167.60 & 123.00 & 3.92 & 3.44 & 18.90 & 1.00 & 0.00 & 4.00 & 4.00 \\ - Merc 450SE & 16.40 & 8.00 & 275.80 & 180.00 & 3.07 & 4.07 & 17.40 & 0.00 & 0.00 & 3.00 & 3.00 \\ - Merc 450SL & 17.30 & 8.00 & 275.80 & 180.00 & 3.07 & 3.73 & 17.60 & 0.00 & 0.00 & 3.00 & 3.00 \\ - Merc 450SLC & 15.20 & 8.00 & 275.80 & 180.00 & 3.07 & 3.78 & 18.00 & 0.00 & 0.00 & 3.00 & 3.00 \\ - Cadillac Fleetwood & 10.40 & 8.00 & 472.00 & 205.00 & 2.93 & 5.25 & 17.98 & 0.00 & 0.00 & 3.00 & 4.00 \\ - Lincoln Continental & 10.40 & 8.00 & 460.00 & 215.00 & 3.00 & 5.42 & 17.82 & 0.00 & 0.00 & 3.00 & 4.00 \\ - Chrysler Imperial & 14.70 & 8.00 & 440.00 & 230.00 & 3.23 & 5.34 & 17.42 & 0.00 & 0.00 & 3.00 & 4.00 \\ - Fiat 128 & 32.40 & 4.00 & 78.70 & 66.00 & 4.08 & 2.20 & 19.47 & 1.00 & 1.00 & 4.00 & 1.00 \\ - Honda Civic & 30.40 & 4.00 & 75.70 & 52.00 & 4.93 & 1.61 & 18.52 & 1.00 & 1.00 & 4.00 & 2.00 \\ - Toyota Corolla & 33.90 & 4.00 & 71.10 & 65.00 & 4.22 & 1.83 & 19.90 & 1.00 & 1.00 & 4.00 & 1.00 \\ - Toyota Corona & 21.50 & 4.00 & 120.10 & 97.00 & 3.70 & 2.46 & 20.01 & 1.00 & 0.00 & 3.00 & 1.00 \\ - Dodge Challenger & 15.50 & 8.00 & 318.00 & 150.00 & 2.76 & 3.52 & 16.87 & 0.00 & 0.00 & 3.00 & 2.00 \\ - AMC Javelin & 15.20 & 8.00 & 304.00 & 150.00 & 3.15 & 3.44 & 17.30 & 0.00 & 0.00 & 3.00 & 2.00 \\ - Camaro Z28 & 13.30 & 8.00 & 350.00 & 245.00 & 3.73 & 3.84 & 15.41 & 0.00 & 0.00 & 3.00 & 4.00 \\ - Pontiac Firebird & 19.20 & 8.00 & 400.00 & 175.00 & 3.08 & 3.85 & 17.05 & 0.00 & 0.00 & 3.00 & 2.00 \\ - Fiat X1-9 & 27.30 & 4.00 & 79.00 & 66.00 & 4.08 & 1.94 & 18.90 & 1.00 & 1.00 & 4.00 & 1.00 \\ - Porsche 914-2 & 26.00 & 4.00 & 120.30 & 91.00 & 4.43 & 2.14 & 16.70 & 0.00 & 1.00 & 5.00 & 2.00 \\ - Lotus Europa & 30.40 & 4.00 & 95.10 & 113.00 & 3.77 & 1.51 & 16.90 & 1.00 & 1.00 & 5.00 & 2.00 \\ - Ford Pantera L & 15.80 & 8.00 & 351.00 & 264.00 & 4.22 & 3.17 & 14.50 & 0.00 & 1.00 & 5.00 & 4.00 \\ - Ferrari Dino & 19.70 & 6.00 & 145.00 & 175.00 & 3.62 & 2.77 & 15.50 & 0.00 & 1.00 & 5.00 & 6.00 \\ - Maserati Bora & 15.00 & 8.00 & 301.00 & 335.00 & 3.54 & 3.57 & 14.60 & 0.00 & 1.00 & 5.00 & 8.00 \\ - Volvo 142E & 21.40 & 4.00 & 121.00 & 109.00 & 4.11 & 2.78 & 18.60 & 1.00 & 1.00 & 4.00 & 2.00 \\ - \hline -\end{tabular} -\end{table} - - -\clearpage - -% latex table generated in R 3.2.5 by xtable 1.8-2 package -% Fri Apr 29 22:30:10 2016 -\begin{table}[ht] -\centering -\begin{tabular}{|l|r|r|r|r|r|} - \hline - & Sepal.Length & Sepal.Width & Petal.Length & Petal.Width & Species \\ - \hline -1 & 5.10 & 3.50 & 1.40 & 0.20 & setosa \\ - 2 & 4.90 & 3.00 & 1.40 & 0.20 & setosa \\ - 3 & 4.70 & 3.20 & 1.30 & 0.20 & setosa \\ - 4 & 4.60 & 3.10 & 1.50 & 0.20 & setosa \\ - 5 & 5.00 & 3.60 & 1.40 & 0.20 & setosa \\ - 6 & 5.40 & 3.90 & 1.70 & 0.40 & setosa \\ - \hline -\end{tabular} -\end{table} - - -\vspace{20em} - -% latex table generated in R 3.2.5 by xtable 1.8-2 package -% Fri Apr 29 22:30:10 2016 -\begin{table}[ht] -\centering -\begin{tabular}{|l|r|r|r|r|r|} - \hline - & Sepal.Length & Sepal.Width & Petal.Length & Petal.Width & Species \\ - \hline -145 & 6.70 & 3.30 & 5.70 & 2.50 & virginica \\ - 146 & 6.70 & 3.00 & 5.20 & 2.30 & virginica \\ - 147 & 6.30 & 2.50 & 5.00 & 1.90 & virginica \\ - 148 & 6.50 & 3.00 & 5.20 & 2.00 & virginica \\ - 149 & 6.20 & 3.40 & 5.40 & 2.30 & virginica \\ - 150 & 5.90 & 3.00 & 5.10 & 1.80 & virginica \\ - \hline -\end{tabular} -\end{table} - - -\clearpage - -% latex table generated in R 3.2.5 by xtable 1.8-2 package -% Fri Apr 29 22:30:10 2016 -\begin{table}[ht] -\centering -\begin{tabular}{|l|r|r|r|} - \hline - & len & supp & dose \\ - \hline -1 & 4.20 & VC & 0.50 \\ - 2 & 11.50 & VC & 0.50 \\ - 3 & 7.30 & VC & 0.50 \\ - 4 & 5.80 & VC & 0.50 \\ - 5 & 6.40 & VC & 0.50 \\ - 6 & 10.00 & VC & 0.50 \\ - 7 & 11.20 & VC & 0.50 \\ - 8 & 11.20 & VC & 0.50 \\ - 9 & 5.20 & VC & 0.50 \\ - 10 & 7.00 & VC & 0.50 \\ - 11 & 16.50 & VC & 1.00 \\ - 12 & 16.50 & VC & 1.00 \\ - 13 & 15.20 & VC & 1.00 \\ - 14 & 17.30 & VC & 1.00 \\ - 15 & 22.50 & VC & 1.00 \\ - 16 & 17.30 & VC & 1.00 \\ - 17 & 13.60 & VC & 1.00 \\ - 18 & 14.50 & VC & 1.00 \\ - 19 & 18.80 & VC & 1.00 \\ - 20 & 15.50 & VC & 1.00 \\ - 21 & 23.60 & VC & 2.00 \\ - 22 & 18.50 & VC & 2.00 \\ - 23 & 33.90 & VC & 2.00 \\ - 24 & 25.50 & VC & 2.00 \\ - 25 & 26.40 & VC & 2.00 \\ - 26 & 32.50 & VC & 2.00 \\ - 27 & 26.70 & VC & 2.00 \\ - 28 & 21.50 & VC & 2.00 \\ - 29 & 23.30 & VC & 2.00 \\ - 30 & 29.50 & VC & 2.00 \\ - 31 & 15.20 & OJ & 0.50 \\ - 32 & 21.50 & OJ & 0.50 \\ - 33 & 17.60 & OJ & 0.50 \\ - 34 & 9.70 & OJ & 0.50 \\ - 35 & 14.50 & OJ & 0.50 \\ - 36 & 10.00 & OJ & 0.50 \\ - 37 & 8.20 & OJ & 0.50 \\ - 38 & 9.40 & OJ & 0.50 \\ - 39 & 16.50 & OJ & 0.50 \\ - 40 & 9.70 & OJ & 0.50 \\ - 41 & 19.70 & OJ & 1.00 \\ - 42 & 23.30 & OJ & 1.00 \\ - 43 & 23.60 & OJ & 1.00 \\ - 44 & 26.40 & OJ & 1.00 \\ - 45 & 20.00 & OJ & 1.00 \\ - 46 & 25.20 & OJ & 1.00 \\ - 47 & 25.80 & OJ & 1.00 \\ - 48 & 21.20 & OJ & 1.00 \\ - 49 & 14.50 & OJ & 1.00 \\ - 50 & 27.30 & OJ & 1.00 \\ - 51 & 25.50 & OJ & 2.00 \\ - 52 & 26.40 & OJ & 2.00 \\ - 53 & 22.40 & OJ & 2.00 \\ - 54 & 24.50 & OJ & 2.00 \\ - 55 & 24.80 & OJ & 2.00 \\ - 56 & 30.90 & OJ & 2.00 \\ - 57 & 26.40 & OJ & 2.00 \\ - 58 & 27.30 & OJ & 2.00 \\ - 59 & 29.40 & OJ & 2.00 \\ - 60 & 23.00 & OJ & 2.00 \\ - \hline -\end{tabular} -\end{table} - - - -\end{document} diff --git a/tests/testthat/test_extract_tables.R b/tests/testthat/test_extract_tables.R index 8d4c03d..cd7a7eb 100644 --- a/tests/testthat/test_extract_tables.R +++ b/tests/testthat/test_extract_tables.R @@ -16,12 +16,12 @@ test_that("Warning for ignored arguments", { test_that("Test 'guess' argument", { tab1a <- extract_tables(sf, pages = 1, guess = TRUE) tab1b <- extract_tables(sf, pages = 1, guess = FALSE) - expect_true(ncol(tab1a[[1]]) == 10) - expect_true(ncol(tab1b[[1]]) == 13) + expect_true(ncol(tab1a[[1]]) == 11) + expect_true(ncol(tab1b[[1]]) == 11) tab2a <- extract_tables(sf, pages = 2, guess = TRUE) tab2b <- extract_tables(sf, pages = 2, guess = FALSE) - expect_true(length(tab2a) == 2) + expect_true(length(tab2a) == 1) expect_true(length(tab2b) == 1) }) @@ -46,14 +46,14 @@ test_that("Test 'area' argument", { tab4a <- extract_tables(sf, pages = 1, area = a4a, guess = FALSE, output = "tibble") expect_true(is.list(tab4a)) expect_true(is.data.frame(tab4a[[1]])) - expect_true(nrow(tab4a[[1]]) == 32) - expect_true(ncol(tab4a[[1]]) == 12) + expect_true(nrow(tab4a[[1]]) == 28) + expect_true(ncol(tab4a[[1]]) == 10) a4b <- list(c(122, 149, 251, 464)) tab4b <- extract_tables(sf, pages = 1, area = a4b, guess = FALSE, output = "tibble") expect_true(is.list(tab4b)) expect_true(is.data.frame(tab4b[[1]])) - expect_true(nrow(tab4b[[1]]) == 9) - expect_true(ncol(tab4b[[1]]) == 8) + expect_true(nrow(tab4b[[1]]) == 8) + expect_true(ncol(tab4b[[1]]) == 9) }) test_that("Test 'columns' argument", { @@ -61,7 +61,7 @@ test_that("Test 'columns' argument", { expect_true(is.list(tab5)) expect_true(length(tab5) == 1) expect_true(ncol(tab5[[1]]) == 2) - expect_true(nrow(tab5[[1]]) == 33) + expect_true(nrow(tab5[[1]]) == 32) }) test_that("Extract from encrypted PDF", { diff --git a/tests/testthat/test_write_methods.R b/tests/testthat/test_write_methods.R index daace32..206c949 100644 --- a/tests/testthat/test_write_methods.R +++ b/tests/testthat/test_write_methods.R @@ -11,8 +11,8 @@ test_that("Make list of matrices", { t1 <- tabulapdf:::list_matrices(tabs) expect_true(is.list(t1)) expect_true(is.matrix(t1[[1]])) - expect_true(ncol(t1[[1]]) == 10) - expect_true(nrow(t1[[1]]) == 32) + expect_true(ncol(t1[[1]]) == 11) + expect_true(nrow(t1[[1]]) == 33) }) test_that("Make list of character vectors", { @@ -30,17 +30,17 @@ test_that("Make list of data.frames", { test_that("Write CSV Files", { t4 <- tabulapdf:::write_csvs(tabs, file = pdffile, outdir = tempdir()) expect_true(is.character(t4)) - expect_identical(length(dir(t4, pattern = "csv$")), 4L) + expect_identical(length(dir(t4, pattern = "csv$")), 3L) }) test_that("Write TSV Files", { t5 <- tabulapdf:::write_tsvs(tabs, file = pdffile, outdir = tempdir()) expect_true(is.character(t5)) - expect_identical(length(dir(t5, pattern = "tsv$")), 4L) + expect_identical(length(dir(t5, pattern = "tsv$")), 3L) }) test_that("Write JSON Files", { t6 <- tabulapdf:::write_jsons(tabs, file = pdffile, outdir = tempdir()) expect_true(is.character(t6)) - expect_identical(length(dir(t6, pattern = "json$")), 4L) + expect_identical(length(dir(t6, pattern = "json$")), 3L) })