[med-svn] [r-cran-scales] 03/07: New upstream version 0.5.0

Andreas Tille tille at debian.org
Wed Oct 25 06:25:00 UTC 2017


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository r-cran-scales.

commit c05a0562018425904b22ab416a9a74d664f42c71
Author: Andreas Tille <tille at debian.org>
Date:   Wed Oct 25 08:13:14 2017 +0200

    New upstream version 0.5.0
---
 DESCRIPTION                        |  12 +--
 MD5                                | 174 +++++++++++++++++++------------------
 NAMESPACE                          |  16 +++-
 NEWS.md                            |  13 +++
 R/RcppExports.R                    |   6 +-
 R/bounds.r                         |  94 ++++++++++++++++++--
 R/breaks.r                         |  39 +++++++++
 R/pal-viridis.r                    |  15 ++++
 R/range.r                          |  27 +++---
 R/scales.r                         |   1 -
 R/trans-numeric.r                  |   6 +-
 R/trans.r                          |  19 +++-
 build/partial.rdb                  | Bin 7869 -> 8041 bytes
 man/{Range-class.Rd => Range.Rd}   |  15 ++--
 man/abs_area.Rd                    |   1 -
 man/alpha.Rd                       |   1 -
 man/area_pal.Rd                    |   1 -
 man/as.trans.Rd                    |   1 -
 man/asn_trans.Rd                   |   1 -
 man/atanh_trans.Rd                 |   1 -
 man/boxcox_trans.Rd                |   1 -
 man/brewer_pal.Rd                  |   1 -
 man/cbreaks.Rd                     |   1 -
 man/censor.Rd                      |   1 -
 man/col2hcl.Rd                     |   1 -
 man/col_numeric.Rd                 |   4 +-
 man/colour_ramp.Rd                 |   1 -
 man/comma_format.Rd                |   3 +-
 man/cscale.Rd                      |   1 -
 man/date_breaks.Rd                 |   1 -
 man/date_format.Rd                 |   1 -
 man/date_trans.Rd                  |   1 -
 man/dichromat_pal.Rd               |   1 -
 man/discard.Rd                     |   1 -
 man/div_gradient_pal.Rd            |   1 -
 man/dollar_format.Rd               |   3 +-
 man/dscale.Rd                      |   1 -
 man/exp_trans.Rd                   |   1 -
 man/expand_range.Rd                |   1 -
 man/extended_breaks.Rd             |   1 -
 man/format_format.Rd               |   1 -
 man/fullseq.Rd                     |   1 -
 man/gradient_n_pal.Rd              |   1 -
 man/grey_pal.Rd                    |   1 -
 man/hms_trans.Rd                   |   1 -
 man/hue_pal.Rd                     |   1 -
 man/identity_pal.Rd                |   1 -
 man/identity_trans.Rd              |   1 -
 man/linetype_pal.Rd                |   1 -
 man/log1p_trans.Rd                 |   1 -
 man/log_breaks.Rd                  |   1 -
 man/log_trans.Rd                   |   3 +-
 man/manual_pal.Rd                  |   1 -
 man/math_format.Rd                 |   1 -
 man/muted.Rd                       |   1 -
 man/ordinal_format.Rd              |   3 +-
 man/package-scales.Rd              |   3 +-
 man/parse_format.Rd                |   1 -
 man/percent_format.Rd              |   3 +-
 man/pretty_breaks.Rd               |   1 -
 man/probability_trans.Rd           |   3 +-
 man/reciprocal_trans.Rd            |   1 -
 man/regular_minor_breaks.Rd        |  23 +++++
 man/rescale.Rd                     |  33 +++++--
 man/rescale_max.Rd                 |   1 -
 man/rescale_mid.Rd                 |  33 +++++--
 man/rescale_none.Rd                |   1 -
 man/rescale_pal.Rd                 |   1 -
 man/reverse_trans.Rd               |   1 -
 man/scientific_format.Rd           |   3 +-
 man/seq_gradient_pal.Rd            |   1 -
 man/shape_pal.Rd                   |   1 -
 man/show_col.Rd                    |   1 -
 man/sqrt_trans.Rd                  |   1 -
 man/squish.Rd                      |   1 -
 man/squish_infinite.Rd             |   1 -
 man/time_trans.Rd                  |   1 -
 man/train_continuous.Rd            |   1 -
 man/train_discrete.Rd              |   1 -
 man/trans_breaks.Rd                |   1 -
 man/trans_format.Rd                |   1 -
 man/trans_new.Rd                   |  10 ++-
 man/trans_range.Rd                 |   1 -
 man/unit_format.Rd                 |   1 -
 man/viridis_pal.Rd                 |  36 ++++++++
 man/wrap_format.Rd                 |   1 -
 man/zero_range.Rd                  |   1 -
 src/RcppExports.cpp                |  18 +++-
 tests/testthat/test-bounds.r       |  48 ++++++++--
 tests/testthat/test-breaks-minor.r |  17 ++++
 90 files changed, 510 insertions(+), 232 deletions(-)

diff --git a/DESCRIPTION b/DESCRIPTION
index 7b2340a..c41458e 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,5 +1,5 @@
 Package: scales
