insightsengineering / teal.slice

Reproducible slice module for teal applications
https://insightsengineering.github.io/teal.slice/
Other
11 stars 5 forks source link

handle unused levels and "" choice #587

Closed gogonzo closed 5 months ago

gogonzo commented 5 months ago

Fixes #586

  1. As noted here having "" in the vector of names is problematic as x[<choices>] would return NA for this item. This is why I switched to x[match(<choices>, names(x))]]
  2. droplevels(x) in the beginning of the constructor to not bother ChoicesFilterState with unused factor levels during a time when the class is working. It used to be this way so that zero-count-choices are never shown in the filter-state-card.
github-actions[bot] commented 5 months ago

CLA Assistant Lite bot ✅ All contributors have signed the CLA

gogonzo commented 5 months ago

I have read the CLA Document and I hereby sign the CLA

github-actions[bot] commented 5 months ago

Unit Tests Summary

  1 files   29 suites   22s :stopwatch: 362 tests 362 :white_check_mark: 0 :zzz: 0 :x: 830 runs  830 :white_check_mark: 0 :zzz: 0 :x:

Results for commit 7c53db23.

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 5 months ago

badge

Code Coverage Summary

Filename                        Stmts    Miss  Cover    Missing
----------------------------  -------  ------  -------  ------------------------------------------------------------------------------------------------------------------------------------------------------
R/FilterPanelAPI.R                 10       0  100.00%
R/FilterState-utils.R             101       2  98.02%   264, 294
R/FilterState.R                   361      61  83.10%   89, 212, 230-234, 241-242, 256-257, 263-264, 311, 313, 315, 367, 411, 639, 682-705, 715-734, 769-775, 784-790
R/FilterStateChoices.R            354     110  68.93%   301, 368-375, 379-396, 424-427, 440-451, 463-471, 475-504, 525-528, 531-534, 545-571, 582, 587, 598
R/FilterStateDate.R               215     129  40.00%   230, 282-439
R/FilterStateDatettime.R          309     199  35.60%   266, 318-549
R/FilterStateEmpty.R               53      31  41.51%   89, 99-104, 117, 129-169
R/FilterStateExpr.R                75      62  17.33%   149-272
R/FilterStateLogical.R            196     144  26.53%   136, 158, 218, 222-406
R/FilterStateRange.R              408     105  74.26%   262, 384, 510-514, 517-527, 530, 542-548, 559-571, 575-585, 589-591, 605-632, 647, 650, 664-681, 716-721, 731-733
R/FilterStates-utils.R             70       9  87.14%   108, 127, 188-194, 216, 245
R/FilterStates.R                  364      30  91.76%   78-82, 191, 314-323, 411-414, 457, 542-546, 591, 712-715
R/FilterStatesDF.R                  5       0  100.00%
R/FilterStatesMAE.R                10       1  90.00%   40
R/FilterStatesMatrix.R              3       0  100.00%
R/FilterStatesSE.R                211     157  25.59%   36, 71-73, 83-85, 109-116, 124-131, 154-302
R/FilteredData-utils.R             68      25  63.24%   21-24, 27-30, 52-57, 153, 175-184
R/FilteredData.R                  562     227  59.61%   110, 184, 326, 398, 501-510, 533, 554-595, 613-616, 632, 673-706, 721-723, 727-733, 762-790, 813-815, 819-821, 824-838, 842-852, 855-898, 939, 962-984
R/FilteredDataset-utils.R          23       1  95.65%   125
R/FilteredDataset.R               170      61  64.12%   52, 152, 191, 216-273, 312-314
R/FilteredDatasetDataframe.R      121       8  93.39%   87, 148, 158, 234-238
R/FilteredDatasetDefault.R         18       4  77.78%   103-116
R/FilteredDatasetMAE.R            134      37  72.39%   56, 117-122, 161-166, 170-171, 189-211
R/calls_combine_by.R                7       0  100.00%
R/choices_labeled.R                49      14  71.43%   25, 36, 41, 51-56, 68, 72-76
R/count_labels.R                  102       0  100.00%
R/filter_panel_api.R               29       1  96.55%   132
R/include_css_js.R                  5       5  0.00%    12-16
R/teal_slice.R                    107       4  96.26%   131, 195-196, 206
R/teal_slices.R                    84       5  94.05%   150-155
R/test_utils.R                     21       0  100.00%
R/utils.R                          18       0  100.00%
R/variable_types.R                 15       8  46.67%   44-51
R/zzz.R                            17      17  0.00%    3-47
TOTAL                            4295    1457  66.08%

Diff against main

Filename                  Stmts    Miss  Cover
----------------------  -------  ------  --------
R/FilterStateChoices.R      +12      -1  +1.38%
R/count_labels.R             +5       0  +100.00%
TOTAL                       +17      -1  +0.16%

Results for commit: 7c53db23ee691627af64fad40d3f23a626973081

Minimum allowed coverage is 80%

:recycle: This comment has been updated with latest results

github-actions[bot] commented 5 months ago

Unit Test Performance Difference

Test Suite $Status$ Time on main $±Time$ $±Tests$ $±Skipped$ $±Failures$ $±Errors$
FilteredData 💚 $10.30$ $-1.06$ $0$ $0$ $0$ $0$
Additional test case details | Test Suite | $Status$ | Time on `main` | $±Time$ | Test Case | |:-----|:----:|:----:|:----:|:-----| | ChoicesFilterState | 👶 | | $+0.02$ | constructor_doesn_t_drop_choice_and_includes_it_in_a_counts | | ChoicesFilterState | 👶 | | $+0.03$ | constructor_drops_zero_count_choices | | ChoicesFilterState | 👶 | | $+0.03$ | ui_input_with_filtered_x_reactive_outputs_filtered_counts |

Results for commit 9fe1f941cf0a61865d9543a394ada8b456f4d03e

♻️ This comment has been updated with latest results.

vedhav commented 5 months ago

I have read the CLA Document and I hereby sign the CLA