Compare versions · code and quality diff
TreeTools
Minor bumpCount of public functions declared by NAMESPACE export() directives, or R/ top-level definitions matching an exportPattern when only patterns are used.
Number of top-level function definitions in R/ files that are not exported, i.e. helpers kept private to the package.
Total lines across code files in R/, src/, tests/, man/, and vignettes/, with images and other binary files excluded. Rust sources under src/ count and vendored Rust crates do not.
Raw line count of source files under the R/ directory, counting blank and comment lines too.
Raw line count of compiled source and header files under src/, in C, C++, Fortran and Rust, with vendored Rust crates left out.
Raw line count of every file under the tests/ directory, excluding binary and other non-code files.
DESCRIPTION+4−4MD5+267−264NAMESPACE+531−517NEWS.md+21R/AddTip.R+275−275R/Cherries.R+34−34R/ClusterTable.R+127−127R/Combinatorics.R+348−348R/ConsistentSplits.R+42−42R/Decompose.R+165−165R/EdgeRatio.R+35−35R/ImposeConstraint.R+139−139R/KeptPaths.R+47−47R/LongBranchScore.R+75−75R/MatchNodes.R+145−108R/MatchStrings.R+33−33R/PathLengths.R+48−48R/PhyToString.R+142−142R/RUtreebalance.R+324−324R/RcppExports-manual.R+35−35R/RcppExports.R+12R/ReadMrBayes.R+95−95R/ReadTntTree.R+290−290R/Reweight.R+110−110R/SplitFunctions.R+456−456R/Splits.R+668−668R/Stemwardness.R+109−109R/TipTimedTree.R+50−50R/TopologyOnly.R+42−42R/TreeNumber.R+583−583R/Treeness.R+58−58R/as.matrix.R+15−15R/as.multiPhylo.R+76−76R/data.R+90−90R/helper_functions.R+100−100R/match.R+248−248R/mst.R+79−79R/sort.R+78−78R/split_analysis.R+81−81R/tree_ancestors.R+110−110R/tree_comparison.R+43−43R/tree_display.R+146−146R/tree_generation.R+503−503R/tree_information.R+103−103R/tree_numbering.R+18−4R/tree_shape.R+286−286R/tree_write.R+131−131build/partial.rdbdata/brewer.R+20−20data/nRootedShapes.R+57−57data/nUnrootedShapes.R+62−62inst/CITATION+18−18inst/REFERENCES.bib+389−389inst/WORDLIST+104−102inst/apa-old-doi-prefix.csl+2278−2273inst/doc/filesystem-navigation.Rmd+52−52inst/doc/filesystem-navigation.html+2−2inst/doc/load-data.Rmd+214−214inst/doc/load-data.html+2−2inst/doc/load-trees.Rmd+125−125inst/doc/load-trees.html+2−2inst/extdata/input/dataset.nex+22−22inst/extdata/input/notes.nex+27−27inst/extdata/output/named.tre+3−3inst/extdata/output/numbered.tre+4−4inst/extdata/tests/ape-tree.nex+5−5inst/extdata/tests/continuous.nex+22−22inst/extdata/tests/encoding.nex+24−24inst/extdata/tests/parse-nexus.nexus+255−255inst/extdata/tests/statelabels-semicolon.nex+29−29inst/extdata/tests/taxon-notes.nex+24−24inst/extdata/tests/tnt-amp-continuation.tnt+10−10inst/extdata/tests/tnt-bare-tree.tnt+1−1inst/extdata/tests/tnt-cp1252-taxa.tnt+6−6inst/extdata/tests/tnt-dna.tnt+21−21inst/extdata/tests/tnt-matrix.tnt+147−147inst/extdata/tests/tnt-midline-xread.tnt+6−6inst/extdata/tests/tnt-multiline-comment.tnt+13−13inst/extdata/tests/tnt-multiline-taxa.tnt+13−13inst/extdata/tests/tnt-multitaxon-line.tnt+5−5inst/extdata/tests/tnt-namedtree.tre+4−4inst/extdata/tests/tnt-smartquote-taxa.tnt+12−12inst/extdata/tests/tnt-taxon-taxonomy.tnt+7−7inst/extdata/tests/tnt-tree.tre+23−23inst/extdata/tests/tnt-trees-and-matrix.tnt+29−29inst/extdata/tests/tnt-xgroup.tnt+16−16inst/include/TreeTools/SplitList.h+99−21inst/include/TreeTools/edge_to_splits.h+97man/AddTip.Rd+140−140man/AncestorEdge.Rd+54−54man/ApeTime.Rd+27−27man/ArtificialExtinction.Rd+108−108man/CharacterInformation.Rd+43−43man/Cherries.Rd+54−54man/CladeSizes.Rd+49−49man/CladisticInfo.Rd+72−72man/ClusterTable-methods.Rd+47−47man/ClusterTable.Rd+80−80man/CollapseNode.Rd+81−81man/CompatibleSplits.Rd+54−54man/Consensus.Rd+78−78man/ConsensusWithout.Rd+106−106man/ConstrainedNJ.Rd+54−54man/Decompose.Rd+84−84man/DescendantEdges.Rd+82−82man/DoubleFactorial.Rd+66−66man/DropTip.Rd+140−140man/EdgeAncestry.Rd+63−63man/EdgeDistances.Rd+53−53man/EdgeRatio.Rd+46−46man/EndSentence.Rd+32−32man/ExtractTaxa.Rd+45−45man/GenerateTree.Rd+101−101man/Hamming.Rd+78−78man/ImposeConstraint.Rd+74−74man/J1Index.Rd+95−95man/KeptPaths.Rd+66−66man/KeptVerts.Rd+69−69man/LabelSplits.Rd+86−86man/LeafLabelInterchange.Rd+59−59man/ListAncestors.Rd+96−96man/Lobo.data.Rd+33−33man/LongBranch.Rd+65−65man/MRCA.Rd+68−68man/MSTEdges.Rd+73−73man/MakeTreeBinary.Rd+54−54man/MatchEdges.Rd+85−70man/MatchStrings.Rd+40−40man/MatrixToPhyDat.Rd+79−79man/MorphoBankDecode.Rd+29−29man/N1Spr.Rd+38−38man/NDescendants.Rd+50−50man/NJTree.Rd+41−41man/NPartitionPairs.Rd+51−51man/NRooted.Rd+134−134man/NSplits.Rd+86−86man/NTip.Rd+70−70man/NewickTree.Rd+27−27man/Neworder.Rd+64−64man/NexusTokensToInteger.Rd+64−64man/NodeDepth.Rd+64−64man/NodeNumbers.Rd+58−58man/NodeOrder.Rd+55−55man/PaintTree.Rd+98−98man/PairwiseDistances.Rd+41−41man/PathLengths.Rd+59−59man/PhyToString.Rd+107−107man/PolarizeSplits.Rd+35−35man/ReadCharacters.Rd+157−157man/ReadMrBayesTrees.Rd+55−55man/ReadTntTree.Rd+124−124man/Renumber.Rd+59−59man/RenumberTips.Rd+70−70man/Reorder.Rd+275−275man/Reweight.Rd+79−79man/RightmostCharacter.Rd+36−36man/RoguePlot.Rd+120−120man/RootNode.Rd+53−53man/RootTree.Rd+95−95man/SampleOne.Rd+42−42man/SortTree.Rd+92−92man/SplitConsistent.Rd+45−45man/SplitFrequency.Rd+90−90man/SplitInformation.Rd+128−128man/SplitMatchProbability.Rd+47−47man/Splits.Rd+108−108man/SplitsInBinaryTree.Rd+81−81man/Stemwardness.Rd+99−99man/Subsplit.Rd+48−48man/Subtree.Rd+61−61man/SupportColour.Rd+71−71man/TipLabels.Rd+126−126man/TipTimedTree.Rd+70−70man/TipsInSplits.Rd+72−72man/TopologyOnly.Rd+23−23man/TotalCopheneticIndex.Rd+94−94man/TreeIsRooted.Rd+43−43man/TreeNumber.Rd+216−216man/TreeShape.Rd+159−159man/TreeTools-package.Rd+48−48man/Treeness.Rd+57−57man/TreesMatchingSplit.Rd+46−46man/TreesMatchingTree.Rd+49−49man/TrivialSplits.Rd+48−48man/TrivialTree.Rd+63−63man/Unquote.Rd+32−32man/UnrootedTreesMatchingSplit.Rd+48−48man/UnshiftTree.Rd+58−58man/WriteTntCharacters.Rd+70−70man/as.Newick.Rd+48−48man/as.multiPhylo.Rd+53−53man/brewer.Rd+33−33man/dot-RandomParent.Rd+27−27man/doubleFactorials.Rd+26−26man/edge_to_splits.Rd+49−49man/is.TreeNumber.Rd+32−32man/logDoubleFactorials.Rd+23−23man/match.Splits.Rd+68−68man/match.multiPhylo.Rd+72−72man/nRootedShapes.Rd+28−28man/print.TreeNumber.Rd+22−22man/root_on_node.Rd+33−33man/sapply64.Rd+82−82man/sort.multiPhylo.Rd+57−57man/xor.Rd+31−31src/RcppExports.cpp+42src/match_nodes.cpp+285src/splits.cpp+22−29src/tips_in_splits.cpp+2−4tests/figs/rogueplot.svg+34−34tests/spelling.R+33−4tests/testthat.R+4−4tests/testthat/_snaps/RoguePlot/rogueplot-poly.svg+41−41tests/testthat/_snaps/RoguePlot/rogueplot-simple.svg+47−47tests/testthat/_snaps/RoguePlot/rogueplot-trees1.svg+53−53tests/testthat/_snaps/RoguePlot/rogueplot-trees2.svg+41−41tests/testthat/_snaps/Support/labelsplits-nameless.svg+86−86tests/testthat/_snaps/Support/labelsplits-names.svg+74−74tests/testthat/_snaps/Support/labelsplits.svg+74−74tests/testthat/_snaps/mst/mst-plotting.svg+71−71tests/testthat/_snaps/tree_display/sorted-tree.svg+135−135tests/testthat/test-ArtificialExtinction.R+47−47tests/testthat/test-Cherries.R+12−12tests/testthat/test-ClusterTable.R+142−142tests/testthat/test-Decompose.R+76−76tests/testthat/test-EdgeRatio.R+9−9tests/testthat/test-FirstMatchingSplit.R+34−34tests/testthat/test-KeptPaths.R+20−20tests/testthat/test-KeptVerts.R+86−86tests/testthat/test-LongBranchScore.R+18−18tests/testthat/test-MatchNodes.R+176−75tests/testthat/test-MatchStrings.R+13−13tests/testthat/test-PathLengths.R+35−35tests/testthat/test-PhyToString.R+75−75tests/testthat/test-RUtreebalance.R+64−64tests/testthat/test-ReadMrBayes.R+4−4tests/testthat/test-Reweight.R+46−46tests/testthat/test-SplitConsistent.R+36−36tests/testthat/test-SplitFunctions.R+226−226tests/testthat/test-Stemwardness.R+14−14tests/testthat/test-TipTimedTree.R+14−14tests/testthat/test-TopologyOnly.R+27−27tests/testthat/test-TreeNumber.R+180−180tests/testthat/test-Treeness.R+19−19tests/testthat/test-as.matrix.R+7−7tests/testthat/test-as.multiPhylo.R+35−35tests/testthat/test-combinatorics.R+89−89tests/testthat/test-edge_to_splits.h.R+39tests/testthat/test-helper_functions.R+11−11tests/testthat/test-information.R+42−42tests/testthat/test-int_to_tree.cpp.R+65−65tests/testthat/test-match.R+29−29tests/testthat/test-mst.R+42−42tests/testthat/test-root_tree.h.R+139−139tests/testthat/test-sort.R+22−22tests/testthat/test-split_analysis.R+11−11tests/testthat/test-splits.cpp.R+37−37tests/testthat/test-tree_ancestors.R+20−20tests/testthat/test-tree_comparison.R+24−24tests/testthat/test-tree_descendants.R+84−84tests/testthat/test-tree_display.R+64−64tests/testthat/test-tree_generation-random.R+45−45tests/testthat/test-tree_information.R+19−19tests/testthat/test-tree_numbering.R+27tests/testthat/testdata/nonPreCons.nex+24−24vignettes/filesystem-navigation.Rmd+52−52vignettes/load-data.Rmd+214−214vignettes/load-trees.Rmd+125−125Number of R function definitions the static analyzer detected across the package's R/ source, counted one per definition.
Number of C++ functions the analyzer detected in the package's compiled sources under src/, one count per function.
Number of C functions the analyzer detected in the package's compiled sources under src/, one count per function.
Number of Fortran subroutines and functions the analyzer detected in the package's compiled sources under src/.
Number of Rust functions the analyzer detected under src/, with vendored crates left out.
Share, from 0 to 1, of all counted lines of code (R, src, tests, docs, vignettes) living in compiled files under src/, Rust included and vendored Rust crates left out.
Total lines of source across all non-binary files in the package's man/ directory, i.e. its Rd help pages.
Share of the package's exported symbols that appear as a name or alias in at least one help page, with lowercase .rd files counted and Rd macro files under man/macros left out.
Share of help pages that include a references section. It counts references written in the help pages and says nothing about a bibliography file.
Share of help pages carrying an examples section, with lowercase .rd files counted and Rd macro files under man/macros left out.
Number of help pages that contain at least one examples section, with lowercase .rd files counted and Rd macro files under man/macros left out.
Average share of a function's usage arguments lacking a matching entry in its arguments section, over exported functions, with lowercase .rd files counted.
Share of exported-function help pages that document their return value with a value section, with lowercase .rd files counted.
One when the analysed release carries a README at the package root, in Markdown, R Markdown, Quarto or plain text.
One when the analysed release carries at least one vignette source under vignettes/, in any engine R builds.
One when the analysed release carries a NEWS file in any location R reads, at the root or under inst/.
One when the analysed release carries an inst/CITATION file. The file is read as text and never run.
Number of help pages in the analysed release, counting lowercase .rd files and leaving out Rd macro files under man/macros.
Number of help pages whose examples run in a plain check, because some example code sits outside dontrun, donttest, dontshow and testonly.
Number of help pages whose examples run only when donttest examples are enabled, which R CMD check does with its as-cran option.
Number of help pages whose example code sits only inside dontrun, dontshow or testonly. Code in dontshow and testonly does run, but it is hidden from the reader, so no example the reader sees is run.
Approximate number of individual test blocks (such as test_that() calls) defined across the files in the package's tests/ directory.
Number of tests the main test framework defines, counted in its own unit, such as test_that() blocks for testthat or test functions for RUnit.
Number of testthat blocks that skip themselves unless the NOT_CRAN variable is set. It is a lower bound, because only direct calls and one level of helper are followed.
Total lines of code in the tests/ directory divided by the lines of code in R/, left blank when R/ has no lines.
Count of expect_snapshot() and expect_snapshot_file() calls in test R files, plus the number of stored snapshot files under tests/testthat/_snaps/.
Flag set to one when any file at all exists under the package's tests/ directory, and zero otherwise.
The Config/testthat/edition value declared in DESCRIPTION (typically 2 or 3), reported as an integer, and left blank when the field is absent.
Share of NAMESPACE-exported functions whose name appears as a literal word token somewhere in the tests/ files, and left blank when nothing is exported.
Among test files that call RNG functions like sample/runif/rnorm/rbinom, the fraction that also call set.seed(), and left blank when none use randomness.
Average cyclomatic complexity of the package's R functions, where each function scores one plus its number of branching decision points.
Highest cyclomatic complexity among the package's R functions, flagging its single most branch-heavy and hardest-to-test routine.
Median cyclomatic complexity across the package's R functions, the typical function's branch count, resistant to a few very complex outliers.
Average length in lines of a function's body across the package, a rough gauge of how large typical functions are.
Number of R functions defined in the package, each treated as one node in its syntactic call graph.
Count of distinct directed caller-to-callee links where one package function calls another package function, excluding self-calls and duplicates.
Highest number of call connections (functions it calls plus functions that call it) attached to any single function.
Average call connections per function across all nodes, counting both calls made and calls received, including unconnected functions.
Count of package functions that neither call nor are called by any other package function (degree zero).
Number of connected components formed by functions linked through calls, where functions with no call edges are not counted.
Total number of .Call, .C, .Fortran, and .External invocations in R code that reach into compiled C/C++/Fortran routines.
Number of S3 methods the package registers, counted from the S3method(generic, class) directives declared in its NAMESPACE file.
Count of formal S4 class definitions in the package's R source, identified by setClass() calls from the methods system.
Count of S4 generic functions the package declares in its R code, identified by setGeneric() calls.
Count of S4 methods the package defines for generics on specific classes, identified by setMethod() calls in R source.
Count of R6 class definitions in the package's R source, found by calls to the R6Class constructor from the R6 package.
Count of classes built with the newer S7 object system, identified by new_class() calls in the package's R source.
Count of Reference Classes (R5) defined in the package's R source, identified by setRefClass() calls from the methods system.
A weighted tally of risky constructs in R/ code such as eval(parse()), system(paste()), non-literal Sys.setenv, and network calls inside load hooks.
Number of likely credential leaks across non-binary text files such as AWS keys, GitHub tokens, and api-key/secret/password assignments to long literal strings.
Per 1000 lines of R code, count of global-state writes such as <<-, assign() to the global environment, options() setters, and Sys.setenv().
Per 1000 lines of R code, how often dated idioms appear, such as bare T and F, risky 1-to-n index ranges, in-function require() or library() calls, and .Internal() calls.
How often R/ code reaches into another package's private, unexported internals.
Number of packages the DESCRIPTION lists under Imports plus Depends, with version constraints stripped off and base R itself excluded.
Cross-version measure, derived from the ordered release series, of how much the direct dependency set shifts as packages are added or dropped between releases.
Number of distinct external OS-level dependencies listed in the DESCRIPTION SystemRequirements field, split on commas and "and" (case-insensitive).
1 when every token in the License field matches a known R-canonical or SPDX identifier from a fixed allowlist.
1 when every license token is OSI-approved, excluding CC0, CC-BY, Unlimited, and bare file-reference licenses that cannot be verified.
70 comparison rows · 9 improved, 1 regressed, 0 added, 0 removed, 60 unchanged. Select any info icon for its definition, or see the full glossary.