-Version: 0.4.1
+Version: 0.5.0
 Authors at R: c(
     person("Hadley", "Wickham", , "hadley at rstudio.com", c("aut", "cre")),
     person("RStudio", role = "cph")
@@ -12,16 +12,16 @@ URL: https://github.com/hadley/scales
 BugReports: https://github.com/hadley/scales/issues
 Depends: R (>= 2.13)
 Imports: RColorBrewer, dichromat, plyr, munsell (>= 0.2), labeling,
-        methods, Rcpp
+        Rcpp, R6, viridisLite
 LinkingTo: Rcpp
-Suggests: testthat (>= 0.8), covr, hms
+Suggests: testthat (>= 0.8), bit64, covr, hms
 License: MIT + file LICENSE
 LazyLoad: yes
-RoxygenNote: 5.0.1
+RoxygenNote: 6.0.1
 NeedsCompilation: yes
-Packaged: 2016-11-08 19:11:18 UTC; hadley
+Packaged: 2017-08-23 21:21:31 UTC; Kara
 Author: Hadley Wickham [aut, cre],
   RStudio [cph]
 Maintainer: Hadley Wickham <hadley at rstudio.com>
 Repository: CRAN
-Date/Publication: 2016-11-09 18:28:56
+Date/Publication: 2017-08-24 14:35:38 UTC
diff --git a/MD5 b/MD5
index d162f92..8ef7705 100644
--- a/MD5
+++ b/MD5
@@ -1,10 +1,10 @@
-c536e7133a4fa851a6b4ac8e4bd14a15 *DESCRIPTION
+bb7e17bf0f58fe6c9eb060c971a5bfa4 *DESCRIPTION
 5a2ffc012eac074809a07ea440f872a8 *LICENSE
-be44277821c49763aa25b83f432558d1 *NAMESPACE
-3136bda62246a3b53b0aa4a5d99ab225 *NEWS.md
-0d76afc3c33539e2dc7e7cc8be391b61 *R/RcppExports.R
-b11eaa73b921a7f0ca0b9ce412d516c8 *R/bounds.r
-5dd1522b6c00411c8633cd8715a1b82b *R/breaks.r
+21dc6db35bca4d6731677e8264827b0e *NAMESPACE
+9dcbbdb3c657739e0dda756d86a1a224 *NEWS.md
+45d9b1de49cba68e43bef09780676a9b *R/RcppExports.R
+f3265470599f7082b8126eb870035fd9 *R/bounds.r
+4f19c8fdcde2baeba34b9a74aa142492 *R/breaks.r
 6c5942a0484c6b218a1c0b10405ac1cb *R/colour-manip.r
 4a57e7d2f12a3e7aa60e8e09b0a70f66 *R/colour-mapping.r
 2bfecd87cf7c8abc88ca53b3e1f1b31c *R/date-time.r
@@ -22,94 +22,98 @@ a4c1f8acacabe7943df7173df7fe0633 *R/pal-linetype.r
 d6b7f3fb2fa5b7e87e6fe15d2869d112 *R/pal-manual.r
 8cf6ec1effbef4498ee7d88ce0cbe9e2 *R/pal-rescale.r
 58a8a345646e7034a6558e481defc8d6 *R/pal-shape.r
-6c4b15dde8f951ed9b35431756af8cb8 *R/range.r
+1b53da4e247a42eadb7c58def84bd965 *R/pal-viridis.r
+235bffca636f7f6e3d66ba146407211f *R/range.r
 abfb1b0f1687bcdc75a9e524ce9b53d1 *R/scale-continuous.r
 589b692ac75251c106e363ede654a0e5 *R/scale-discrete.r
-9637a3d24c3c74a814043f55e6591fd9 *R/scales.r
+1ccee0bbe83b1306707c4a5072234f42 *R/scales.r
 77efc0b51a13061ab72f0a8e5b2cf197 *R/trans-date.r
-3f1ec156f1cb24f09643e4d02b68d393 *R/trans-numeric.r
-62abc8fd73c997d6e5e2312681b21086 *R/trans.r
+19031b92f53084050230469f28521b0b *R/trans-numeric.r
+539c3e75a8b9ad0bf7b22c1c2c35665a *R/trans.r
 1386600336f4bc1d5c4afd74fd7e0f4d *README.md
-c0df82949b2d936e58e8cf174eeca40e *build/partial.rdb
-9cebb6e1cc6446e15fb87de481b439b5 *man/Range-class.Rd
-cf7164e82a4551cd5b80b42025724922 *man/abs_area.Rd
-96882bfa6056c0ea536a068734ffee38 *man/alpha.Rd
-ace025b2b0329b6ea69fd97a17063290 *man/area_pal.Rd
-fb75161f2ce5819749861f0d1b1dce3a *man/as.trans.Rd
-0cbf691d42ffcf0ca7b4fa9d89d814ce *man/asn_trans.Rd
-593f19f0f7495168c6093630495f861e *man/atanh_trans.Rd
-c77b396cb70939d863b75c2e5479c148 *man/boxcox_trans.Rd
-f0256dc779d1a7813356cd2dbde38caf *man/brewer_pal.Rd
-7973693419128c1c1729d4ee9e6b3462 *man/cbreaks.Rd
-75ae2a67fb1ad84826f27622abd0eb00 *man/censor.Rd
-ddddab4e28bc0b4460bfd61162adc1ea *man/col2hcl.Rd
-d6e7c33c2b7bc51ea2d8144e1bcc541e *man/col_numeric.Rd
-fb8e4e4eb380ff3f7a74b19c97ed8e58 *man/colour_ramp.Rd
-b3128c47d8f5c68d01b0263955e7081c *man/comma_format.Rd
-75650f2c20aa38b63031c6b01ec8ac1c *man/cscale.Rd
-57513d736051a95413f30197aeacb135 *man/date_breaks.Rd
-3399ee5dd07bd5cf7c91f72fbf8ce937 *man/date_format.Rd
-c515b3af1cd1f596dea26477b7856ffc *man/date_trans.Rd
-8c7e64b699fbb79fbb49a53a49a8d532 *man/dichromat_pal.Rd
-4e316acac9c4ccc7b852c561db901597 *man/discard.Rd
-8caeef8d9bc313fe777c570fd193d208 *man/div_gradient_pal.Rd
-25c6eec1cd5f84d9ee1323bf258bba56 *man/dollar_format.Rd
-9afe9ab4271756529e2001bdf1cdfae4 *man/dscale.Rd
-c5446cba677e2fff62fb402a1ba4c65a *man/exp_trans.Rd
-c085b2a058fdd6eb72ad499005d160c4 *man/expand_range.Rd
-d0783e1c6cbc8d00b8e149ff46cc2a30 *man/extended_breaks.Rd
-62cad068ce4dd354f68863c57ae5bc5a *man/format_format.Rd
-ae1ce88897cf6c70bee1d889cd028190 *man/fullseq.Rd
-e2d157eb9a85701dc727829115d3cc8a *man/gradient_n_pal.Rd
-8789d74a00daa4b600f205a9ff150ef0 *man/grey_pal.Rd
-ce44f002c4ceda67dffba83725c06ee9 *man/hms_trans.Rd
-ac05a22cba58a6004560d7faa1e089fd *man/hue_pal.Rd
-3a183825c2e46c22ea9f738be7c4e2cd *man/identity_pal.Rd
-334a28ff9d31a4c4bafd637ab22cebf3 *man/identity_trans.Rd
-d02fe4b0fa7f519fdb7c9a6c33bc057d *man/linetype_pal.Rd
-e21c4272d12b7186a273eff08300a413 *man/log1p_trans.Rd
-0df93d5276542f986e00dc424e21a5bf *man/log_breaks.Rd
-28b6b760f1a307f76dda59407d2fb4ad *man/log_trans.Rd
-e935faa48f42369af11e3e3942b03607 *man/manual_pal.Rd
-20284d8dd67564f838e11bdfebbf0bd8 *man/math_format.Rd
-5059a7029cc84d90f7b02d36369ed14f *man/muted.Rd
-b19e24b58aecd76a2b8021003b58fb5d *man/ordinal_format.Rd
-d1457d632a91e2e8773ce1fa871fbab2 *man/package-scales.Rd
-e45d8c20d5e5ff37409989ad5c730382 *man/parse_format.Rd
-1f99e330efa1a610b46d51dd40ed1a13 *man/percent_format.Rd
-7d1f9c7d88de751eeea3f2b82367f77e *man/pretty_breaks.Rd
-cc9c0f7f6d250cd3f0f5746a63ea0745 *man/probability_trans.Rd
-51208b85e09a5467d3366ca5031be371 *man/reciprocal_trans.Rd
-3070c59456ca1b663088c6fcda017f8b *man/rescale.Rd
-e19830a6384b3eb8a9e5f2a940159436 *man/rescale_max.Rd
-db815f8eb56f6350ae567c14bb42ef66 *man/rescale_mid.Rd
-3af70efd513587e6eb9f2d255667d914 *man/rescale_none.Rd
-eeb3100220dd856a20bc665d2e8272be *man/rescale_pal.Rd
-d559d1a58999f12087878b6e3c5d1a76 *man/reverse_trans.Rd
-95fa00d20a410bf1cf63f07fcd46d25f *man/scientific_format.Rd
-2eb00f2a459f9bedd4accec0025b099f *man/seq_gradient_pal.Rd
-2e53f06e9802c200a3b1bc5a212562ba *man/shape_pal.Rd
-cbc7b40e6922f8d7d3ded0e7f79d22b0 *man/show_col.Rd
-f5097c06dadbc32103b01a846899f6b1 *man/sqrt_trans.Rd
-0376ff9300898a3cc3d19b4735bbd447 *man/squish.Rd
-70f53a5242b480a25411d156f5fbf24a *man/squish_infinite.Rd
-192635ddd9b1a2ff6cd0a64447127210 *man/time_trans.Rd
-2e9b19fddb8f762acbd357759f77049c *man/train_continuous.Rd
-311128aaca1b09b5eb4858fc0b8880c4 *man/train_discrete.Rd
-17078f916904432680cea7e716d65cae *man/trans_breaks.Rd
-4a9b85fe979a0ec1ca40cdcd1555f73a *man/trans_format.Rd
-aac3ecd802efcede4a24a1735d6520ef *man/trans_new.Rd
-a4c05123a59924a6b3e9bc02ee5c8bbe *man/trans_range.Rd
-5f0cade40a6995b50a1d1fd969b4764d *man/unit_format.Rd
-04e34ca3cedbb591e96244b0068dd6ea *man/wrap_format.Rd
-3086e5a29c13333160634a6b8147ea18 *man/zero_range.Rd
-f3983f4241cd06de6427edb3e53a3ecb *src/RcppExports.cpp
+91f3d2b15c7986607ff5363ffc82c136 *build/partial.rdb
+e960aeea59e5785c03ec7d539e5064b7 *man/Range.Rd
+a143f766fadeb7004d27772730837955 *man/abs_area.Rd
+5b771962edc19bf1c4c0fe1da257d9ab *man/alpha.Rd
+3c9ad78a6366d63b3b545b41a114f57d *man/area_pal.Rd
+51046cf445ec3d0e1c21fe5345013d13 *man/as.trans.Rd
+0bd187febee73a93bc0930ff8864b4d3 *man/asn_trans.Rd
+942f1cb05d0fd33bedbec2f2168c33f8 *man/atanh_trans.Rd
+7501e4c47db21ec8e50f86c3f5677504 *man/boxcox_trans.Rd
+bf5d724a2225f9099c5bbb9caaa000ef *man/brewer_pal.Rd
+c6bb712c014caa883e2b52c60facf6d6 *man/cbreaks.Rd
+6f865bfb28147e39dc1e005d88708905 *man/censor.Rd
+4b6f674f19423b0f1503d2091dc90b9e *man/col2hcl.Rd
+aee7e13f7987ceaf353bfbb0d35cbf8f *man/col_numeric.Rd
+da54e93f1953f814e05c64adaa6e6aaa *man/colour_ramp.Rd
+c5d300ecd1947894c9e6add2aa6ad54f *man/comma_format.Rd
+42a2b39e94a28054d8c1525b1817a586 *man/cscale.Rd
+d819416ec7146602723c45ad817f8b16 *man/date_breaks.Rd
+0643dfcc790518dfc588054bc8a3fe45 *man/date_format.Rd
+0f848f858c831e645100cbdc2b105bc7 *man/date_trans.Rd
+5d8909784c1daf22b0b356643c0549c7 *man/dichromat_pal.Rd
+286890abf9cb397ce5f334cbddf165fd *man/discard.Rd
+0b0dff89262b0ef3044632bc2c3baf03 *man/div_gradient_pal.Rd
+a318b237093e8218b434642356d1460d *man/dollar_format.Rd
+a659db7c5108be4bb04583b7fcb0e060 *man/dscale.Rd
+6512ff996494e76c2a22e17bbd2f391a *man/exp_trans.Rd
+89823c481ecc3ba5f92c6cf8134fb224 *man/expand_range.Rd
+ded1e6dd7787fdd336eddf3c9632c555 *man/extended_breaks.Rd
+273bb64ba1e7e0bd53dc1ccbcc791dcf *man/format_format.Rd
+b24a64bdf91ffaf48638f30457a9a3aa *man/fullseq.Rd
+8c9f52f2c8caa4cca3034962c2e4d4bd *man/gradient_n_pal.Rd
+9bcff3ccdcf08a21faf2691ba4342d64 *man/grey_pal.Rd
+085d07253dd27880aee5b3cc4b473b17 *man/hms_trans.Rd
+e3a055014ae892b78878dbd265245c8c *man/hue_pal.Rd
+fa000569ad9743d144b97a9dc10a30c2 *man/identity_pal.Rd
+fc73bc1a6045bd4bb2838b799904b928 *man/identity_trans.Rd
+56355fbfe52a570286a2187caad97161 *man/linetype_pal.Rd
+17e8580fa4b543529526a160d1d19ab7 *man/log1p_trans.Rd
+62932d4e16459a3a68c2393850207218 *man/log_breaks.Rd
+372501ebff80335927418d51723aa7fd *man/log_trans.Rd
+5fee45515c493bdae29ae9b58ad26c94 *man/manual_pal.Rd
+75942253a0c83e7df20aad7d57c6674b *man/math_format.Rd
+7da73d6a111314c5b34d6bfdfd5482d8 *man/muted.Rd
+7c70f3d3fb73f5fc0c13924c1c9f6c26 *man/ordinal_format.Rd
+21a18c78aa327d7ab22139feeb68a7f9 *man/package-scales.Rd
+32d22f69a169d07da12f5e4a5916cd1c *man/parse_format.Rd
+e94a0233432abe6ef89ceea03c4363f4 *man/percent_format.Rd
+6b611492dacca8f70cf65143cbda73fc *man/pretty_breaks.Rd
+f486bc364f59b6a465b0c51a8077df1e *man/probability_trans.Rd
+2eb728b9cfdb86d43ff04ba5519a9ba4 *man/reciprocal_trans.Rd
+b6579c0df88f115a382e3c003694f0ad *man/regular_minor_breaks.Rd
+632b2afcce7cf202d67a3169ed2e7caf *man/rescale.Rd
+dd8d919f00d419e6580f2d6bdd42a4c6 *man/rescale_max.Rd
+6b38a393b57dcaa06ed8f48760499c6f *man/rescale_mid.Rd
+523c1c3d4420f9940edff7ac3cb42290 *man/rescale_none.Rd
+48cf3f041266b047e8666a297585b471 *man/rescale_pal.Rd
+481ccee1e6f8f750398bf589df6438bc *man/reverse_trans.Rd
+0bdd43f4847ec185968c278bf7a5411b *man/scientific_format.Rd
+bd95599bf4eadd56b016e8eff70a44fd *man/seq_gradient_pal.Rd
+cf6817de3c36b57c8be764722e0ab7a0 *man/shape_pal.Rd
+8223dcf047091e96fbd9d4af44ccf894 *man/show_col.Rd
+51eb8f0f50040ef782ab3063b58290bb *man/sqrt_trans.Rd
+692d3a327da1cce9e9e457c1438f0855 *man/squish.Rd
+eb50452ed9f4ac7f536f861086a49f37 *man/squish_infinite.Rd
+998b225feb6311828125eb909fb0ab9c *man/time_trans.Rd
+8af93864036e45e011e0288150c0e574 *man/train_continuous.Rd
+2f6bd2c10e0f2073b5dff0a7c9c2a5df *man/train_discrete.Rd
+289f9dee4095c0678ffd8ee8ddb9fd50 *man/trans_breaks.Rd
+2eaf34121713fb5c881cc6ebfc80572f *man/trans_format.Rd
+764d8e6bf14fc755e2c102cb24bd7bd3 *man/trans_new.Rd
+d2385f74fbbed665403072edbbc3a980 *man/trans_range.Rd
+464f92ee3ce93fad8fb794b537be1a70 *man/unit_format.Rd
+50c65a8393d1b32bd8cbe6e652c2ba97 *man/viridis_pal.Rd
+348b475f786b7da72c2677152cec3899 *man/wrap_format.Rd
+710ff73a1292b593f1bf24fc8f261064 *man/zero_range.Rd
+b5725c008a144f333f1f94a94876c86a *src/RcppExports.cpp
 50b694b150f1cc631e68e0c471b1737b *src/colors.cpp
 1bc97669868c55fc86b10bffb2010b63 *tests/testthat.R
 9b1f7ff67006d13e255f222feba5ee9e *tests/testthat/test-alpha.r
-210d4b72f91809cb8c82a36d60eff279 *tests/testthat/test-bounds.r
+e1b0934110ab4e19d15a4a2aa1eb2865 *tests/testthat/test-bounds.r
 9d3de74dea77f40ad053834c04b824be *tests/testthat/test-breaks-extended.R
 b5bb7a6051319394602be12701d8b845 *tests/testthat/test-breaks-log.r
+051d2a442a202d5315680d48bce97596 *tests/testthat/test-breaks-minor.r
 361eca6c9ef2ec2361364c81ff4a39cc *tests/testthat/test-colors.r
 fa5466f6b3cf5c5e7dd187b32c049408 *tests/testthat/test-colour-ramp.R
 1251432e702c697a211f0117e340051e *tests/testthat/test-discrete.R
diff --git a/NAMESPACE b/NAMESPACE
index 9dafe0e..18c4e7e 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -4,6 +4,18 @@ S3method(fullseq,Date)
 S3method(fullseq,POSIXt)
 S3method(fullseq,numeric)
 S3method(print,trans)
+S3method(rescale,"NULL")
+S3method(rescale,Date)
+S3method(rescale,POSIXt)
+S3method(rescale,integer64)
+S3method(rescale,logical)
+S3method(rescale,numeric)
+S3method(rescale_mid,"NULL")
+S3method(rescale_mid,Date)
+S3method(rescale_mid,POSIXt)
+S3method(rescale_mid,integer64)
+S3method(rescale_mid,logical)
+S3method(rescale_mid,numeric)
 export(ContinuousRange)
 export(DiscreteRange)
 export(abs_area)
@@ -65,6 +77,7 @@ export(pretty_breaks)
 export(probability_trans)
 export(probit_trans)
 export(reciprocal_trans)
+export(regular_minor_breaks)
 export(rescale)
 export(rescale_max)
 export(rescale_mid)
@@ -87,6 +100,7 @@ export(trans_format)
 export(trans_new)
 export(trans_range)
 export(unit_format)
+export(viridis_pal)
 export(wrap_format)
 export(zero_range)
 importFrom(Rcpp,evalCpp)
@@ -94,8 +108,6 @@ importFrom(graphics,par)
 importFrom(graphics,plot)
 importFrom(graphics,rect)
 importFrom(graphics,text)
-importFrom(methods,new)
-importFrom(methods,setRefClass)
 importFrom(munsell,mnsl)
 importFrom(plyr,is.discrete)
 importFrom(plyr,round_any)
diff --git a/NEWS.md b/NEWS.md
index 4b135f0..4629cbc 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,3 +1,16 @@
+# scales 0.5.0
+
+* New function `regular_minor_breaks()` calculates minor breaks as a property
+  of the transformation (@karawoo).
+
+* Adds `viridis_pal()` for creating palettes with color maps from the
+  viridisLite package (@karawoo).
+
+* Switched from reference classes to R6 (#96).
+
+* `rescale()` and `rescale_mid()` are now S3 generics, and work with `numeric`,
+  `Date`, `POSIXct`, `POSIXlt` and `bit64::integer64` objects (@zeehio, #74).
+
 # scales 0.4.1
 
 * `extended_breaks()` no longer fails on pathological inputs
diff --git a/R/RcppExports.R b/R/RcppExports.R
index c749b81..8d672b8 100644
--- a/R/RcppExports.R
+++ b/R/RcppExports.R
@@ -2,14 +2,14 @@
 # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393
 
 doColorRamp <- function(colors, x, alpha, naColor) {
-    .Call('scales_doColorRamp', PACKAGE = 'scales', colors, x, alpha, naColor)
+    .Call('_scales_doColorRamp', PACKAGE = 'scales', colors, x, alpha, naColor)
 }
 
 rgbToLab <- function(rgb) {
-    .Call('scales_rgbToLab', PACKAGE = 'scales', rgb)
+    .Call('_scales_rgbToLab', PACKAGE = 'scales', rgb)
 }
 
 rgbToXyz <- function(rgb) {
-    .Call('scales_rgbToXyz', PACKAGE = 'scales', rgb)
+    .Call('_scales_rgbToXyz', PACKAGE = 'scales', rgb)
 }
 
diff --git a/R/bounds.r b/R/bounds.r
index 5407f08..c18cc58 100644
--- a/R/bounds.r
+++ b/R/bounds.r
@@ -1,42 +1,120 @@
-#' Rescale numeric vector to have specified minimum and maximum.
+#' Rescale continuous vector to have specified minimum and maximum.
 #'
-#' @param x numeric vector of values to manipulate.
+#' @param x continuous vector of values to manipulate.
 #' @param to output range (numeric vector of length two)
-#' @param from input range (numeric vector of length two).  If not given, is
+#' @param from input range (vector of length two).  If not given, is
 #'   calculated from the range of \code{x}
+#' @param ... other arguments passed on to methods
 #' @keywords manip
 #' @export
 #' @examples
 #' rescale(1:100)
 #' rescale(runif(50))
 #' rescale(1)
-rescale <- function(x, to = c(0, 1), from = range(x, na.rm = TRUE, finite = TRUE)) {
+rescale <- function(x, to, from, ...) {
+  UseMethod("rescale")
+}
+
+
+#' @rdname rescale
+#' @export
+rescale.numeric <- function(x, to = c(0, 1), from = range(x, na.rm = TRUE, finite = TRUE), ...) {
   if (zero_range(from) || zero_range(to)) {
     return(ifelse(is.na(x), NA, mean(to)))
   }
+  (x - from[1]) / diff(from) * diff(to) + to[1]
+}
+
+#' @export
+rescale.NULL <- function(...)  NULL
+
+#' @rdname rescale
+#' @export
+rescale.logical <- rescale.numeric
+
+#' @rdname rescale
+#' @export
+rescale.POSIXt <- function(x, to = c(0, 1), from = range(x, na.rm = TRUE, finite = TRUE), ...) {
+  x <- as.numeric(x)
+  from <- as.numeric(from)
+  rescale.numeric(x = x, to = to, from = from)
+}
+
+#' @rdname rescale
+#' @export
+rescale.Date <- rescale.POSIXt
 
+#' @rdname rescale
+#' @export
+rescale.integer64 <- function(x, to = c(0, 1), from = range(x, na.rm = TRUE), ...) {
+  if (zero_range(from, tol = 0) || zero_range(to)) {
+    return(ifelse(is.na(x), NA, mean(to)))
+  }
   (x - from[1]) / diff(from) * diff(to) + to[1]
 }
 
-#' Rescale numeric vector to have specified minimum, midpoint, and maximum.
+
+#' Rescale vector to have specified minimum, midpoint, and maximum.
 #'
 #' @export
-#' @param x numeric vector of values to manipulate.
+#' @param x vector of values to manipulate.
 #' @param to output range (numeric vector of length two)
-#' @param from input range (numeric vector of length two).  If not given, is
+#' @param from input range (vector of length two).  If not given, is
 #'   calculated from the range of \code{x}
 #' @param mid mid-point of input range
+#' @param ... other arguments passed on to methods
 #' @examples
 #' rescale_mid(1:100, mid = 50.5)
 #' rescale_mid(runif(50), mid = 0.5)
 #' rescale_mid(1)
-rescale_mid <- function(x, to = c(0, 1), from = range(x, na.rm = TRUE), mid = 0) {
+rescale_mid <- function(x, to, from, mid, ...) {
+  UseMethod("rescale_mid")
+}
+
+#' @rdname rescale_mid
+#' @export
+rescale_mid.numeric <- function(x, to = c(0, 1), from = range(x, na.rm = TRUE), mid = 0, ...) {
   if (zero_range(from) || zero_range(to)) return(rep(mean(to), length(x)))
 
   extent <- 2 * max(abs(from - mid))
   (x - mid) / extent * diff(to) + mean(to)
 }
 
+#' @export
+rescale_mid.NULL <- function(...) NULL
+
+#' @rdname rescale_mid
+#' @export
+rescale_mid.logical <- rescale_mid.numeric
+
+#' @rdname rescale_mid
+#' @export
+rescale_mid.POSIXt <- function(x, to = c(0, 1), from = range(x, na.rm = TRUE),
+                               mid, ...) {
+  x <- as.numeric(as.POSIXct(x))
+  if (!is.numeric(from)) {
+    from <- as.numeric(as.POSIXct(from))
+  }
+  if (!is.numeric(mid)) {
+    mid <- as.numeric(as.POSIXct(mid))
+  }
+  rescale_mid.numeric(x = x, to = to, from = from, mid = mid)
+}
+
+#' @rdname rescale_mid
+#' @export
+rescale_mid.Date <- rescale_mid.POSIXt
+
+#' @rdname rescale_mid
+#' @export
+rescale_mid.integer64 <- function(x, to = c(0, 1), from = range(x, na.rm = TRUE), mid = 0, ...) {
+  if (zero_range(from, tol = 0) || zero_range(to)) return(rep(mean(to), length(x)))
+
+  extent <- 2 * max(abs(from - mid))
+  (x - mid) / extent * diff(to) + mean(to)
+}
+
+
 #' Rescale numeric vector to have specified maximum.
 #'
 #' @export
diff --git a/R/breaks.r b/R/breaks.r
index 2e4e701..474893b 100644
--- a/R/breaks.r
+++ b/R/breaks.r
@@ -150,3 +150,42 @@ cbreaks <- function(range, breaks = extended_breaks(), labels = scientific_forma
 
   list(breaks = breaks, labels = labels)
 }
+
+#' Minor breaks
+#' Places minor breaks between major breaks.
+#'
+#' @param reverse if TRUE, calculates the minor breaks for a reversed scale
+#' @export
+#' @examples
+#' m <- extended_breaks()(c(1, 10))
+#' regular_minor_breaks()(m, c(1, 10), n = 2)
+#' 
+#' n <- extended_breaks()(c(0, -9))
+#' regular_minor_breaks(reverse = TRUE)(n, c(0, -9), n = 2)
+regular_minor_breaks <- function(reverse = FALSE) {
+  function(b, limits, n) {
+    b <- b[!is.na(b)]
+    if (length(b) < 2) return()
+
+    bd <- diff(b)[1]
+
+    # Allow minor breaks to extend outside major breaks towards limits
+    if (!reverse) {
+      if (min(limits) < min(b)) b <- c(b[1] - bd, b)
+      if (max(limits) > max(b)) b <- c(b, b[length(b)] + bd)
+    } else {
+      if (max(limits) > max(b)) b <- c(b[1] - bd, b)
+      if (min(limits) < min(b)) b <- c(b, b[length(b)] + bd)
+    }
+
+    # Find minor breaks between major breaks
+    seq_between <- function(a, b) {
+      seq(a, b, length.out = n + 1)[-(n + 1)]
+    }
+    breaks <- unlist(Map(seq_between, b[-length(b)], b[-1]))
+
+    # Add the final break back
+    breaks <- c(breaks, b[length(b)])
+    breaks
+  }
+}
diff --git a/R/pal-viridis.r b/R/pal-viridis.r
new file mode 100644
index 0000000..85dafd3
--- /dev/null
+++ b/R/pal-viridis.r
@@ -0,0 +1,15 @@
+#' Viridis palette
+#' 
+#' @inheritParams viridisLite::viridis
+#' @references \url{https://bids.github.io/colormap/}
+#' @export
+#' @examples
+#' show_col(viridis_pal()(10))
+#' show_col(viridis_pal(direction = -1)(6))
+#' show_col(viridis_pal(begin = 0.2, end = 0.8)(4))
+#' show_col(viridis_pal(option = "plasma")(6))
+viridis_pal <- function(alpha = 1, begin = 0, end = 1, direction = 1, option= "D") {
+  function(n) {
+    viridisLite::viridis(n, alpha, begin, end, direction, option)
+  }
+}
diff --git a/R/range.r b/R/range.r
index 20f0b94..4148b50 100644
--- a/R/range.r
+++ b/R/range.r
@@ -5,26 +5,29 @@
 #'
 #' @aliases DiscreteRange ContinuousRange
 #' @export DiscreteRange ContinuousRange
-Range <- methods::setRefClass("Range", fields = "range", methods = list(
+Range <- R6::R6Class("Range", list(
+  range = NULL,
   initialize = function() {
-    initFields(range = NULL)
+    self$range <- NULL
   })
 )
 
-DiscreteRange <- methods::setRefClass(
-  "DiscreteRange", contains = "Range",
-  methods = list(
+DiscreteRange <- R6::R6Class(
+  "DiscreteRange",
+  inherit = "Range",
+  list(
     train = function(x, drop = FALSE) {
-      range <<- train_discrete(x, range, drop)
+      self$range <- train_discrete(x, range, drop)
     },
-    reset = function() range <<- NULL
+    reset = function() self$range <- NULL
   )
 )
 
-ContinuousRange <- methods::setRefClass(
-  "Continuous", contains = "Range",
-  methods = list(
-    train = function(x) range <<- train_continuous(x, range),
-    reset = function() range <<- NULL
+ContinuousRange <- R6::R6Class(
+  "ContinuousRange",
+  inherit = "Range",
+  list(
+    train = function(x) self$range <- train_continuous(x, range),
+    reset = function() self$range <- NULL
   )
 )
diff --git a/R/scales.r b/R/scales.r
index a6961e5..082f0c1 100644
--- a/R/scales.r
+++ b/R/scales.r
@@ -4,7 +4,6 @@
 #' @name package-scales
 #' @aliases scales package-scales
 #' @useDynLib scales
-#' @importFrom methods setRefClass new
 #' @importFrom plyr round_any is.discrete
 #' @importFrom Rcpp evalCpp
 NULL
diff --git a/R/trans-numeric.r b/R/trans-numeric.r
index 15a02bc..5b02e6a 100644
--- a/R/trans-numeric.r
+++ b/R/trans-numeric.r
@@ -111,7 +111,11 @@ reciprocal_trans <- function() {
 #'
 #' @export
 reverse_trans <- function() {
-  trans_new("reverse", function(x) -x, function(x) -x)
+  trans_new(
+    "reverse",
+    function(x) -x,
+    function(x) -x,
+    minor_breaks = regular_minor_breaks(reverse = TRUE))
 }
 
 #' Square-root transformation.
diff --git a/R/trans.r b/R/trans.r
index 8d6354d..2de4373 100644
--- a/R/trans.r
+++ b/R/trans.r
@@ -14,6 +14,7 @@
 #'   inverse of the transformation
 #' @param breaks default breaks function for this transformation. The breaks
 #'   function is applied to the raw data.
+#' @param minor_breaks default minor breaks function for this transformation.
 #' @param format default format for this transformation. The format is applied
 #'   to breaks generated to the raw data.
 #' @param domain domain, as numeric vector of length 2, over which
@@ -21,13 +22,23 @@
 #' @seealso \Sexpr[results=rd,stage=build]{scales:::seealso_trans()}
 #' @export trans_new is.trans
 #' @aliases trans_new trans is.trans
-trans_new <- function(name, transform, inverse, breaks = extended_breaks(), format = format_format(), domain = c(-Inf, Inf)) {
+trans_new <- function(name, transform, inverse, breaks = extended_breaks(),
+                      minor_breaks = regular_minor_breaks(),
+                      format = format_format(), domain = c(-Inf, Inf)) {
   if (is.character(transform)) transform <- match.fun(transform)
   if (is.character(inverse)) inverse <- match.fun(inverse)
 
-  structure(list(name = name, transform = transform, inverse = inverse,
-    breaks = breaks, format = format, domain = domain),
-    class = "trans")
+  structure(
+    list(
+      name = name,
+      transform = transform,
+      inverse = inverse,
+      breaks = breaks,
+      minor_breaks = minor_breaks,
+      format = format,
+      domain = domain),
+    class = "trans"
+  )
 }
 
 is.trans <- function(x) inherits(x, "trans")
diff --git a/build/partial.rdb b/build/partial.rdb
index 5f59257..8f3bf41 100644
Binary files a/build/partial.rdb and b/build/partial.rdb differ
diff --git a/man/Range-class.Rd b/man/Range.Rd
similarity index 71%
rename from man/Range-class.Rd
rename to man/Range.Rd
index ad2a9b5..288f07a 100644
--- a/man/Range-class.Rd
+++ b/man/Range.Rd
@@ -1,14 +1,17 @@
 % Generated by roxygen2: do not edit by hand
 % Please edit documentation in R/range.r
-\docType{class}
-\name{Range-class}
-\alias{ContinuousRange}
-\alias{DiscreteRange}
+\docType{data}
+\name{Range}
 \alias{Range}
-\alias{Range-class}
+\alias{DiscreteRange}
+\alias{ContinuousRange}
 \title{Mutable ranges.}
+\format{An object of class \code{R6ClassGenerator} of length 24.}
+\usage{
+Range
+}
 \description{
 Mutable ranges have a two methods (\code{train} and \code{reset}), and
 make it possible to build up complete ranges with multiple passes.
 }
-
+\keyword{datasets}
diff --git a/man/abs_area.Rd b/man/abs_area.Rd
index 185f259..7708c1e 100644
--- a/man/abs_area.Rd
+++ b/man/abs_area.Rd
@@ -12,4 +12,3 @@ abs_area(max)
 \description{
 Point area palette (continuous), with area proportional to value.
 }
-
diff --git a/man/alpha.Rd b/man/alpha.Rd
index e0156e3..e4cd1d4 100644
--- a/man/alpha.Rd
+++ b/man/alpha.Rd
@@ -22,4 +22,3 @@ alpha("red", 0.1)
 alpha(colours(), 0.5)
 alpha("red", seq(0, 1, length.out = 10))
 }
-
diff --git a/man/area_pal.Rd b/man/area_pal.Rd
index 643f44d..d24678b 100644
--- a/man/area_pal.Rd
+++ b/man/area_pal.Rd
@@ -13,4 +13,3 @@ Should be greater than 0.}
 \description{
 Point area palette (continuous).
 }
-
diff --git a/man/as.trans.Rd b/man/as.trans.Rd
index ce2ceeb..8259dc9 100644
--- a/man/as.trans.Rd
+++ b/man/as.trans.Rd
@@ -12,4 +12,3 @@ as.trans(x)
 \description{
 Convert character string to transformer.
 }
-
diff --git a/man/asn_trans.Rd b/man/asn_trans.Rd
index 344b2ee..d23a8ad 100644
--- a/man/asn_trans.Rd
+++ b/man/asn_trans.Rd
@@ -9,4 +9,3 @@ asn_trans()
 \description{
 Arc-sin square root transformation.
 }
-
diff --git a/man/atanh_trans.Rd b/man/atanh_trans.Rd
index 2de78f7..168bb4f 100644
--- a/man/atanh_trans.Rd
+++ b/man/atanh_trans.Rd
@@ -9,4 +9,3 @@ atanh_trans()
 \description{
 Arc-tangent transformation.
 }
-
diff --git a/man/boxcox_trans.Rd b/man/boxcox_trans.Rd
index 459c87f..fe7f396 100644
--- a/man/boxcox_trans.Rd
+++ b/man/boxcox_trans.Rd
@@ -15,4 +15,3 @@ Box-Cox power transformation.
 \references{
 See \url{http://en.wikipedia.org/wiki/Power_transform} for
 }
-
diff --git a/man/brewer_pal.Rd b/man/brewer_pal.Rd
index d2cff02..2f67611 100644
--- a/man/brewer_pal.Rd
+++ b/man/brewer_pal.Rd
@@ -31,4 +31,3 @@ show_col(gradient_n_pal(cols)(seq(0, 1, length.out = 30)))
 \references{
 \url{http://colorbrewer2.org}
 }
-
diff --git a/man/cbreaks.Rd b/man/cbreaks.Rd
index 913d5a4..d6a123a 100644
--- a/man/cbreaks.Rd
+++ b/man/cbreaks.Rd
@@ -42,4 +42,3 @@ cbreaks(c(0, 100), breaks = c(15, 20, 80), labels = c(1.5, 2.0, 8.0))
 cbreaks(c(0, 100), breaks = c(15, 20, 80),
   labels = expression(alpha, beta, gamma))
 }
-
diff --git a/man/censor.Rd b/man/censor.Rd
index b79895e..c29deff 100644
--- a/man/censor.Rd
+++ b/man/censor.Rd
@@ -20,4 +20,3 @@ Censor any values outside of range.
 \examples{
 censor(c(-1, 0.5, 1, 2, NA))
 }
-
diff --git a/man/col2hcl.Rd b/man/col2hcl.Rd
index d94b730..9ad236e 100644
--- a/man/col2hcl.Rd
+++ b/man/col2hcl.Rd
@@ -24,4 +24,3 @@ to rgb.
 \examples{
 col2hcl(colors())
 }
-
diff --git a/man/col_numeric.Rd b/man/col_numeric.Rd
index f9d5899..57b5829 100644
--- a/man/col_numeric.Rd
+++ b/man/col_numeric.Rd
@@ -1,10 +1,11 @@
 % Generated by roxygen2: do not edit by hand
 % Please edit documentation in R/colour-mapping.r
 \name{col_numeric}
+\alias{col_numeric}
 \alias{col_bin}
+\alias{col_quantile}
 \alias{col_factor}
 \alias{col_numeric}
-\alias{col_quantile}
 \title{Color mapping}
 \usage{
 col_numeric(palette, domain, na.color = "#808080")
@@ -105,4 +106,3 @@ show_col(col_factor("RdYlBu", domain = NULL)(factor(LETTERS[1:5], levels=LETTERS
 # ...or the domain is stated explicitly.
 show_col(col_factor("RdYlBu", levels = LETTERS)(LETTERS[1:5]))
 }
-
diff --git a/man/colour_ramp.Rd b/man/colour_ramp.Rd
index 6dfbf4c..02e50ac 100644
--- a/man/colour_ramp.Rd
+++ b/man/colour_ramp.Rd
@@ -37,4 +37,3 @@ times faster, and provides results in \code{"#RRGGBB"} (or
 \seealso{
 \link[grDevices]{colorRamp}
 }
-
diff --git a/man/comma_format.Rd b/man/comma_format.Rd
index 3587c1a..b6bd25f 100644
--- a/man/comma_format.Rd
+++ b/man/comma_format.Rd
@@ -1,8 +1,8 @@
 % Generated by roxygen2: do not edit by hand
 % Please edit documentation in R/formatter.r
 \name{comma_format}
-\alias{comma}
 \alias{comma_format}
+\alias{comma}
 \title{Comma formatter: format number with commas separating thousands.}
 \usage{
 comma_format(...)
@@ -32,4 +32,3 @@ point <- format_format(big.mark = ".", decimal.mark = ",", scientific = FALSE)
 point(c(1, 1e3, 2000, 1e6))
 point(c(1, 1.021, 1000.01))
 }
-
diff --git a/man/cscale.Rd b/man/cscale.Rd
index fd4c188..6bf4f9c 100644
--- a/man/cscale.Rd
+++ b/man/cscale.Rd
@@ -34,4 +34,3 @@ with(mtcars, plot(disp, mpg, cex = cscale(hp, area_pal())))
 with(mtcars, plot(disp, mpg, pch = 20, cex = 5,
   col = cscale(hp, seq_gradient_pal("grey80", "black"))))
 }
-
diff --git a/man/date_breaks.Rd b/man/date_breaks.Rd
index 737fd4a..5da61e7 100644
--- a/man/date_breaks.Rd
+++ b/man/date_breaks.Rd
@@ -14,4 +14,3 @@ followed by "s".}
 \description{
 Regularly spaced dates.
 }
-
diff --git a/man/date_format.Rd b/man/date_format.Rd
index eb0c9e7..d7fe45b 100644
--- a/man/date_format.Rd
+++ b/man/date_format.Rd
@@ -16,4 +16,3 @@ to UTC}
 \description{
 Formatted dates.
 }
-
diff --git a/man/date_trans.Rd b/man/date_trans.Rd
index b11a399..292d298 100644
--- a/man/date_trans.Rd
+++ b/man/date_trans.Rd
@@ -16,4 +16,3 @@ t$transform(years)
 t$inverse(t$transform(years))
 t$format(t$breaks(range(years)))
 }
-
diff --git a/man/dichromat_pal.Rd b/man/dichromat_pal.Rd
index 8cdfa2d..ce59ec5 100644
--- a/man/dichromat_pal.Rd
+++ b/man/dichromat_pal.Rd
@@ -21,4 +21,3 @@ show_col(dichromat_pal("BluetoOrange.10")(5))
 cols <- dichromat_pal("DarkRedtoBlue.12")(12)
 show_col(gradient_n_pal(cols)(seq(0, 1, length.out = 30)))
 }
-
diff --git a/man/discard.Rd b/man/discard.Rd
index 08b6bff..8e9b49e 100644
--- a/man/discard.Rd
+++ b/man/discard.Rd
@@ -17,4 +17,3 @@ Discard any values outside of range.
 \examples{
 discard(c(-1, 0.5, 1, 2, NA))
 }
-
diff --git a/man/div_gradient_pal.Rd b/man/div_gradient_pal.Rd
index fd0048e..69033f3 100644
--- a/man/div_gradient_pal.Rd
+++ b/man/div_gradient_pal.Rd
@@ -31,4 +31,3 @@ library(munsell)
 image(r, col = div_gradient_pal(low =
    mnsl(complement("10R 4/6", fix = TRUE)))(seq(0, 1, length = 100)))
 }
-
diff --git a/man/dollar_format.Rd b/man/dollar_format.Rd
index 870917f..edb5da1 100644
--- a/man/dollar_format.Rd
+++ b/man/dollar_format.Rd
@@ -1,8 +1,8 @@
 % Generated by roxygen2: do not edit by hand
 % Please edit documentation in R/formatter.r
 \name{dollar_format}
-\alias{dollar}
 \alias{dollar_format}
+\alias{dollar}
 \title{Currency formatter: round to nearest cent and display dollar sign.}
 \usage{
 dollar_format(prefix = "$", suffix = "", largest_with_cents = 1e+05, ...,
@@ -50,4 +50,3 @@ euro(100)
 finance <- dollar_format(negative_parens = TRUE)
 finance(c(-100, 100))
 }
-
diff --git a/man/dscale.Rd b/man/dscale.Rd
index 573d1a3..1881cad 100644
--- a/man/dscale.Rd
+++ b/man/dscale.Rd
@@ -20,4 +20,3 @@ Discrete scale.
 with(mtcars, plot(disp, mpg, pch = 20, cex = 3,
   col = dscale(factor(cyl), brewer_pal())))
 }
-
diff --git a/man/exp_trans.Rd b/man/exp_trans.Rd
index 25c767f..a235512 100644
--- a/man/exp_trans.Rd
+++ b/man/exp_trans.Rd
@@ -12,4 +12,3 @@ exp_trans(base = exp(1))
 \description{
 Exponential transformation (inverse of log transformation).
 }
-
diff --git a/man/expand_range.Rd b/man/expand_range.Rd
index db8490d..495b5d4 100644
--- a/man/expand_range.Rd
+++ b/man/expand_range.Rd
@@ -18,4 +18,3 @@ expand_range(range, mul = 0, add = 0, zero_width = 1)
 \description{
 Expand a range with a multiplicative or additive constant.
 }
-
diff --git a/man/extended_breaks.Rd b/man/extended_breaks.Rd
index f053620..8eabd67 100644
--- a/man/extended_breaks.Rd
+++ b/man/extended_breaks.Rd
@@ -27,4 +27,3 @@ Talbot, J., Lin, S., Hanrahan, P. (2010) An Extension of
  Wilkinson's Algorithm for Positioning Tick Labels on Axes, InfoVis
  2010.
 }
-
diff --git a/man/format_format.Rd b/man/format_format.Rd
index 98ac088..5b00fd9 100644
--- a/man/format_format.Rd
+++ b/man/format_format.Rd
@@ -17,4 +17,3 @@ the breaks.
 \code{\link{format}}, \code{\link{format.Date}},
   \code{\link{format.POSIXct}}
 }
-
diff --git a/man/fullseq.Rd b/man/fullseq.Rd
index f1e69b5..f0d4f10 100644
--- a/man/fullseq.Rd
+++ b/man/fullseq.Rd
@@ -20,4 +20,3 @@ Generate sequence of fixed size intervals covering range.
 \code{\link[plyr]{round_any}}
 }
 \keyword{internal}
-
diff --git a/man/gradient_n_pal.Rd b/man/gradient_n_pal.Rd
index ceca85e..4ec5cf1 100644
--- a/man/gradient_n_pal.Rd
+++ b/man/gradient_n_pal.Rd
@@ -20,4 +20,3 @@ other values are deprecated.}
 \description{
 Arbitrary colour gradient palette (continous).
 }
-
diff --git a/man/grey_pal.Rd b/man/grey_pal.Rd
index ff156e8..cc921b8 100644
--- a/man/grey_pal.Rd
+++ b/man/grey_pal.Rd
@@ -21,4 +21,3 @@ show_col(grey_pal(0, 1)(25))
 \seealso{
 \code{\link{seq_gradient_pal}} for continuous version
 }
-
diff --git a/man/hms_trans.Rd b/man/hms_trans.Rd
index 9fd3035..a68237b 100644
--- a/man/hms_trans.Rd
+++ b/man/hms_trans.Rd
@@ -18,4 +18,3 @@ t$inverse(t$transform(hms))
 t$breaks(hms)
 }
 }
-
diff --git a/man/hue_pal.Rd b/man/hue_pal.Rd
index 193728f..8bd2ef5 100644
--- a/man/hue_pal.Rd
+++ b/man/hue_pal.Rd
@@ -38,4 +38,3 @@ show_col(hue_pal(h = c(90, 180))(9))
 show_col(hue_pal(h = c(180, 270))(9))
 show_col(hue_pal(h = c(270, 360))(9))
 }
-
diff --git a/man/identity_pal.Rd b/man/identity_pal.Rd
index 950babe..fa8cfe0 100644
--- a/man/identity_pal.Rd
+++ b/man/identity_pal.Rd
@@ -9,4 +9,3 @@ identity_pal()
 \description{
 Leaves values unchanged - useful when the data is already scaled.
 }
-
diff --git a/man/identity_trans.Rd b/man/identity_trans.Rd
index e0ea625..72bb6e5 100644
--- a/man/identity_trans.Rd
+++ b/man/identity_trans.Rd
@@ -9,4 +9,3 @@ identity_trans()
 \description{
 Identity transformation (do nothing).
 }
-
diff --git a/man/linetype_pal.Rd b/man/linetype_pal.Rd
index a319906..e1e2e02 100644
--- a/man/linetype_pal.Rd
+++ b/man/linetype_pal.Rd
@@ -9,4 +9,3 @@ linetype_pal()
 \description{
 Based on a set supplied by Richard Pearson, University of Manchester
 }
-
diff --git a/man/log1p_trans.Rd b/man/log1p_trans.Rd
index 0d74c14..f38f71d 100644
--- a/man/log1p_trans.Rd
+++ b/man/log1p_trans.Rd
@@ -13,4 +13,3 @@ Log plus one transformation.
 trans_range(log_trans(), 1:10)
 trans_range(log1p_trans(), 0:9)
 }
-
diff --git a/man/log_breaks.Rd b/man/log_breaks.Rd
index 6f4f946..de1294f 100644
--- a/man/log_breaks.Rd
+++ b/man/log_breaks.Rd
@@ -18,4 +18,3 @@ Log breaks (integer breaks on log-transformed scales).
 log_breaks()(c(1, 1e6))
 log_breaks()(c(1, 1e5))
 }
-
diff --git a/man/log_trans.Rd b/man/log_trans.Rd
index be4c1fb..36769a3 100644
--- a/man/log_trans.Rd
+++ b/man/log_trans.Rd
@@ -1,9 +1,9 @@
 % Generated by roxygen2: do not edit by hand
 % Please edit documentation in R/trans-numeric.r
 \name{log_trans}
+\alias{log_trans}
 \alias{log10_trans}
 \alias{log2_trans}
-\alias{log_trans}
 \title{Log transformation.}
 \usage{
 log_trans(base = exp(1))
@@ -14,4 +14,3 @@ log_trans(base = exp(1))
 \description{
 Log transformation.
 }
-
diff --git a/man/manual_pal.Rd b/man/manual_pal.Rd
index bae2f9b..884ade5 100644
--- a/man/manual_pal.Rd
+++ b/man/manual_pal.Rd
@@ -12,4 +12,3 @@ manual_pal(values)
 \description{
 Manual palette (manual).
 }
-
diff --git a/man/math_format.Rd b/man/math_format.Rd
index 5fec678..d8ccb28 100644
--- a/man/math_format.Rd
+++ b/man/math_format.Rd
@@ -31,4 +31,3 @@ math_format(format = percent)(runif(10))
 \seealso{
 \code{\link{plotmath}}
 }
-
diff --git a/man/muted.Rd b/man/muted.Rd
index 9b67e66..04366b9 100644
--- a/man/muted.Rd
+++ b/man/muted.Rd
@@ -21,4 +21,3 @@ muted("red")
 muted("blue")
 show_col(c("red", "blue", muted("red"), muted("blue")))
 }
-
diff --git a/man/ordinal_format.Rd b/man/ordinal_format.Rd
index 8ad6648..918b868 100644
--- a/man/ordinal_format.Rd
+++ b/man/ordinal_format.Rd
@@ -1,8 +1,8 @@
 % Generated by roxygen2: do not edit by hand
 % Please edit documentation in R/formatter.r
 \name{ordinal_format}
-\alias{ordinal}
 \alias{ordinal_format}
+\alias{ordinal}
 \title{Ordinal formatter: add ordinal suffixes (-st, -nd, -rd, -th) to numbers.}
 \usage{
 ordinal_format(x)
@@ -23,4 +23,3 @@ Ordinal formatter: add ordinal suffixes (-st, -nd, -rd, -th) to numbers.
 ordinal_format()(1:10)
 ordinal(1:10)
 }
-
diff --git a/man/package-scales.Rd b/man/package-scales.Rd
index 7f8721c..c6bb4b8 100644
--- a/man/package-scales.Rd
+++ b/man/package-scales.Rd
@@ -3,10 +3,9 @@
 \docType{package}
 \name{package-scales}
 \alias{package-scales}
-\alias{package-scales-package}
 \alias{scales}
+\alias{package-scales-package}
 \title{Generic plot scaling methods}
 \description{
 Generic plot scaling methods
 }
-
diff --git a/man/parse_format.Rd b/man/parse_format.Rd
index b343dcf..91a5d27 100644
--- a/man/parse_format.Rd
+++ b/man/parse_format.Rd
@@ -19,4 +19,3 @@ parse_format()(c("alpha", "beta", "gamma"))
 \seealso{
 \code{\link{plotmath}}
 }
-
diff --git a/man/percent_format.Rd b/man/percent_format.Rd
index 2e739f4..1669e8c 100644
--- a/man/percent_format.Rd
+++ b/man/percent_format.Rd
@@ -1,8 +1,8 @@
 % Generated by roxygen2: do not edit by hand
 % Please edit documentation in R/formatter.r
 \name{percent_format}
-\alias{percent}
 \alias{percent_format}
+\alias{percent}
 \title{Percent formatter: multiply by one hundred and display percent sign.}
 \usage{
 percent_format()
@@ -24,4 +24,3 @@ percent_format()(runif(10))
 percent(runif(10))
 percent(runif(10, 1, 10))
 }
-
diff --git a/man/pretty_breaks.Rd b/man/pretty_breaks.Rd
index 913e200..780e433 100644
--- a/man/pretty_breaks.Rd
+++ b/man/pretty_breaks.Rd
@@ -22,4 +22,3 @@ pretty_breaks()(1:100)
 pretty_breaks()(as.Date(c("2008-01-01", "2009-01-01")))
 pretty_breaks()(as.Date(c("2008-01-01", "2090-01-01")))
 }
