Skip to content

Conversation

iaugusty
Copy link
Collaborator

Pull Request

Fixes #1431

Copy link
Contributor

github-actions bot commented Aug 12, 2025

Unit Tests Summary

    1 files     85 suites   1m 21s ⏱️
  888 tests   879 ✅   9 💤 0 ❌
1 907 runs  1 207 ✅ 700 💤 0 ❌

Results for commit 891f9fa.

♻️ This comment has been updated with latest results.

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 d5c69fa

♻️ This comment has been updated with latest results.

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                               260      22  91.54%   222, 396-403, 442-452, 561, 569
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                                      11969     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: 891f9fa

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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
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
4 participants