From 61915c6c8e1549528c92c04ace95410b2f6d47bf Mon Sep 17 00:00:00 2001 From: Anirban166 Date: Sun, 23 Aug 2020 14:16:17 +0530 Subject: [PATCH] Remove hrbrthemes due to missing fonts in Windows, MacOS and Ubuntu-16.04 3.3 as figured by R CMD checks --- DESCRIPTION | 3 +-- docs/articles/testComplexity.html | 13 +++++++++---- .../figure-html/unnamed-chunk-1-1.png | Bin 18042 -> 19910 bytes .../figure-html/unnamed-chunk-2-1.png | Bin 17913 -> 21043 bytes docs/pkgdown.yml | 2 +- vignettes/testComplexity.Rmd | 9 +++++---- 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 6643986..d3a6768 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -25,8 +25,7 @@ Imports: boot, bench, ggplot2, stats, - testthat (>= 2.1.0), - hrbrthemes + testthat (>= 2.1.0) Suggests: covr, knitr, diff --git a/docs/articles/testComplexity.html b/docs/articles/testComplexity.html index eb07ffb..8c844c3 100644 --- a/docs/articles/testComplexity.html +++ b/docs/articles/testComplexity.html @@ -282,15 +282,20 @@

These functions are for plotting the metrics returned by the quantifiers, in case the user still prefers to diagnose the obtained complexity result via the traditional method, with a visual representation of the benchmarked data. Considering the columns from the data frames returned by the quantiftying functions, the user can create plots for:

library(testComplexity)
 df <- asymptoticTimings(PeakSegOptimal::PeakSegPDPA(rpois(N, 1), max.segments = 3L), data.sizes = 10^seq(1, 4))
-plotTimings(df, titles = list("Timings", "PeakSegOptimal::PeakSegPDPA"), line.color = "#ffec1b", point.color = "#ffec1b", line.size = 1, point.size = 1.5) + hrbrthemes::theme_ft_rc()
-

- Memory Allocations vs Data sizes, via plotMemoryUsage:

+plotTimings(df, titles = list("Timings", "PeakSegOptimal::PeakSegPDPA"), line.color = "orange", point.color = "black", line.size = 1, point.size = 1.5) +

+
library(testComplexity)
 df <- asymptoticMemoryUsage(PeakSegOptimal::PeakSegPDPA(rpois(N, 1), max.segments = 3L), data.sizes = 10^seq(1, 4, by = 0.1))
-plotMemoryUsage(df, titles = list("Memory usage", "PeakSegOptimal::PeakSegPDPA"), line.color = "#ffec1b", point.color = "#ffec1b", line.size = 1, point.size = 1.5) + hrbrthemes::theme_ft_rc()
+plotMemoryUsage(df, titles = list("Memory usage", "PeakSegOptimal::PeakSegPDPA"), line.color = "orange", point.color = "black", line.size = 1, point.size = 1.5)


That sums up the functionality offered by testComplexity 0.0.0.9000. For more examples, please check the articles section of the website.

diff --git a/docs/articles/testComplexity_files/figure-html/unnamed-chunk-1-1.png b/docs/articles/testComplexity_files/figure-html/unnamed-chunk-1-1.png index 1aaa0d7d237db1e0a5bc40d499b8457f1027627b..979b85999eb4a09dc59d15f3804b557b5a46f935 100644 GIT binary patch literal 19910 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 literal 18042 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 literal 17913 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 Ch0G%W diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml index 9494fce..290490f 100644 --- a/docs/pkgdown.yml +++ b/docs/pkgdown.yml @@ -10,5 +10,5 @@ articles: PELT_and_SegNeigh: PELT_and_SegNeigh.html substring_and_gregexpr: substring_and_gregexpr.html testComplexity: testComplexity.html -last_built: 2020-08-23T07:58Z +last_built: 2020-08-23T08:41Z diff --git a/vignettes/testComplexity.Rmd b/vignettes/testComplexity.Rmd index 5a8f208..365127f 100644 --- a/vignettes/testComplexity.Rmd +++ b/vignettes/testComplexity.Rmd @@ -202,17 +202,18 @@ The call stack (sequence of calls that lead to the error) is returned via a call ### [Plotters](https://anirban166.github.io/testComplexity/reference/index.html#section-plotters) These functions are for plotting the metrics returned by the quantifiers, in case the user still prefers to diagnose the obtained complexity result via the traditional method, with a visual representation of the benchmarked data. Considering the columns from the data frames returned by the quantiftying functions, the user can create plots for: -- Timings vs Data sizes, via `plotTimings`: +- Timings vs Data sizes, via `plotTimings`:
```{r echo=TRUE, fig.show='hold', warning=FALSE} library(testComplexity) df <- asymptoticTimings(PeakSegOptimal::PeakSegPDPA(rpois(N, 1), max.segments = 3L), data.sizes = 10^seq(1, 4)) -plotTimings(df, titles = list("Timings", "PeakSegOptimal::PeakSegPDPA"), line.color = "#ffec1b", point.color = "#ffec1b", line.size = 1, point.size = 1.5) + hrbrthemes::theme_ft_rc() +plotTimings(df, titles = list("Timings", "PeakSegOptimal::PeakSegPDPA"), line.color = "orange", point.color = "black", line.size = 1, point.size = 1.5) ``` -- Memory Allocations vs Data sizes, via `plotMemoryUsage`: + +- Memory Allocations vs Data sizes, via `plotMemoryUsage`:
```{r echo=TRUE, fig.show='hold', warning=FALSE} library(testComplexity) df <- asymptoticMemoryUsage(PeakSegOptimal::PeakSegPDPA(rpois(N, 1), max.segments = 3L), data.sizes = 10^seq(1, 4, by = 0.1)) -plotMemoryUsage(df, titles = list("Memory usage", "PeakSegOptimal::PeakSegPDPA"), line.color = "#ffec1b", point.color = "#ffec1b", line.size = 1, point.size = 1.5) + hrbrthemes::theme_ft_rc() +plotMemoryUsage(df, titles = list("Memory usage", "PeakSegOptimal::PeakSegPDPA"), line.color = "orange", point.color = "black", line.size = 1, point.size = 1.5) ``` -------------------------------------------------------------------------------------------------