-
diff --git a/man/probability_trans.Rd b/man/probability_trans.Rd
index 564808c..f37e820 100644
--- a/man/probability_trans.Rd
+++ b/man/probability_trans.Rd
@@ -1,8 +1,8 @@
 % Generated by roxygen2: do not edit by hand
 % Please edit documentation in R/trans-numeric.r
 \name{probability_trans}
-\alias{logit_trans}
 \alias{probability_trans}
+\alias{logit_trans}
 \alias{probit_trans}
 \title{Probability transformation.}
 \usage{
@@ -18,4 +18,3 @@ function, and "q" + distribution is a valid quantile function.}
 \description{
 Probability transformation.
 }
-
diff --git a/man/reciprocal_trans.Rd b/man/reciprocal_trans.Rd
index fdca5d8..9075f7e 100644
--- a/man/reciprocal_trans.Rd
+++ b/man/reciprocal_trans.Rd
@@ -9,4 +9,3 @@ reciprocal_trans()
 \description{
 Reciprocal transformation.
 }
-
diff --git a/man/regular_minor_breaks.Rd b/man/regular_minor_breaks.Rd
new file mode 100644
index 0000000..c2e539a
--- /dev/null
+++ b/man/regular_minor_breaks.Rd
@@ -0,0 +1,23 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/breaks.r
+\name{regular_minor_breaks}
+\alias{regular_minor_breaks}
+\title{Minor breaks
+Places minor breaks between major breaks.}
+\usage{
+regular_minor_breaks(reverse = FALSE)
+}
+\arguments{
+\item{reverse}{if TRUE, calculates the minor breaks for a reversed scale}
+}
+\description{
+Minor breaks
+Places minor breaks between major breaks.
+}
+\examples{
+m <- extended_breaks()(c(1, 10))
+regular_minor_breaks()(m, c(1, 10), n = 2)
+
+n <- extended_breaks()(c(0, -9))
+regular_minor_breaks(reverse = TRUE)(n, c(0, -9), n = 2)
+}
diff --git a/man/rescale.Rd b/man/rescale.Rd
index f783038..b989110 100644
--- a/man/rescale.Rd
+++ b/man/rescale.Rd
@@ -2,20 +2,42 @@
 % Please edit documentation in R/bounds.r
 \name{rescale}
 \alias{rescale}
