CRAN Package Check Results for Package OpenLand

Last updated on 2024-03-26 08:53:34 CET.

Flavor Version Tinstall Tcheck Ttotal Status Flags
r-devel-linux-x86_64-debian-clang 1.0.2 36.81 458.98 495.79 ERROR
r-devel-linux-x86_64-debian-gcc 1.0.2 30.68 317.12 347.80 ERROR
r-devel-linux-x86_64-fedora-clang 1.0.2 567.61 ERROR
r-devel-linux-x86_64-fedora-gcc 1.0.2 569.32 ERROR
r-devel-windows-x86_64 1.0.2 30.00 259.00 289.00 ERROR
r-patched-linux-x86_64 1.0.2 34.18 412.18 446.36 ERROR
r-release-linux-x86_64 1.0.2 23.55 404.73 428.28 ERROR
r-release-macos-arm64 1.0.2 149.00 OK
r-release-macos-x86_64 1.0.2 306.00 OK
r-release-windows-x86_64 1.0.2 42.00 368.00 410.00 ERROR
r-oldrel-macos-arm64 1.0.2 108.00 OK
r-oldrel-windows-x86_64 1.0.2 42.00 349.00 391.00 ERROR

Additional issues

M1mac

Check Details

Version: 1.0.2
Check: tests
Result: ERROR Running ‘testthat.R’ [53s/56s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(OpenLand) > > test_check("OpenLand") [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] ══ Failed tests ════════════════════════════════════════════════════════════════ ── Failure ('test_plots.R:57:3'): Behavior of the other plots ────────────────── `str\(barplotLand\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : gropd_df \[30 × 4\] \(S3: grouped_df/tbl_df/tbl/data\.frame\)\\n \.\.\$ Year : int \[1:30\] 2001 2001 2001 2001 2001 2002 2002 2002 2002 2002 \.\.\.\\n \.\.\$ lulc : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 1 2 3 4 5 1 2 3 4 5 \.\.\.\\n \.\.\$ area : num \[1:30\] 0\.00191 0\.00199 0\.002 0\.002 0\.0021 \.\.\.\\n \.\.\$ \.group: int \[1:30\] 2 2 2 2 2 3 3 3 3 3 \.\.\.\\n \.\.- attr\(\*, "groups"\)= tibble \[6 × 2\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\. \.\.\$ Year : int \[1:6\] 2000 2001 2002 2003 2004 2005\\n \.\. \.\.\$ \.rows: list<int> \[1:6\] \\n \.\. \.\. \.\.\$ : int \[1:5\] 26 27 28 29 30\\n \.\. \.\. \.\.\$ : int \[1:5\] 1 2 3 4 5\\n \.\. \.\. \.\.\$ : int \[1:5\] 6 7 8 9 10\\n \.\. \.\. \.\.\$ : int \[1:5\] 11 12 13 14 15\\n \.\. \.\. \.\.\$ : int \[1:5\] 16 17 18 19 20\\n \.\. \.\. \.\.\$ : int \[1:5\] 21 22 23 24 25\\n \.\. \.\. \.\.@ ptype: int\(0\) \\n \.\. \.\.- attr\(\*, "\.drop"\)= logi TRUE\\n \$ layers :List of 1\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionDodge, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n preserve: total\\n required_aes: \\n setup_data: function\\n setup_params: function\\n width: NULL\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~as\.character\(Year\)\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x55ef57a50658> \\n \.\.\$ y: language ~area\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x55ef57a50658> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x55ef57a50658> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 4\\n \.\.\$ title: NULL\\n \.\.\$ y : chr "Area \(km2 or pixel\)"\\n \.\.\$ x : chr "Year"\\n \.\.\$ fill : chr "LUC Categories"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:57:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) ── Failure ('test_plots.R:59:3'): Behavior of the other plots ────────────────── `str\(netgrossplot\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : tibble \[200 × 5\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\.\$ Period : chr \[1:200\] "2000-2001" "2000-2001" "2000-2001" "2000-2001" \.\.\.\\n \.\.\$ area_gross: num \[1:200\] 0\.000388 0\.000379 0\.00038 0\.000411 0\.000403 0\.000416 0\.000368 0\.000445 0\.000387 0\.000399 \.\.\.\\n \.\.\$ From : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 3 3 3 3 4 4 4 4 2 2 \.\.\.\\n \.\.\$ To : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 4 2 1 5 3 2 1 5 3 4 \.\.\.\\n \.\.\$ changes : chr \[1:200\] "Gain" "Gain" "Gain" "Gain" \.\.\.\\n \$ layers :List of 4\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomSegment, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: linetype linewidth\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y xend\|yend\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomHline, Geom, gg>\\n aesthetics: function\\n check_constant_aes: FALSE\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: yintercept\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: FALSE\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~To\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x55ef595978c8> \\n \.\.\$ y: language ~area_gross\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x55ef595978c8> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x55ef595978c8> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 7\\n \.\.\$ title : NULL\\n \.\.\$ y : chr "Area \(Km2\)"\\n \.\.\$ x : chr "LUC category"\\n \.\.\$ fill : chr "Changes"\\n \.\.\$ xend : chr "as\.numeric\(To\) \+ 0\.3"\\n \.\.\$ yend : chr "area"\\n \.\.\$ yintercept: chr "yintercept"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:59:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] Error: Test failures Execution halted Flavor: r-devel-linux-x86_64-debian-clang

Version: 1.0.2
Check: tests
Result: ERROR Running ‘testthat.R’ [38s/62s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(OpenLand) > > test_check("OpenLand") [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] ══ Failed tests ════════════════════════════════════════════════════════════════ ── Failure ('test_plots.R:57:3'): Behavior of the other plots ────────────────── `str\(barplotLand\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : gropd_df \[30 × 4\] \(S3: grouped_df/tbl_df/tbl/data\.frame\)\\n \.\.\$ Year : int \[1:30\] 2001 2001 2001 2001 2001 2002 2002 2002 2002 2002 \.\.\.\\n \.\.\$ lulc : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 1 2 3 4 5 1 2 3 4 5 \.\.\.\\n \.\.\$ area : num \[1:30\] 0\.00191 0\.00199 0\.002 0\.002 0\.0021 \.\.\.\\n \.\.\$ \.group: int \[1:30\] 2 2 2 2 2 3 3 3 3 3 \.\.\.\\n \.\.- attr\(\*, "groups"\)= tibble \[6 × 2\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\. \.\.\$ Year : int \[1:6\] 2000 2001 2002 2003 2004 2005\\n \.\. \.\.\$ \.rows: list<int> \[1:6\] \\n \.\. \.\. \.\.\$ : int \[1:5\] 26 27 28 29 30\\n \.\. \.\. \.\.\$ : int \[1:5\] 1 2 3 4 5\\n \.\. \.\. \.\.\$ : int \[1:5\] 6 7 8 9 10\\n \.\. \.\. \.\.\$ : int \[1:5\] 11 12 13 14 15\\n \.\. \.\. \.\.\$ : int \[1:5\] 16 17 18 19 20\\n \.\. \.\. \.\.\$ : int \[1:5\] 21 22 23 24 25\\n \.\. \.\. \.\.@ ptype: int\(0\) \\n \.\. \.\.- attr\(\*, "\.drop"\)= logi TRUE\\n \$ layers :List of 1\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionDodge, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n preserve: total\\n required_aes: \\n setup_data: function\\n setup_params: function\\n width: NULL\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~as\.character\(Year\)\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x558cc8a6fa30> \\n \.\.\$ y: language ~area\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x558cc8a6fa30> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x558cc8a6fa30> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 4\\n \.\.\$ title: NULL\\n \.\.\$ y : chr "Area \(km2 or pixel\)"\\n \.\.\$ x : chr "Year"\\n \.\.\$ fill : chr "LUC Categories"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:57:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) ── Failure ('test_plots.R:59:3'): Behavior of the other plots ────────────────── `str\(netgrossplot\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : tibble \[200 × 5\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\.\$ Period : chr \[1:200\] "2000-2001" "2000-2001" "2000-2001" "2000-2001" \.\.\.\\n \.\.\$ area_gross: num \[1:200\] 0\.000388 0\.000379 0\.00038 0\.000411 0\.000403 0\.000416 0\.000368 0\.000445 0\.000387 0\.000399 \.\.\.\\n \.\.\$ From : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 3 3 3 3 4 4 4 4 2 2 \.\.\.\\n \.\.\$ To : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 4 2 1 5 3 2 1 5 3 4 \.\.\.\\n \.\.\$ changes : chr \[1:200\] "Gain" "Gain" "Gain" "Gain" \.\.\.\\n \$ layers :List of 4\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomSegment, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: linetype linewidth\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y xend\|yend\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomHline, Geom, gg>\\n aesthetics: function\\n check_constant_aes: FALSE\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: yintercept\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: FALSE\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~To\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x558cca619510> \\n \.\.\$ y: language ~area_gross\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x558cca619510> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x558cca619510> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 7\\n \.\.\$ title : NULL\\n \.\.\$ y : chr "Area \(Km2\)"\\n \.\.\$ x : chr "LUC category"\\n \.\.\$ fill : chr "Changes"\\n \.\.\$ xend : chr "as\.numeric\(To\) \+ 0\.3"\\n \.\.\$ yend : chr "area"\\n \.\.\$ yintercept: chr "yintercept"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:59:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] Error: Test failures Execution halted Flavor: r-devel-linux-x86_64-debian-gcc

Version: 1.0.2
Check: tests
Result: ERROR Running ‘testthat.R’ [59s/77s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(OpenLand) > > test_check("OpenLand") [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] ══ Failed tests ════════════════════════════════════════════════════════════════ ── Failure ('test_plots.R:57:3'): Behavior of the other plots ────────────────── `str\(barplotLand\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : gropd_df \[30 × 4\] \(S3: grouped_df/tbl_df/tbl/data\.frame\)\\n \.\.\$ Year : int \[1:30\] 2001 2001 2001 2001 2001 2002 2002 2002 2002 2002 \.\.\.\\n \.\.\$ lulc : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 1 2 3 4 5 1 2 3 4 5 \.\.\.\\n \.\.\$ area : num \[1:30\] 0\.00191 0\.00199 0\.002 0\.002 0\.0021 \.\.\.\\n \.\.\$ \.group: int \[1:30\] 2 2 2 2 2 3 3 3 3 3 \.\.\.\\n \.\.- attr\(\*, "groups"\)= tibble \[6 × 2\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\. \.\.\$ Year : int \[1:6\] 2000 2001 2002 2003 2004 2005\\n \.\. \.\.\$ \.rows: list<int> \[1:6\] \\n \.\. \.\. \.\.\$ : int \[1:5\] 26 27 28 29 30\\n \.\. \.\. \.\.\$ : int \[1:5\] 1 2 3 4 5\\n \.\. \.\. \.\.\$ : int \[1:5\] 6 7 8 9 10\\n \.\. \.\. \.\.\$ : int \[1:5\] 11 12 13 14 15\\n \.\. \.\. \.\.\$ : int \[1:5\] 16 17 18 19 20\\n \.\. \.\. \.\.\$ : int \[1:5\] 21 22 23 24 25\\n \.\. \.\. \.\.@ ptype: int\(0\) \\n \.\. \.\.- attr\(\*, "\.drop"\)= logi TRUE\\n \$ layers :List of 1\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionDodge, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n preserve: total\\n required_aes: \\n setup_data: function\\n setup_params: function\\n width: NULL\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~as\.character\(Year\)\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x55e8e9541190> \\n \.\.\$ y: language ~area\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x55e8e9541190> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x55e8e9541190> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 4\\n \.\.\$ title: NULL\\n \.\.\$ y : chr "Area \(km2 or pixel\)"\\n \.\.\$ x : chr "Year"\\n \.\.\$ fill : chr "LUC Categories"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:57:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) ── Failure ('test_plots.R:59:3'): Behavior of the other plots ────────────────── `str\(netgrossplot\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : tibble \[200 × 5\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\.\$ Period : chr \[1:200\] "2000-2001" "2000-2001" "2000-2001" "2000-2001" \.\.\.\\n \.\.\$ area_gross: num \[1:200\] 0\.000388 0\.000379 0\.00038 0\.000411 0\.000403 0\.000416 0\.000368 0\.000445 0\.000387 0\.000399 \.\.\.\\n \.\.\$ From : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 3 3 3 3 4 4 4 4 2 2 \.\.\.\\n \.\.\$ To : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 4 2 1 5 3 2 1 5 3 4 \.\.\.\\n \.\.\$ changes : chr \[1:200\] "Gain" "Gain" "Gain" "Gain" \.\.\.\\n \$ layers :List of 4\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomSegment, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: linetype linewidth\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y xend\|yend\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomHline, Geom, gg>\\n aesthetics: function\\n check_constant_aes: FALSE\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: yintercept\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: FALSE\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~To\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x55e8eb0cf708> \\n \.\.\$ y: language ~area_gross\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x55e8eb0cf708> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x55e8eb0cf708> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 7\\n \.\.\$ title : NULL\\n \.\.\$ y : chr "Area \(Km2\)"\\n \.\.\$ x : chr "LUC category"\\n \.\.\$ fill : chr "Changes"\\n \.\.\$ xend : chr "as\.numeric\(To\) \+ 0\.3"\\n \.\.\$ yend : chr "area"\\n \.\.\$ yintercept: chr "yintercept"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:59:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] Error: Test failures Execution halted Flavor: r-devel-linux-x86_64-fedora-clang

Version: 1.0.2
Check: tests
Result: ERROR Running ‘testthat.R’ [58s/64s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(OpenLand) > > test_check("OpenLand") [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] ══ Failed tests ════════════════════════════════════════════════════════════════ ── Failure ('test_plots.R:57:3'): Behavior of the other plots ────────────────── `str\(barplotLand\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : gropd_df \[30 × 4\] \(S3: grouped_df/tbl_df/tbl/data\.frame\)\\n \.\.\$ Year : int \[1:30\] 2001 2001 2001 2001 2001 2002 2002 2002 2002 2002 \.\.\.\\n \.\.\$ lulc : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 1 2 3 4 5 1 2 3 4 5 \.\.\.\\n \.\.\$ area : num \[1:30\] 0\.00191 0\.00199 0\.002 0\.002 0\.0021 \.\.\.\\n \.\.\$ \.group: int \[1:30\] 2 2 2 2 2 3 3 3 3 3 \.\.\.\\n \.\.- attr\(\*, "groups"\)= tibble \[6 × 2\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\. \.\.\$ Year : int \[1:6\] 2000 2001 2002 2003 2004 2005\\n \.\. \.\.\$ \.rows: list<int> \[1:6\] \\n \.\. \.\. \.\.\$ : int \[1:5\] 26 27 28 29 30\\n \.\. \.\. \.\.\$ : int \[1:5\] 1 2 3 4 5\\n \.\. \.\. \.\.\$ : int \[1:5\] 6 7 8 9 10\\n \.\. \.\. \.\.\$ : int \[1:5\] 11 12 13 14 15\\n \.\. \.\. \.\.\$ : int \[1:5\] 16 17 18 19 20\\n \.\. \.\. \.\.\$ : int \[1:5\] 21 22 23 24 25\\n \.\. \.\. \.\.@ ptype: int\(0\) \\n \.\. \.\.- attr\(\*, "\.drop"\)= logi TRUE\\n \$ layers :List of 1\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionDodge, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n preserve: total\\n required_aes: \\n setup_data: function\\n setup_params: function\\n width: NULL\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~as\.character\(Year\)\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x175018b8> \\n \.\.\$ y: language ~area\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x175018b8> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x175018b8> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 4\\n \.\.\$ title: NULL\\n \.\.\$ y : chr "Area \(km2 or pixel\)"\\n \.\.\$ x : chr "Year"\\n \.\.\$ fill : chr "LUC Categories"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:57:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) ── Failure ('test_plots.R:59:3'): Behavior of the other plots ────────────────── `str\(netgrossplot\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : tibble \[200 × 5\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\.\$ Period : chr \[1:200\] "2000-2001" "2000-2001" "2000-2001" "2000-2001" \.\.\.\\n \.\.\$ area_gross: num \[1:200\] 0\.000388 0\.000379 0\.00038 0\.000411 0\.000403 0\.000416 0\.000368 0\.000445 0\.000387 0\.000399 \.\.\.\\n \.\.\$ From : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 3 3 3 3 4 4 4 4 2 2 \.\.\.\\n \.\.\$ To : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 4 2 1 5 3 2 1 5 3 4 \.\.\.\\n \.\.\$ changes : chr \[1:200\] "Gain" "Gain" "Gain" "Gain" \.\.\.\\n \$ layers :List of 4\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomSegment, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: linetype linewidth\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y xend\|yend\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomHline, Geom, gg>\\n aesthetics: function\\n check_constant_aes: FALSE\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: yintercept\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: FALSE\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~To\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x1905eb18> \\n \.\.\$ y: language ~area_gross\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x1905eb18> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x1905eb18> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 7\\n \.\.\$ title : NULL\\n \.\.\$ y : chr "Area \(Km2\)"\\n \.\.\$ x : chr "LUC category"\\n \.\.\$ fill : chr "Changes"\\n \.\.\$ xend : chr "as\.numeric\(To\) \+ 0\.3"\\n \.\.\$ yend : chr "area"\\n \.\.\$ yintercept: chr "yintercept"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:59:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] Error: Test failures Execution halted Flavor: r-devel-linux-x86_64-fedora-gcc

Version: 1.0.2
Check: tests
Result: ERROR Running 'testthat.R' [31s] Running the tests in 'tests/testthat.R' failed. Complete output: > library(testthat) > library(OpenLand) > > test_check("OpenLand") [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] ══ Failed tests ════════════════════════════════════════════════════════════════ ── Failure ('test_plots.R:57:3'): Behavior of the other plots ────────────────── `str\(barplotLand\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : gropd_df \[30 × 4\] \(S3: grouped_df/tbl_df/tbl/data\.frame\)\\n \.\.\$ Year : int \[1:30\] 2001 2001 2001 2001 2001 2002 2002 2002 2002 2002 \.\.\.\\n \.\.\$ lulc : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 1 2 3 4 5 1 2 3 4 5 \.\.\.\\n \.\.\$ area : num \[1:30\] 0\.00191 0\.00199 0\.002 0\.002 0\.0021 \.\.\.\\n \.\.\$ \.group: int \[1:30\] 2 2 2 2 2 3 3 3 3 3 \.\.\.\\n \.\.- attr\(\*, "groups"\)= tibble \[6 × 2\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\. \.\.\$ Year : int \[1:6\] 2000 2001 2002 2003 2004 2005\\n \.\. \.\.\$ \.rows: list<int> \[1:6\] \\n \.\. \.\. \.\.\$ : int \[1:5\] 26 27 28 29 30\\n \.\. \.\. \.\.\$ : int \[1:5\] 1 2 3 4 5\\n \.\. \.\. \.\.\$ : int \[1:5\] 6 7 8 9 10\\n \.\. \.\. \.\.\$ : int \[1:5\] 11 12 13 14 15\\n \.\. \.\. \.\.\$ : int \[1:5\] 16 17 18 19 20\\n \.\. \.\. \.\.\$ : int \[1:5\] 21 22 23 24 25\\n \.\. \.\. \.\.@ ptype: int\(0\) \\n \.\. \.\.- attr\(\*, "\.drop"\)= logi TRUE\\n \$ layers :List of 1\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionDodge, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n preserve: total\\n required_aes: \\n setup_data: function\\n setup_params: function\\n width: NULL\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~as\.character\(Year\)\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x00000258d75b73f8> \\n \.\.\$ y: language ~area\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x00000258d75b73f8> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x00000258d75b73f8> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 4\\n \.\.\$ title: NULL\\n \.\.\$ y : chr "Area \(km2 or pixel\)"\\n \.\.\$ x : chr "Year"\\n \.\.\$ fill : chr "LUC Categories"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:57:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) ── Failure ('test_plots.R:59:3'): Behavior of the other plots ────────────────── `str\(netgrossplot\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : tibble \[200 × 5\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\.\$ Period : chr \[1:200\] "2000-2001" "2000-2001" "2000-2001" "2000-2001" \.\.\.\\n \.\.\$ area_gross: num \[1:200\] 0\.000388 0\.000379 0\.00038 0\.000411 0\.000403 0\.000416 0\.000368 0\.000445 0\.000387 0\.000399 \.\.\.\\n \.\.\$ From : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 3 3 3 3 4 4 4 4 2 2 \.\.\.\\n \.\.\$ To : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 4 2 1 5 3 2 1 5 3 4 \.\.\.\\n \.\.\$ changes : chr \[1:200\] "Gain" "Gain" "Gain" "Gain" \.\.\.\\n \$ layers :List of 4\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomSegment, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: linetype linewidth\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y xend\|yend\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomHline, Geom, gg>\\n aesthetics: function\\n check_constant_aes: FALSE\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: yintercept\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: FALSE\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~To\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x0000025a1d75b260> \\n \.\.\$ y: language ~area_gross\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x0000025a1d75b260> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x0000025a1d75b260> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 7\\n \.\.\$ title : NULL\\n \.\.\$ y : chr "Area \(Km2\)"\\n \.\.\$ x : chr "LUC category"\\n \.\.\$ fill : chr "Changes"\\n \.\.\$ xend : chr "as\.numeric\(To\) \+ 0\.3"\\n \.\.\$ yend : chr "area"\\n \.\.\$ yintercept: chr "yintercept"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:59:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] Error: Test failures Execution halted Flavor: r-devel-windows-x86_64

Version: 1.0.2
Check: tests
Result: ERROR Running ‘testthat.R’ [49s/61s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(OpenLand) > > test_check("OpenLand") [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] ══ Failed tests ════════════════════════════════════════════════════════════════ ── Failure ('test_plots.R:57:3'): Behavior of the other plots ────────────────── `str\(barplotLand\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : gropd_df \[30 × 4\] \(S3: grouped_df/tbl_df/tbl/data\.frame\)\\n \.\.\$ Year : int \[1:30\] 2001 2001 2001 2001 2001 2002 2002 2002 2002 2002 \.\.\.\\n \.\.\$ lulc : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 1 2 3 4 5 1 2 3 4 5 \.\.\.\\n \.\.\$ area : num \[1:30\] 0\.00191 0\.00199 0\.002 0\.002 0\.0021 \.\.\.\\n \.\.\$ \.group: int \[1:30\] 2 2 2 2 2 3 3 3 3 3 \.\.\.\\n \.\.- attr\(\*, "groups"\)= tibble \[6 × 2\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\. \.\.\$ Year : int \[1:6\] 2000 2001 2002 2003 2004 2005\\n \.\. \.\.\$ \.rows: list<int> \[1:6\] \\n \.\. \.\. \.\.\$ : int \[1:5\] 26 27 28 29 30\\n \.\. \.\. \.\.\$ : int \[1:5\] 1 2 3 4 5\\n \.\. \.\. \.\.\$ : int \[1:5\] 6 7 8 9 10\\n \.\. \.\. \.\.\$ : int \[1:5\] 11 12 13 14 15\\n \.\. \.\. \.\.\$ : int \[1:5\] 16 17 18 19 20\\n \.\. \.\. \.\.\$ : int \[1:5\] 21 22 23 24 25\\n \.\. \.\. \.\.@ ptype: int\(0\) \\n \.\. \.\.- attr\(\*, "\.drop"\)= logi TRUE\\n \$ layers :List of 1\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionDodge, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n preserve: total\\n required_aes: \\n setup_data: function\\n setup_params: function\\n width: NULL\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~as\.character\(Year\)\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x558dbbbbbae8> \\n \.\.\$ y: language ~area\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x558dbbbbbae8> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x558dbbbbbae8> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 4\\n \.\.\$ title: NULL\\n \.\.\$ y : chr "Area \(km2 or pixel\)"\\n \.\.\$ x : chr "Year"\\n \.\.\$ fill : chr "LUC Categories"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:57:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) ── Failure ('test_plots.R:59:3'): Behavior of the other plots ────────────────── `str\(netgrossplot\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : tibble \[200 × 5\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\.\$ Period : chr \[1:200\] "2000-2001" "2000-2001" "2000-2001" "2000-2001" \.\.\.\\n \.\.\$ area_gross: num \[1:200\] 0\.000388 0\.000379 0\.00038 0\.000411 0\.000403 0\.000416 0\.000368 0\.000445 0\.000387 0\.000399 \.\.\.\\n \.\.\$ From : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 3 3 3 3 4 4 4 4 2 2 \.\.\.\\n \.\.\$ To : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 4 2 1 5 3 2 1 5 3 4 \.\.\.\\n \.\.\$ changes : chr \[1:200\] "Gain" "Gain" "Gain" "Gain" \.\.\.\\n \$ layers :List of 4\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomSegment, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: linetype linewidth\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y xend\|yend\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomHline, Geom, gg>\\n aesthetics: function\\n check_constant_aes: FALSE\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: yintercept\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: FALSE\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~To\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x558db3f46d20> \\n \.\.\$ y: language ~area_gross\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x558db3f46d20> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x558db3f46d20> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 7\\n \.\.\$ title : NULL\\n \.\.\$ y : chr "Area \(Km2\)"\\n \.\.\$ x : chr "LUC category"\\n \.\.\$ fill : chr "Changes"\\n \.\.\$ xend : chr "as\.numeric\(To\) \+ 0\.3"\\n \.\.\$ yend : chr "area"\\n \.\.\$ yintercept: chr "yintercept"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:59:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] Error: Test failures Execution halted Flavor: r-patched-linux-x86_64

Version: 1.0.2
Check: tests
Result: ERROR Running ‘testthat.R’ [48s/52s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(OpenLand) > > test_check("OpenLand") [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] ══ Failed tests ════════════════════════════════════════════════════════════════ ── Failure ('test_plots.R:57:3'): Behavior of the other plots ────────────────── `str\(barplotLand\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : gropd_df \[30 × 4\] \(S3: grouped_df/tbl_df/tbl/data\.frame\)\\n \.\.\$ Year : int \[1:30\] 2001 2001 2001 2001 2001 2002 2002 2002 2002 2002 \.\.\.\\n \.\.\$ lulc : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 1 2 3 4 5 1 2 3 4 5 \.\.\.\\n \.\.\$ area : num \[1:30\] 0\.00191 0\.00199 0\.002 0\.002 0\.0021 \.\.\.\\n \.\.\$ \.group: int \[1:30\] 2 2 2 2 2 3 3 3 3 3 \.\.\.\\n \.\.- attr\(\*, "groups"\)= tibble \[6 × 2\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\. \.\.\$ Year : int \[1:6\] 2000 2001 2002 2003 2004 2005\\n \.\. \.\.\$ \.rows: list<int> \[1:6\] \\n \.\. \.\. \.\.\$ : int \[1:5\] 26 27 28 29 30\\n \.\. \.\. \.\.\$ : int \[1:5\] 1 2 3 4 5\\n \.\. \.\. \.\.\$ : int \[1:5\] 6 7 8 9 10\\n \.\. \.\. \.\.\$ : int \[1:5\] 11 12 13 14 15\\n \.\. \.\. \.\.\$ : int \[1:5\] 16 17 18 19 20\\n \.\. \.\. \.\.\$ : int \[1:5\] 21 22 23 24 25\\n \.\. \.\. \.\.@ ptype: int\(0\) \\n \.\. \.\.- attr\(\*, "\.drop"\)= logi TRUE\\n \$ layers :List of 1\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionDodge, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n preserve: total\\n required_aes: \\n setup_data: function\\n setup_params: function\\n width: NULL\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~as\.character\(Year\)\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x56309ce6a5f0> \\n \.\.\$ y: language ~area\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x56309ce6a5f0> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x56309ce6a5f0> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 4\\n \.\.\$ title: NULL\\n \.\.\$ y : chr "Area \(km2 or pixel\)"\\n \.\.\$ x : chr "Year"\\n \.\.\$ fill : chr "LUC Categories"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:57:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) ── Failure ('test_plots.R:59:3'): Behavior of the other plots ────────────────── `str\(netgrossplot\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : tibble \[200 × 5\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\.\$ Period : chr \[1:200\] "2000-2001" "2000-2001" "2000-2001" "2000-2001" \.\.\.\\n \.\.\$ area_gross: num \[1:200\] 0\.000388 0\.000379 0\.00038 0\.000411 0\.000403 0\.000416 0\.000368 0\.000445 0\.000387 0\.000399 \.\.\.\\n \.\.\$ From : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 3 3 3 3 4 4 4 4 2 2 \.\.\.\\n \.\.\$ To : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 4 2 1 5 3 2 1 5 3 4 \.\.\.\\n \.\.\$ changes : chr \[1:200\] "Gain" "Gain" "Gain" "Gain" \.\.\.\\n \$ layers :List of 4\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomSegment, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: linetype linewidth\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y xend\|yend\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomHline, Geom, gg>\\n aesthetics: function\\n check_constant_aes: FALSE\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: yintercept\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: FALSE\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~To\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x563095594ac0> \\n \.\.\$ y: language ~area_gross\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x563095594ac0> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x563095594ac0> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 7\\n \.\.\$ title : NULL\\n \.\.\$ y : chr "Area \(Km2\)"\\n \.\.\$ x : chr "LUC category"\\n \.\.\$ fill : chr "Changes"\\n \.\.\$ xend : chr "as\.numeric\(To\) \+ 0\.3"\\n \.\.\$ yend : chr "area"\\n \.\.\$ yintercept: chr "yintercept"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:59:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] Error: Test failures Execution halted Flavor: r-release-linux-x86_64

Version: 1.0.2
Check: tests
Result: ERROR Running 'testthat.R' [44s] Running the tests in 'tests/testthat.R' failed. Complete output: > library(testthat) > library(OpenLand) > > test_check("OpenLand") [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] ══ Failed tests ════════════════════════════════════════════════════════════════ ── Failure ('test_plots.R:57:3'): Behavior of the other plots ────────────────── `str\(barplotLand\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : gropd_df \[30 × 4\] \(S3: grouped_df/tbl_df/tbl/data\.frame\)\\n \.\.\$ Year : int \[1:30\] 2001 2001 2001 2001 2001 2002 2002 2002 2002 2002 \.\.\.\\n \.\.\$ lulc : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 1 2 3 4 5 1 2 3 4 5 \.\.\.\\n \.\.\$ area : num \[1:30\] 0\.00191 0\.00199 0\.002 0\.002 0\.0021 \.\.\.\\n \.\.\$ \.group: int \[1:30\] 2 2 2 2 2 3 3 3 3 3 \.\.\.\\n \.\.- attr\(\*, "groups"\)= tibble \[6 × 2\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\. \.\.\$ Year : int \[1:6\] 2000 2001 2002 2003 2004 2005\\n \.\. \.\.\$ \.rows: list<int> \[1:6\] \\n \.\. \.\. \.\.\$ : int \[1:5\] 26 27 28 29 30\\n \.\. \.\. \.\.\$ : int \[1:5\] 1 2 3 4 5\\n \.\. \.\. \.\.\$ : int \[1:5\] 6 7 8 9 10\\n \.\. \.\. \.\.\$ : int \[1:5\] 11 12 13 14 15\\n \.\. \.\. \.\.\$ : int \[1:5\] 16 17 18 19 20\\n \.\. \.\. \.\.\$ : int \[1:5\] 21 22 23 24 25\\n \.\. \.\. \.\.@ ptype: int\(0\) \\n \.\. \.\.- attr\(\*, "\.drop"\)= logi TRUE\\n \$ layers :List of 1\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionDodge, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n preserve: total\\n required_aes: \\n setup_data: function\\n setup_params: function\\n width: NULL\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~as\.character\(Year\)\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x0000022c52c31cd0> \\n \.\.\$ y: language ~area\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x0000022c52c31cd0> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x0000022c52c31cd0> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 4\\n \.\.\$ title: NULL\\n \.\.\$ y : chr "Area \(km2 or pixel\)"\\n \.\.\$ x : chr "Year"\\n \.\.\$ fill : chr "LUC Categories"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:57:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) ── Failure ('test_plots.R:59:3'): Behavior of the other plots ────────────────── `str\(netgrossplot\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : tibble \[200 × 5\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\.\$ Period : chr \[1:200\] "2000-2001" "2000-2001" "2000-2001" "2000-2001" \.\.\.\\n \.\.\$ area_gross: num \[1:200\] 0\.000388 0\.000379 0\.00038 0\.000411 0\.000403 0\.000416 0\.000368 0\.000445 0\.000387 0\.000399 \.\.\.\\n \.\.\$ From : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 3 3 3 3 4 4 4 4 2 2 \.\.\.\\n \.\.\$ To : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 4 2 1 5 3 2 1 5 3 4 \.\.\.\\n \.\.\$ changes : chr \[1:200\] "Gain" "Gain" "Gain" "Gain" \.\.\.\\n \$ layers :List of 4\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomSegment, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: linetype linewidth\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y xend\|yend\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomHline, Geom, gg>\\n aesthetics: function\\n check_constant_aes: FALSE\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: yintercept\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: FALSE\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~To\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x0000022d98bcd570> \\n \.\.\$ y: language ~area_gross\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x0000022d98bcd570> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x0000022d98bcd570> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 7\\n \.\.\$ title : NULL\\n \.\.\$ y : chr "Area \(Km2\)"\\n \.\.\$ x : chr "LUC category"\\n \.\.\$ fill : chr "Changes"\\n \.\.\$ xend : chr "as\.numeric\(To\) \+ 0\.3"\\n \.\.\$ yend : chr "area"\\n \.\.\$ yintercept: chr "yintercept"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:59:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] Error: Test failures Execution halted Flavor: r-release-windows-x86_64

Version: 1.0.2
Check: tests
Result: ERROR Running 'testthat.R' [43s] Running the tests in 'tests/testthat.R' failed. Complete output: > library(testthat) > library(OpenLand) > > test_check("OpenLand") [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] ══ Failed tests ════════════════════════════════════════════════════════════════ ── Failure ('test_plots.R:57:3'): Behavior of the other plots ────────────────── `str\(barplotLand\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : gropd_df \[30 × 4\] \(S3: grouped_df/tbl_df/tbl/data\.frame\)\\n \.\.\$ Year : int \[1:30\] 2001 2001 2001 2001 2001 2002 2002 2002 2002 2002 \.\.\.\\n \.\.\$ lulc : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 1 2 3 4 5 1 2 3 4 5 \.\.\.\\n \.\.\$ area : num \[1:30\] 0\.00191 0\.00199 0\.002 0\.002 0\.0021 \.\.\.\\n \.\.\$ \.group: int \[1:30\] 2 2 2 2 2 3 3 3 3 3 \.\.\.\\n \.\.- attr\(\*, "groups"\)= tibble \[6 × 2\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\. \.\.\$ Year : int \[1:6\] 2000 2001 2002 2003 2004 2005\\n \.\. \.\.\$ \.rows: list<int> \[1:6\] \\n \.\. \.\. \.\.\$ : int \[1:5\] 26 27 28 29 30\\n \.\. \.\. \.\.\$ : int \[1:5\] 1 2 3 4 5\\n \.\. \.\. \.\.\$ : int \[1:5\] 6 7 8 9 10\\n \.\. \.\. \.\.\$ : int \[1:5\] 11 12 13 14 15\\n \.\. \.\. \.\.\$ : int \[1:5\] 16 17 18 19 20\\n \.\. \.\. \.\.\$ : int \[1:5\] 21 22 23 24 25\\n \.\. \.\. \.\.@ ptype: int\(0\) \\n \.\. \.\.- attr\(\*, "\.drop"\)= logi TRUE\\n \$ layers :List of 1\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionDodge, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n preserve: total\\n required_aes: \\n setup_data: function\\n setup_params: function\\n width: NULL\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~as\.character\(Year\)\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x00000165bd3ea050> \\n \.\.\$ y: language ~area\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x00000165bd3ea050> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x00000165bd3ea050> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 4\\n \.\.\$ title: NULL\\n \.\.\$ y : chr "Area \(km2 or pixel\)"\\n \.\.\$ x : chr "Year"\\n \.\.\$ fill : chr "LUC Categories"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:57:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) ── Failure ('test_plots.R:59:3'): Behavior of the other plots ────────────────── `str\(netgrossplot\(demo_cont\$lulc_Multistep, demo_cont\$tb_legend\)\)` does not match "List of 9". Actual value: "List of 11\\n \$ data : tibble \[200 × 5\] \(S3: tbl_df/tbl/data\.frame\)\\n \.\.\$ Period : chr \[1:200\] "2000-2001" "2000-2001" "2000-2001" "2000-2001" \.\.\.\\n \.\.\$ area_gross: num \[1:200\] 0\.000388 0\.000379 0\.00038 0\.000411 0\.000403 0\.000416 0\.000368 0\.000445 0\.000387 0\.000399 \.\.\.\\n \.\.\$ From : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 3 3 3 3 4 4 4 4 2 2 \.\.\.\\n \.\.\$ To : Factor w/ 5 levels "GUP","OZS","PSN",\.\.: 4 2 1 5 3 2 1 5 3 4 \.\.\.\\n \.\.\$ changes : chr \[1:200\] "Gain" "Gain" "Gain" "Gain" \.\.\.\\n \$ layers :List of 4\\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: waiver\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomBar, GeomRect, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: just na\.rm orientation\\n handle_na: function\\n non_missing_aes: xmin xmax ymin ymax\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class GeomRect, Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionStack, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n fill: FALSE\\n required_aes: \\n reverse: FALSE\\n setup_data: function\\n setup_params: function\\n type: NULL\\n vjust: 1\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: tbl_df, tbl, data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomSegment, Geom, gg>\\n aesthetics: function\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: linetype linewidth\\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: x y xend\|yend\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: TRUE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: NA\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \.\.\$ :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>\\n aes_params: list\\n compute_aesthetics: function\\n compute_geom_1: function\\n compute_geom_2: function\\n compute_position: function\\n compute_statistic: function\\n computed_geom_params: NULL\\n computed_mapping: NULL\\n computed_stat_params: NULL\\n constructor: call\\n data: data\.frame\\n draw_geom: function\\n finish_statistics: function\\n geom: <ggproto object: Class GeomHline, Geom, gg>\\n aesthetics: function\\n check_constant_aes: FALSE\\n default_aes: uneval\\n draw_group: function\\n draw_key: function\\n draw_layer: function\\n draw_panel: function\\n extra_params: na\.rm\\n handle_na: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n rename_size: TRUE\\n required_aes: yintercept\\n setup_data: function\\n setup_params: function\\n use_defaults: function\\n super: <ggproto object: Class Geom, gg>\\n geom_params: list\\n inherit\.aes: FALSE\\n layer_data: function\\n map_statistic: function\\n mapping: uneval\\n position: <ggproto object: Class PositionIdentity, Position, gg>\\n compute_layer: function\\n compute_panel: function\\n required_aes: \\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Position, gg>\\n print: function\\n setup_layer: function\\n show\.legend: FALSE\\n stat: <ggproto object: Class StatIdentity, Stat, gg>\\n aesthetics: function\\n compute_group: function\\n compute_layer: function\\n compute_panel: function\\n default_aes: uneval\\n dropped_aes: \\n extra_params: na\.rm\\n finish_layer: function\\n non_missing_aes: \\n optional_aes: \\n parameters: function\\n required_aes: \\n retransform: TRUE\\n setup_data: function\\n setup_params: function\\n super: <ggproto object: Class Stat, gg>\\n stat_params: list\\n super: <ggproto object: Class Layer, gg> \\n \$ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>\\n add: function\\n add_defaults: function\\n add_missing: function\\n backtransform_df: function\\n clone: function\\n find: function\\n get_scales: function\\n has_scale: function\\n input: function\\n map_df: function\\n n: function\\n non_position_scales: function\\n scales: list\\n train_df: function\\n transform_df: function\\n super: <ggproto object: Class ScalesList, gg> \\n \$ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>\\n add: function\\n assemble: function\\n build: function\\n draw: function\\n get_custom: function\\n get_guide: function\\n get_params: function\\n get_position: function\\n guides: NULL\\n merge: function\\n missing: <ggproto object: Class GuideNone, Guide, gg>\\n add_title: function\\n arrange_layout: function\\n assemble_drawing: function\\n available_aes: any\\n build_decor: function\\n build_labels: function\\n build_ticks: function\\n build_title: function\\n draw: function\\n draw_early_exit: function\\n elements: list\\n extract_decor: function\\n extract_key: function\\n extract_params: function\\n get_layer_key: function\\n hashables: list\\n measure_grobs: function\\n merge: function\\n override_elements: function\\n params: list\\n process_layers: function\\n setup_elements: function\\n setup_params: function\\n train: function\\n transform: function\\n super: <ggproto object: Class GuideNone, Guide, gg>\\n package_box: function\\n print: function\\n process_layers: function\\n setup: function\\n subset_guides: function\\n train: function\\n update_params: function\\n super: <ggproto object: Class Guides, gg> \\n \$ mapping :List of 2\\n \.\.\$ x: language ~To\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x00000165b9fc8ab0> \\n \.\.\$ y: language ~area_gross\\n \.\. \.\.- attr\(\*, "\.Environment"\)=<environment: 0x00000165b9fc8ab0> \\n \.\.- attr\(\*, "class"\)= chr "uneval"\\n \$ theme :List of 1\\n \.\.\$ plot\.title:List of 11\\n \.\. \.\.\$ family : NULL\\n \.\. \.\.\$ face : NULL\\n \.\. \.\.\$ colour : NULL\\n \.\. \.\.\$ size : NULL\\n \.\. \.\.\$ hjust : num 0\.5\\n \.\. \.\.\$ vjust : NULL\\n \.\. \.\.\$ angle : NULL\\n \.\. \.\.\$ lineheight : NULL\\n \.\. \.\.\$ margin : NULL\\n \.\. \.\.\$ debug : NULL\\n \.\. \.\.\$ inherit\.blank: logi FALSE\\n \.\. \.\.- attr\(\*, "class"\)= chr \[1:2\] "element_text" "element"\\n \.\.- attr\(\*, "complete"\)= logi FALSE\\n \.\.- attr\(\*, "validate"\)= logi TRUE\\n \$ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>\\n aspect: function\\n backtransform_range: function\\n clip: on\\n default: TRUE\\n distance: function\\n expand: TRUE\\n is_free: function\\n is_linear: function\\n labels: function\\n limits: list\\n modify_scales: function\\n range: function\\n render_axis_h: function\\n render_axis_v: function\\n render_bg: function\\n render_fg: function\\n setup_data: function\\n setup_layout: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n setup_params: function\\n train_panel_guides: function\\n transform: function\\n super: <ggproto object: Class CoordCartesian, Coord, gg> \\n \$ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>\\n compute_layout: function\\n draw_back: function\\n draw_front: function\\n draw_labels: function\\n draw_panels: function\\n finish_data: function\\n init_scales: function\\n map_data: function\\n params: list\\n setup_data: function\\n setup_params: function\\n shrink: TRUE\\n train_scales: function\\n vars: function\\n super: <ggproto object: Class FacetNull, Facet, gg> \\n \$ plot_env :<environment: 0x00000165b9fc8ab0> \\n \$ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>\\n coord: NULL\\n coord_params: list\\n facet: NULL\\n facet_params: list\\n finish_data: function\\n get_scales: function\\n layout: NULL\\n map_position: function\\n panel_params: NULL\\n panel_scales_x: NULL\\n panel_scales_y: NULL\\n render: function\\n render_labels: function\\n reset_scales: function\\n resolve_label: function\\n setup: function\\n setup_panel_guides: function\\n setup_panel_params: function\\n train_position: function\\n super: <ggproto object: Class Layout, gg> \\n \$ labels :List of 7\\n \.\.\$ title : NULL\\n \.\.\$ y : chr "Area \(Km2\)"\\n \.\.\$ x : chr "LUC category"\\n \.\.\$ fill : chr "Changes"\\n \.\.\$ xend : chr "as\.numeric\(To\) \+ 0\.3"\\n \.\.\$ yend : chr "area"\\n \.\.\$ yintercept: chr "yintercept"\\n - attr\(\*, "class"\)= chr \[1:2\] "gg" "ggplot"" Backtrace: ▆ 1. └─testthat::expect_output(...) at test_plots.R:59:3 2. └─testthat::expect_match(...) 3. └─testthat:::expect_match_(...) [ FAIL 2 | WARN 1 | SKIP 0 | PASS 110 ] Error: Test failures Execution halted Flavor: r-oldrel-windows-x86_64