Skip to content

Conversation

@iaugusty
Copy link
Collaborator

Pull Request

Fixes #1431

@github-actions
Copy link
Contributor

github-actions bot commented Aug 12, 2025

Unit Tests Summary

    1 files     85 suites   1m 26s ⏱️
  888 tests   879 ✅   9 💤 0 ❌
1 908 runs  1 208 ✅ 700 💤 0 ❌

Results for commit d785dc9.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Contributor

github-actions bot commented Aug 12, 2025

Unit Test Performance Difference

Additional test case details
Test Suite $Status$ Time on main $±Time$ Test Case
analyze_variables 👶 $+0.05$ analyze_vars_works_with_all_NA_character_input
analyze_variables 👶 $+0.05$ analyze_vars_works_with_all_NA_factor_input

Results for commit 2a974f2

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Contributor

github-actions bot commented Aug 12, 2025

badge

Code Coverage Summary

Filename                                   Stmts    Miss  Cover    Missing
---------------------------------------  -------  ------  -------  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
R/abnormal_by_baseline.R                     101       3  97.03%   242, 244-245
R/abnormal_by_marked.R                        88       8  90.91%   94-98, 281, 283-284
R/abnormal_by_worst_grade.R                   94       3  96.81%   215, 217-218
R/abnormal_lab_worsen_by_baseline.R          159      10  93.71%   205-208, 213, 215-216, 459-461
R/abnormal.R                                  78       2  97.44%   222, 224
R/analyze_variables.R                        288       5  98.26%   586-589, 778
R/analyze_vars_in_cols.R                     178      14  92.13%   178, 221, 235-236, 238, 246-254
R/bland_altman.R                              92       1  98.91%   46
R/combination_function.R                       9       0  100.00%
R/compare_variables.R                         35       0  100.00%
R/control_incidence_rate.R                    10       0  100.00%
R/control_logistic.R                           7       0  100.00%
R/control_step.R                              23       1  95.65%   58
R/control_survival.R                          15       0  100.00%
R/count_cumulative.R                         115       4  96.52%   74, 270-271, 273
R/count_missed_doses.R                        89       4  95.51%   206-209
R/count_occurrences_by_grade.R               169       8  95.27%   178, 386, 388, 465, 467, 469, 473-474
R/count_occurrences.R                        137      10  92.70%   119, 262-264, 330-332, 334, 338-339
R/count_patients_events_in_cols.R             67       1  98.51%   60
R/count_patients_with_event.R                 73       2  97.26%   220, 223
R/count_patients_with_flags.R                 93       2  97.85%   234, 236
R/count_values.R                              61       2  96.72%   193, 196
R/cox_regression_inter.R                     154       0  100.00%
R/cox_regression.R                           161       0  100.00%
R/coxph.R                                    167       7  95.81%   191-195, 238, 253, 261, 267-268
R/d_pkparam.R                                406       0  100.00%
R/decorate_grob.R                            113       0  100.00%
R/desctools_binom_diff.R                     621      64  89.69%   53, 88-89, 125-126, 129, 199, 223-232, 264, 266, 286, 290, 294, 298, 353, 356, 359, 362, 422, 430, 439, 444-447, 454, 457, 466, 469, 516-517, 519-520, 522-523, 525-526, 593, 604-616, 620, 663, 676, 680
R/df_explicit_na.R                            30       0  100.00%
R/estimate_multinomial_rsp.R                  86       4  95.35%   65, 212, 214-215
R/estimate_proportion.R                      240       7  97.08%   88, 99, 255, 257-258, 389, 553
R/fit_rsp_step.R                              36       0  100.00%
R/fit_survival_step.R                         36       0  100.00%
R/formatting_functions.R                     183       2  98.91%   141, 276
R/g_forest.R                                 585      60  89.74%   240, 252-255, 260-261, 275, 277, 287-290, 335-338, 345, 414, 501, 514, 518-519, 524-525, 538, 554, 601, 630, 705, 714, 720, 739, 794-814, 817, 828, 847, 902, 905, 1040-1045
R/g_ipp.R                                    133       0  100.00%
R/g_km.R                                     350      57  83.71%   285-288, 307-309, 363-366, 400, 428, 432-475, 482-486
R/g_lineplot.R                               261      22  91.57%   222, 397-404, 443-453, 562, 570
R/g_step.R                                    68       1  98.53%   108
R/g_waterfall.R                               47       0  100.00%
R/h_adsl_adlb_merge_using_worst_flag.R        73       0  100.00%
R/h_biomarkers_subgroups.R                    91      23  74.73%   40-42, 84-103
R/h_cox_regression.R                         110       0  100.00%
R/h_incidence_rate.R                          45       0  100.00%
R/h_km.R                                     509      41  91.94%   137, 189-194, 287, 378, 380-381, 392-394, 413, 420-421, 423-425, 433-435, 460, 465-468, 651-654, 1108-1119
R/h_logistic_regression.R                    468       3  99.36%   203-204, 273
R/h_map_for_count_abnormal.R                  54       0  100.00%
R/h_pkparam_sort.R                            15       0  100.00%
R/h_response_biomarkers_subgroups.R           77      12  84.42%   50-55, 107-112
R/h_response_subgroups.R                     178      18  89.89%   257-270, 329-334
R/h_stack_by_baskets.R                        64       1  98.44%   89
R/h_step.R                                   180       0  100.00%
R/h_survival_biomarkers_subgroups.R           73       6  91.78%   111-116
R/h_survival_duration_subgroups.R            207      18  91.30%   259-271, 336-341
R/imputation_rule.R                           17       0  100.00%
R/incidence_rate.R                           103       7  93.20%   68-73, 242
R/logistic_regression.R                      102       0  100.00%
R/missing_data.R                              21       3  85.71%   32, 66, 76
R/odds_ratio.R                               157       4  97.45%   270-273
R/prop_diff_test.R                           144       2  98.61%   250, 252
R/prop_diff.R                                318      17  94.65%   71-74, 106, 299, 301, 387-394, 537, 702
R/prune_occurrences.R                         57       0  100.00%
R/response_biomarkers_subgroups.R            124      10  91.94%   88-91, 270-275
R/response_subgroups.R                       252      16  93.65%   100-105, 271-275, 280, 282-283, 310-311
R/riskdiff.R                                  65       4  93.85%   94-97
R/rtables_access.R                            38       0  100.00%
R/score_occurrences.R                         20       1  95.00%   124
R/split_cols_by_groups.R                      49       0  100.00%
R/stat.R                                      59       0  100.00%
R/summarize_ancova.R                         150       2  98.67%   327-328
R/summarize_change.R                          72       3  95.83%   175, 177-178
R/summarize_colvars.R                         13       1  92.31%   75
R/summarize_coxreg.R                         172       0  100.00%
R/summarize_glm_count.R                      269      10  96.28%   129-130, 202-203, 459-463, 596
R/summarize_num_patients.R                   121      10  91.74%   122-124, 244, 248, 252-253, 337-338, 340
R/summarize_patients_exposure_in_cols.R      155       7  95.48%   58, 232-233, 237, 357-358, 362
R/survival_biomarkers_subgroups.R            136      10  92.65%   117-122, 228-231
R/survival_coxph_pairwise.R                  124       5  95.97%   52-53, 248, 250-251
R/survival_duration_subgroups.R              250      15  94.00%   124-129, 268-273, 286, 288-289
R/survival_time.R                            120       1  99.17%   251
R/survival_timepoint.R                       153       2  98.69%   320, 322
R/utils_checkmate.R                           68       0  100.00%
R/utils_default_stats_formats_labels.R       196       0  100.00%
R/utils_factor.R                              87       1  98.85%   99
R/utils_ggplot.R                             110       0  100.00%
R/utils_grid.R                               126       5  96.03%   164, 279-286
R/utils_rtables.R                            125       9  92.80%   39, 46, 414-415, 537-541
R/utils_split_funs.R                          52       2  96.15%   82, 94
R/utils.R                                    143       7  95.10%   131, 134, 137, 141, 150-151, 345
TOTAL                                      11970     580  95.15%