-\title{Rescale numeric vector to have specified minimum and maximum.}
+\alias{rescale.numeric}
+\alias{rescale.logical}
+\alias{rescale.POSIXt}
+\alias{rescale.Date}
+\alias{rescale.integer64}
+\title{Rescale continuous vector to have specified minimum and maximum.}
 \usage{
-rescale(x, to = c(0, 1), from = range(x, na.rm = TRUE, finite = TRUE))
+rescale(x, to, from, ...)
+
+\method{rescale}{numeric}(x, to = c(0, 1), from = range(x, na.rm = TRUE,
+  finite = TRUE), ...)
+
+\method{rescale}{logical}(x, to = c(0, 1), from = range(x, na.rm = TRUE,
+  finite = TRUE), ...)
+
+\method{rescale}{POSIXt}(x, to = c(0, 1), from = range(x, na.rm = TRUE,
+  finite = TRUE), ...)
+
+\method{rescale}{Date}(x, to = c(0, 1), from = range(x, na.rm = TRUE, finite
+  = TRUE), ...)
+
+\method{rescale}{integer64}(x, to = c(0, 1), from = range(x, na.rm = TRUE),
+  ...)
 }
 \arguments{
-\item{x}{numeric vector of values to manipulate.}
+\item{x}{continuous vector of values to manipulate.}
 
 \item{to}{output range (numeric vector of length two)}
 
-\item{from}{input range (numeric vector of length two).  If not given, is
+\item{from}{input range (vector of length two).  If not given, is
 calculated from the range of \code{x}}
+
+\item{...}{other arguments passed on to methods}
 }
 \description{
-Rescale numeric vector to have specified minimum and maximum.
+Rescale continuous vector to have specified minimum and maximum.
 }
 \examples{
 rescale(1:100)
@@ -23,4 +45,3 @@ rescale(runif(50))
 rescale(1)
 }
 \keyword{manip}
-
diff --git a/man/rescale_max.Rd b/man/rescale_max.Rd
index 9abb9d2..84b286d 100644
--- a/man/rescale_max.Rd
+++ b/man/rescale_max.Rd
@@ -22,4 +22,3 @@ rescale_max(1:100)
 rescale_max(runif(50))
 rescale_max(1)
 }
