R Under development (unstable) (2026-01-13 r89301 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. > # This file is part of the standard setup for testthat. > # It is recommended that you do not modify it. > # > # Where should you do your testing? > # > # Learn more about testing at https://r-pkgs.org/testing-basics.html > > library(testthat) > library(joinspy) > > test_check("joinspy") -- Join Explanation ------------------------------------------------------------ -- Row Counts -- Left table (x): 3 rows Right table (y): 3 rows Result: 3 rows v Result has same row count as left table -- Why the row count changed -- i 1 left key(s) have no match in right table -- Join Explanation ------------------------------------------------------------ -- Row Counts -- Left table (x): 3 rows Right table (y): 3 rows Result: 3 rows v Result has same row count as left table -- Why the row count changed -- i 1 left key(s) have no match in right table -- Join Explanation ------------------------------------------------------------ -- Row Counts -- Left table (x): 3 rows Right table (y): 4 rows Result: 4 rows ! Result has 1 more rows than left table -- Why the row count changed -- i Right table has 1 duplicate key(s) - each match creates multiple rows -- Join Explanation ------------------------------------------------------------ -- Row Counts -- Left table (x): 3 rows Right table (y): 3 rows Result: 3 rows v Result has same row count as left table -- Why the row count changed -- i 1 left key(s) have no match in right table -- Join Diff ------------------------------------------------------------------- -- Dimensions -- Before: 3 rows x 2 columns After: 4 rows x 3 columns Change: "+1" rows, "+1" columns -- Column Changes -- v Added: name -- Join Diff ------------------------------------------------------------------- -- Dimensions -- Before: 3 rows x 2 columns After: 4 rows x 3 columns Change: "+1" rows, "+1" columns -- Column Changes -- v Added: name -- Join Diff ------------------------------------------------------------------- -- Dimensions -- Before: 3 rows x 2 columns After: 3 rows x 3 columns Change: "+0" rows, "+1" columns -- Column Changes -- v Added: name -- Join Diff ------------------------------------------------------------------- -- Dimensions -- Before: 3 rows x 3 columns After: 3 rows x 2 columns Change: "+0" rows, "-1" columns -- Column Changes -- x Removed: extra -- Join Diff ------------------------------------------------------------------- -- Dimensions -- Before: 3 rows x 2 columns After: 4 rows x 2 columns Change: "+1" rows, "+0" columns -- Column Changes -- No column changes -- Key Analysis -- Unique keys before: 3 Unique keys after: 3 Duplicate rows: "+2" v Repaired 3 value(s) v Repaired 2 value(s) v Repaired 1 value(s) -- Repair Preview (Dry Run) ---------------------------------------------------- -- Left table (x) -- i id: trimmed whitespace (2) v Repaired 2 value(s) x Cartesian product risk: result will be 2.6x larger than input -- Worst offending keys -- "1": 3 x 3 = 9 rows "2": 2 x 2 = 4 rows v No Cartesian product risk (expansion factor: 1x) i Detected cardinality: "1:1" i Detected cardinality: "1:m" Right duplicates: 1 key(s) i Detected cardinality: "m:1" Left duplicates: 1 key(s) i Detected cardinality: "m:m" Left duplicates: 1 key(s) Right duplicates: 1 key(s) -- Join Chain Analysis --------------------------------------------------------- -- Step 1: orders + customers -- Left: 3 rows Right: 3 rows Match rate: 100% Expected result: 3 rows (left join) ! 1 issue(s) detected -- Step 2: result + regions -- Left: 9 rows Right: 2 rows Match rate: 100% Expected result: 9 rows (left join) ! 1 issue(s) detected -- Chain Summary -- ! Total issues across chain: 2 [ FAIL 0 | WARN 0 | SKIP 0 | PASS 159 ] > > proc.time() user system elapsed 2.28 0.28 2.54