R Under development (unstable) (2026-03-13 r89618 ucrt) -- "Unsuffered Consequences" Copyright (C) 2026 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > library("testthat") > > test_check("stopmotion") Loading required package: stopmotion Attaching package: 'stopmotion' The following object is masked from 'package:base': scale 1 A [duplicated] 2 A 3 B 1 2 2 1 1 1 2 2 [centred] 1 1 [flipped] 2 2 [flipped] 1 1 [flopped] 2 2 [flopped] 1 1 [scaled] 2 2 [scaled] 1 1 [background] 2 2 [background] 1 1 [blurred] 2 2 [blurred] 1 1 [cropped] 2 2 [cropped] 1 1 [trimmed] 2 2 [trimmed] 1 1 [bordered] 2 2 [bordered] 1 1 [rotated] 2 2 [rotated] 1 1 2 1 [spliced] 3 2 1 1 2 1 [wiggled +3°] 3 1 [wiggled -3°] 4 2 5 2 [wiggled +3°] 6 2 [wiggled -3°] [ FAIL 0 | WARN 0 | SKIP 0 | PASS 166 ] > > # ── stopmotion function dependency map ──────────────────────────────────────── > # > # INTERNAL HELPERS (utils.R) > # ────────────────────────── > # > # get_labels() ──────────────────────────────────────────────────────────────┐ > # set_labels() ──────────────────────────────────────────────────────────────┤ > # print_frames() (calls get_labels(); gated by stopmotion_verbosity()) ──────┤ > # │ > # USER-FACING FUNCTIONS calls internal helpers? │ > # ───────────────────────────────────────────── ─────────────────────── │ > # │ > # [Load] │ > # read() ── set_labels() ◄─────────────────────────────────────◄─┤ > # │ > # [Restructure] │ > # arrange() ── get_labels, set_labels, print_frames ◄───────────────┤ > # duplicate() ── get_labels, set_labels, print_frames ◄───────────────┤ > # splice() ── get_labels, set_labels, print_frames ◄───────────────┤ > # │ > # [Transform] │ > # background() ── get_labels, set_labels, print_frames ◄───────────────┤ > # blur() ── get_labels, set_labels, print_frames ◄───────────────┤ > # border() ── get_labels, set_labels, print_frames ◄───────────────┤ > # centre() ── get_labels, set_labels, print_frames ◄───────────────┤ > # crop() ── get_labels, set_labels, print_frames ◄───────────────┤ > # flip() ── get_labels, set_labels, print_frames ◄───────────────┤ > # flop() ── get_labels, set_labels, print_frames ◄───────────────┤ > # rotate() ── get_labels, set_labels, print_frames ◄───────────────┤ > # scale() ── get_labels, set_labels, print_frames ◄───────────────┤ > # trim() ── get_labels, set_labels, print_frames ◄───────────────┤ > # wiggle() ── get_labels, set_labels, print_frames ◄───────────────┤ > # └── also applies image_rotate() twice (same primitive as │ > # rotate(), but always uses +degrees and -degrees pair) │ > # │ > # [Display] │ > # montage() ── (no internal helpers; wraps magick directly) │ > # preview() ── get_labels ◄─────────────────────────────────────────┘ > # > # ── Typical pipeline flow ───────────────────────────────────────────────── > # > # read() ──► arrange()? ──► [any transforms] ──► preview() / montage() > # > # [option] stopmotion_verbosity() controls whether print_frames() emits > # messages; defaults to interactive() if the option is unset. > > proc.time() user system elapsed 2.40 0.84 2.84