-
diff --git a/man/rescale_mid.Rd b/man/rescale_mid.Rd
index 7a6ef0b..febfe74 100644
--- a/man/rescale_mid.Rd
+++ b/man/rescale_mid.Rd
@@ -2,26 +2,47 @@
 % Please edit documentation in R/bounds.r
 \name{rescale_mid}
 \alias{rescale_mid}
-\title{Rescale numeric vector to have specified minimum, midpoint, and maximum.}
+\alias{rescale_mid.numeric}
+\alias{rescale_mid.logical}
+\alias{rescale_mid.POSIXt}
+\alias{rescale_mid.Date}
+\alias{rescale_mid.integer64}
+\title{Rescale vector to have specified minimum, midpoint, and maximum.}
 \usage{
-rescale_mid(x, to = c(0, 1), from = range(x, na.rm = TRUE), mid = 0)
+rescale_mid(x, to, from, mid, ...)
+
+\method{rescale_mid}{numeric}(x, to = c(0, 1), from = range(x, na.rm =
+  TRUE), mid = 0, ...)
+
+\method{rescale_mid}{logical}(x, to = c(0, 1), from = range(x, na.rm =
+  TRUE), mid = 0, ...)
+
+\method{rescale_mid}{POSIXt}(x, to = c(0, 1), from = range(x, na.rm = TRUE),
+  mid, ...)
+
+\method{rescale_mid}{Date}(x, to = c(0, 1), from = range(x, na.rm = TRUE),
+  mid, ...)
+
+\method{rescale_mid}{integer64}(x, to = c(0, 1), from = range(x, na.rm =
+  TRUE), mid = 0, ...)
 }
 \arguments{
-\item{x}{numeric vector of values to manipulate.}
+\item{x}{vector of values to manipulate.}
 
 \item{to}{output range (numeric vector of length two)}
 
-\item{from}{input range (numeric vector of length two).  If not given, is
+\item{from}{input range (vector of length two).  If not given, is
 calculated from the range of \code{x}}
 
 \item{mid}{mid-point of input range}
+
+\item{...}{other arguments passed on to methods}
 }
 \description{
-Rescale numeric vector to have specified minimum, midpoint, and maximum.
+Rescale vector to have specified minimum, midpoint, and maximum.
 }
 \examples{
 rescale_mid(1:100, mid = 50.5)
 rescale_mid(runif(50), mid = 0.5)
 rescale_mid(1)
 }
-
diff --git a/man/rescale_none.Rd b/man/rescale_none.Rd
index 406edb8..49d897e 100644
--- a/man/rescale_none.Rd
+++ b/man/rescale_none.Rd
@@ -17,4 +17,3 @@ Don't peform rescaling
 \examples{
 rescale_none(1:100)
 }
-
diff --git a/man/rescale_pal.Rd b/man/rescale_pal.Rd
index 05a094d..7b3137d 100644
--- a/man/rescale_pal.Rd
+++ b/man/rescale_pal.Rd
@@ -14,4 +14,3 @@ values.  Should be between 0 and 1.}
 Just rescales the input to the specific output range.  Useful for
 alpha, size, and continuous position.
 }