Diff against main

Filename                 Stmts    Miss  Cover
---------------------  -------  ------  -------
R/analyze_variables.R       +1       0  +0.01%
TOTAL                       +1       0  +0.00%

Results for commit: d785dc9

Minimum allowed coverage is 80%

♻️ This comment has been updated with latest results

@iaugusty iaugusty requested a review from Melkiades August 12, 2025 15:58
@iaugusty iaugusty changed the title first attempt to resolve bugfix address bugfix Aug 14, 2025
@edelarua
Copy link
Contributor

Hi @iaugusty,

Thanks for the PR! I have updated your solution to simplify it a bit. All tests are passing but feel free to double check that this still works for you.

@edelarua edelarua changed the title address bugfix Fix a_summary() all-NA factor bug Aug 26, 2025
@edelarua edelarua added the sme label Aug 26, 2025
Copy link
Contributor

@edelarua edelarua left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be good to go after a final review by @iaugusty

@Melkiades
Copy link
Contributor

This should be good to go after a final review by @iaugusty

Thanks Emily for helping us finding a neat solution! :)

@shajoezhu
Copy link
Contributor

Thanks for the fix! @edelarua . @iaugusty can you please add tests to scda.test, we will merge this PR after the snapshot test is introduced. Thanks!

@iaugusty
Copy link
Collaborator Author

@edelarua indeed more elegant solution, thanks
@shajoezhu I'll take a look on how to add a test for this in scda.test

@iaugusty
Copy link
Collaborator Author

@shajoezhu could you provide some guidance on how to include a test for this scenario in scda.test, shall I eg include it as a special variant situation in eg test-table_dmt01.R, or would you prefer a separate program for a simple situation with this scenario? Any naming convention I need to follow, or any other guidance documentation you have would be helpfull.

@shajoezhu
Copy link
Contributor

hi @iaugusty

Please do the following

  1. at https://github.com/insightsengineering/scda.test, create a branch and raise PR, consider using example from, but the test case should demonstrate what you would like to do for this example, https://github.com/insightsengineering/scda.test/blob/main/tests/testthat/test-table_dmt01.R
  2. for your test, we can give it a name say test-table_jnj_tb1.R we can discuss with better naming in the future.
  3. change https://github.com/insightsengineering/scda.test/blob/main/DESCRIPTION#L50 to insightsengineering/tern@1431-bug-s_summaryfactor
  4. change https://github.com/insightsengineering/scda.test/blob/main/DESCRIPTION#L28 to tern (>= 0.9.9.9002)

@shajoezhu
Copy link
Contributor

@shajoezhu shajoezhu merged commit 1fcb202 into main Oct 10, 2025
29 checks passed
@shajoezhu shajoezhu deleted the 1431-bug-s_summaryfactor branch October 10, 2025 03:23
@github-actions github-actions bot locked and limited conversation to collaborators Oct 10, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: s_summary.factor when only missing values/level is present in data and option na_rm = TRUE

5 participants