-
diff --git a/man/reverse_trans.Rd b/man/reverse_trans.Rd
index f15f4d8..6856403 100644
--- a/man/reverse_trans.Rd
+++ b/man/reverse_trans.Rd
@@ -9,4 +9,3 @@ reverse_trans()
 \description{
 Reverse transformation.
 }
-
diff --git a/man/scientific_format.Rd b/man/scientific_format.Rd
index 99eee55..e8a369b 100644
--- a/man/scientific_format.Rd
+++ b/man/scientific_format.Rd
@@ -1,8 +1,8 @@
 % Generated by roxygen2: do not edit by hand
 % Please edit documentation in R/formatter.r
 \name{scientific_format}
-\alias{scientific}
 \alias{scientific_format}
+\alias{scientific}
 \title{Scientific formatter.}
 \usage{
 scientific_format(digits = 3, ...)
@@ -31,4 +31,3 @@ scientific(1:10)
 scientific(runif(10))
 scientific(runif(10), digits = 2)
 }
-
diff --git a/man/seq_gradient_pal.Rd b/man/seq_gradient_pal.Rd
index f11ffaa..fcba86d 100644
--- a/man/seq_gradient_pal.Rd
+++ b/man/seq_gradient_pal.Rd
@@ -26,4 +26,3 @@ show_col(seq_gradient_pal("white", "black")(x))
 library(munsell)
 show_col(seq_gradient_pal("white", mnsl("10R 4/6"))(x))
 }
-
diff --git a/man/shape_pal.Rd b/man/shape_pal.Rd
index 0174750..188f3fd 100644
--- a/man/shape_pal.Rd
+++ b/man/shape_pal.Rd
@@ -12,4 +12,3 @@ shape_pal(solid = TRUE)
 \description{
 Shape palette (discrete).
 }
-
diff --git a/man/show_col.Rd b/man/show_col.Rd
index 953ff9d..45b0d3a 100644
--- a/man/show_col.Rd
+++ b/man/show_col.Rd
@@ -16,4 +16,3 @@ show_col(colours, labels = TRUE, borders = NULL)
 \description{
 A quick and dirty way to show colours in a plot.
 }
-
diff --git a/man/sqrt_trans.Rd b/man/sqrt_trans.Rd
index db34d36..ca27bd5 100644
--- a/man/sqrt_trans.Rd
+++ b/man/sqrt_trans.Rd
@@ -9,4 +9,3 @@ sqrt_trans()
 \description{
 Square-root transformation.
 }
-
diff --git a/man/squish.Rd b/man/squish.Rd
index 03bb577..ed76eaf 100644
--- a/man/squish.Rd
+++ b/man/squish.Rd
@@ -24,4 +24,3 @@ squish(c(-1, 0, 0.5, 1, 2))
 \author{
 Homer Strong <homer.strong at gmail.com>
 }
-
diff --git a/man/squish_infinite.Rd b/man/squish_infinite.Rd
index 9841e08..d7f67ef 100644
--- a/man/squish_infinite.Rd
+++ b/man/squish_infinite.Rd
@@ -17,4 +17,3 @@ Squish infinite values to range.
 \examples{
 squish_infinite(c(-Inf, -1, 0, 1, 2, Inf))
 }
-
diff --git a/man/time_trans.Rd b/man/time_trans.Rd
index d543b62..d2de6d2 100644
--- a/man/time_trans.Rd
+++ b/man/time_trans.Rd
@@ -20,4 +20,3 @@ t$transform(hours)
 t$inverse(t$transform(hours))
 t$format(t$breaks(range(hours)))
 }
-
diff --git a/man/train_continuous.Rd b/man/train_continuous.Rd
index 01d1a43..29a75df 100644
--- a/man/train_continuous.Rd
+++ b/man/train_continuous.Rd
@@ -14,4 +14,3 @@ train_continuous(new, existing = NULL)
 \description{
 Train (update) a continuous scale
 }
-
diff --git a/man/train_discrete.Rd b/man/train_discrete.Rd
index 4db24cc..fd8ea11 100644
--- a/man/train_discrete.Rd
+++ b/man/train_discrete.Rd
@@ -18,4 +18,3 @@ train_discrete(new, existing = NULL, drop = FALSE, na.rm = FALSE)
 \description{
 Train (update) a discrete scale
 }
-
diff --git a/man/trans_breaks.Rd b/man/trans_breaks.Rd
index 4c8b90a..6afa1ad 100644
--- a/man/trans_breaks.Rd
+++ b/man/trans_breaks.Rd
@@ -25,4 +25,3 @@ trans_breaks("sqrt", function(x) x ^ 2)(c(1, 100))
 trans_breaks(function(x) 1 / x, function(x) 1 / x)(c(1, 100))
 trans_breaks(function(x) -x, function(x) -x)(c(1, 100))
 }
-
diff --git a/man/trans_format.Rd b/man/trans_format.Rd
index 2392fdc..c2abf28 100644
--- a/man/trans_format.Rd
+++ b/man/trans_format.Rd
@@ -22,4 +22,3 @@ Format labels after transformation.
 tf <- trans_format("log10", scientific_format())
 tf(10 ^ 1:6)
 }
-
diff --git a/man/trans_new.Rd b/man/trans_new.Rd
index 00dd476..e9d6017 100644
--- a/man/trans_new.Rd
+++ b/man/trans_new.Rd
@@ -1,13 +1,14 @@
 % Generated by roxygen2: do not edit by hand
 % Please edit documentation in R/trans.r
 \name{trans_new}
-\alias{is.trans}
-\alias{trans}
 \alias{trans_new}
+\alias{trans}
+\alias{is.trans}
 \title{Create a new transformation object.}
 \usage{
 trans_new(name, transform, inverse, breaks = extended_breaks(),
-  format = format_format(), domain = c(-Inf, Inf))
+  minor_breaks = regular_minor_breaks(), format = format_format(),
+  domain = c(-Inf, Inf))
 }
 \arguments{
 \item{name}{transformation name}
@@ -21,6 +22,8 @@ inverse of the transformation}
 \item{breaks}{default breaks function for this transformation. The breaks
 function is applied to the raw data.}
 
+\item{minor_breaks}{default minor breaks function for this transformation.}
+
 \item{format}{default format for this transformation. The format is applied
 to breaks generated to the raw data.}
 
@@ -38,4 +41,3 @@ the original scale.
 \seealso{
 \Sexpr[results=rd,stage=build]{scales:::seealso_trans()}
 }
-
diff --git a/man/trans_range.Rd b/man/trans_range.Rd
index 8a58809..1bd8ecc 100644
--- a/man/trans_range.Rd
+++ b/man/trans_range.Rd
@@ -15,4 +15,3 @@ given as a string.}
 \description{
 Silently drops any ranges outside of the domain of \code{trans}.
 }
-
diff --git a/man/unit_format.Rd b/man/unit_format.Rd
index 99336c4..102ce83 100644
--- a/man/unit_format.Rd
+++ b/man/unit_format.Rd
@@ -30,4 +30,3 @@ km(runif(10) * 1e5)
 \seealso{
 \code{\link{comma}}
 }
-
diff --git a/man/viridis_pal.Rd b/man/viridis_pal.Rd
new file mode 100644
index 0000000..391883b
--- /dev/null
+++ b/man/viridis_pal.Rd
@@ -0,0 +1,36 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/pal-viridis.r
+\name{viridis_pal}
+\alias{viridis_pal}
+\title{Viridis palette}
+\usage{
+viridis_pal(alpha = 1, begin = 0, end = 1, direction = 1,
+  option = "D")
+}
+\arguments{
+\item{alpha}{The alpha transparency, a number in [0,1], see argument alpha in
+\code{\link[grDevices]{hsv}}.}
+
+\item{begin}{The (corrected) hue in [0,1] at which the viridis colormap begins.}
+
+\item{end}{The (corrected) hue in [0,1] at which the viridis colormap ends.}
+
+\item{direction}{Sets the order of colors in the scale. If 1, the default, colors
+are ordered from darkest to lightest. If -1, the order of colors is reversed.}
+
+\item{option}{A character string indicating the colormap option to use. Four
+options are available: "magma" (or "A"), "inferno" (or "B"), "plasma" (or "C"),
+and "viridis" (or "D", the default option).}
+}
+\description{
+Viridis palette
+}
+\examples{
+show_col(viridis_pal()(10))
+show_col(viridis_pal(direction = -1)(6))
+show_col(viridis_pal(begin = 0.2, end = 0.8)(4))
+show_col(viridis_pal(option = "plasma")(6))
+}
+\references{
+\url{https://bids.github.io/colormap/}
+}
diff --git a/man/wrap_format.Rd b/man/wrap_format.Rd
index aac65f9..28a4441 100644
--- a/man/wrap_format.Rd
+++ b/man/wrap_format.Rd
@@ -22,4 +22,3 @@ the width
 wrap_10 <- wrap_format(10)
 wrap_10('A long line that needs to be wrapped')
 }
-
diff --git a/man/zero_range.Rd b/man/zero_range.Rd
index f980f0a..691b540 100644
--- a/man/zero_range.Rd
+++ b/man/zero_range.Rd
@@ -46,4 +46,3 @@ zero_range(c(-Inf, Inf))  # FALSE
 zero_range(c(Inf, Inf))   # TRUE
 
 }
-
diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp
index 6bd1492..1252b25 100644
--- a/src/RcppExports.cpp
+++ b/src/RcppExports.cpp
@@ -7,7 +7,7 @@ using namespace Rcpp;
 
 // doColorRamp
 StringVector doColorRamp(NumericMatrix colors, NumericVector x, bool alpha, std::string naColor);
-RcppExport SEXP scales_doColorRamp(SEXP colorsSEXP, SEXP xSEXP, SEXP alphaSEXP, SEXP naColorSEXP) {
+RcppExport SEXP _scales_doColorRamp(SEXP colorsSEXP, SEXP xSEXP, SEXP alphaSEXP, SEXP naColorSEXP) {
 BEGIN_RCPP
     Rcpp::RObject rcpp_result_gen;
     Rcpp::RNGScope rcpp_rngScope_gen;
@@ -21,7 +21,7 @@ END_RCPP
 }
 // rgbToLab
 NumericVector rgbToLab(NumericVector rgb);
-RcppExport SEXP scales_rgbToLab(SEXP rgbSEXP) {
+RcppExport SEXP _scales_rgbToLab(SEXP rgbSEXP) {
 BEGIN_RCPP
     Rcpp::RObject rcpp_result_gen;
     Rcpp::RNGScope rcpp_rngScope_gen;
@@ -32,7 +32,7 @@ END_RCPP
 }
 // rgbToXyz
 NumericVector rgbToXyz(NumericVector rgb);
-RcppExport SEXP scales_rgbToXyz(SEXP rgbSEXP) {
+RcppExport SEXP _scales_rgbToXyz(SEXP rgbSEXP) {
 BEGIN_RCPP
     Rcpp::RObject rcpp_result_gen;
     Rcpp::RNGScope rcpp_rngScope_gen;
@@ -41,3 +41,15 @@ BEGIN_RCPP
     return rcpp_result_gen;
 END_RCPP
 }
+
+static const R_CallMethodDef CallEntries[] = {
+    {"_scales_doColorRamp", (DL_FUNC) &_scales_doColorRamp, 4},
+    {"_scales_rgbToLab", (DL_FUNC) &_scales_rgbToLab, 1},
+    {"_scales_rgbToXyz", (DL_FUNC) &_scales_rgbToXyz, 1},
+    {NULL, NULL, 0}
+};
+
+RcppExport void R_init_scales(DllInfo *dll) {
+    R_registerRoutines(dll, NULL, CallEntries, NULL, NULL);
+    R_useDynamicSymbols(dll, FALSE);
+}
diff --git a/tests/testthat/test-bounds.r b/tests/testthat/test-bounds.r
index aa3dd11..188f28b 100644
--- a/tests/testthat/test-bounds.r
+++ b/tests/testthat/test-bounds.r
@@ -2,34 +2,66 @@ context("Bounds")
 
 test_that("rescale_mid returns correct results", {
   x <- c(-1, 0, 1)
-  
+
   expect_equal(rescale_mid(x), c(0, 0.5, 1))
   expect_equal(rescale_mid(x, mid = -1), c(0.5, 0.75, 1))
   expect_equal(rescale_mid(x, mid = 1), c(0, 0.25, 0.5))
-  
+
   expect_equal(rescale_mid(x, mid = 1, to = c(0, 10)), c(0, 2.5, 5))
-  expect_equal(rescale_mid(x, mid = 1, to = c(8, 10)), c(8, 8.5, 9))  
+  expect_equal(rescale_mid(x, mid = 1, to = c(8, 10)), c(8, 8.5, 9))
 })
 
 
-test_that("resacle_max returns correct results", {
+test_that("rescale_max returns correct results", {
   expect_equal(rescale_max(0), NaN)
   expect_equal(rescale_max(1), 1)
   expect_equal(rescale_max(.3), 1)
   expect_equal(rescale_max(c(4, 5)), c(0.8, 1.0))
   expect_equal(rescale_max(c(-3, 0, -1, 2)), c(-1.5, 0, -0.5, 1))
+  expect_equal(rescale_max(c(-3, 0, -1, 2)), c(-1.5, 0, -0.5, 1))
 })
 
 
 test_that("zero range inputs return mid range", {
   expect_that(rescale(0), equals(0.5))
-  expect_that(rescale(c(0, 0)), equals(c(0.5, 0.5)))  
+  expect_that(rescale(c(0, 0)), equals(c(0.5, 0.5)))
 })
 
 
 test_that("censor and squish ignore infinite values", {
   expect_equal(squish(c(1, Inf)), c(1, Inf))
   expect_equal(censor(c(1, Inf)), c(1, Inf))
-  
-  
-})
\ No newline at end of file
+
+
+})
+
+test_that("scaling is possible with dates and times", {
+  dates <- as.Date(c("2010-01-01", "2010-01-03", "2010-01-05", "2010-01-07"))
+  expect_equal(rescale(dates, from = c(dates[1], dates[4])), seq(0,1,1/3))
+  expect_equal(rescale_mid(dates, mid = dates[3])[3], 0.5)
+
+  dates <- as.POSIXct(c("2010-01-01 01:40:40",
+                        "2010-01-01 03:40:40",
+                        "2010-01-01 05:40:40",
+                        "2010-01-01 07:40:40"))
+  expect_equal(rescale(dates, from = c(dates[1], dates[4])), seq(0, 1, 1/3))
+  expect_equal(rescale_mid(dates, mid = dates[3])[3], 0.5)
+
+})
+
+test_that("scaling is possible with integer64 data", {
+  x <- bit64::as.integer64(2^60) + c(0:3)
+  expect_equal(
+    rescale_mid(x, mid = bit64::as.integer64(2^60) + 1),
+    c(0.25, 0.5, 0.75, 1))
+})
+
+test_that("scaling is possible with NULL values", {
+  expect_null(rescale(NULL))
+  expect_null(rescale_mid(NULL))
+})
+
+test_that("scaling is possible with logical values", {
+  expect_equal(rescale(c(FALSE, TRUE)), c(0, 1))
+  expect_equal(rescale_mid(c(FALSE, TRUE), mid = 0.5), c(0, 1))
+})
diff --git a/tests/testthat/test-breaks-minor.r b/tests/testthat/test-breaks-minor.r
new file mode 100644
index 0000000..03611af
--- /dev/null
+++ b/tests/testthat/test-breaks-minor.r
@@ -0,0 +1,17 @@
+context("minor breaks")
+
+l1 <- c(0, 9)
+l2 <- -l1
+b1 <- extended_breaks()(l1)
+b2 <- extended_breaks()(l2)
+m1 <- regular_minor_breaks()(b1, l1, n = 2)
+m2 <- regular_minor_breaks()(b2, l2, n = 2)
+
+test_that("minor breaks are calculated correctly", {
+  expect_equal(m1, seq(b1[1], b1[length(b1)], by = 1.25))
+  expect_equal(m2, seq(b2[1], b2[length(b2)], by = 1.25))
+})
+
+test_that("minor breaks for reversed scales are comparable to non-reversed", {
+  expect_equal(m1, sort(-m2))
+})

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/r-cran-scales.git



More information about the debian-med-commit mailing list