Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Defer inclusion of generated quantity code #364

Merged
merged 9 commits into from
Jun 21, 2024
Merged

Defer inclusion of generated quantity code #364

merged 9 commits into from
Jun 21, 2024

Conversation

gowerc
Copy link
Collaborator

@gowerc gowerc commented Jun 19, 2024

Closes #322

General gist is that all generated quantity code had to be defined in advance even though its not used/compiled until the post processing. This was slightly awkward that it meant the user can't alter the GQ code without re-compiling / re-sampling the whole model and it was in complete contrast to how we handle the link code. This PR attempts to rectify this. All round this isn't that much of a feature change but hopefully just makes the package a tiny bit easier to use with some more separation of concerns.

@gowerc gowerc requested a review from gravesti June 19, 2024 15:53
Copy link
Contributor

github-actions bot commented Jun 19, 2024

badge

Code Coverage Summary

Filename                           Stmts    Miss  Cover    Missing
-------------------------------  -------  ------  -------  --------------------------------
R/brier_score.R                      166       0  100.00%
R/DataJoint.R                         76       2  97.37%   264, 270
R/DataLongitudinal.R                 119       1  99.16%   244
R/DataSubject.R                       85       1  98.82%   142
R/DataSurvival.R                      98       0  100.00%
R/defaults.R                          10       6  40.00%   18-57, 84
R/generics.R                          33       4  87.88%   51, 395, 415, 470
R/Grid.R                              27       1  96.30%   173
R/GridEven.R                          32       0  100.00%
R/GridEvent.R                         22       0  100.00%
R/GridFixed.R                         30       0  100.00%
R/GridGrouped.R                       52       0  100.00%
R/GridManual.R                        23       3  86.96%   78-80
R/GridObserved.R                      20       0  100.00%
R/GridPopulation.R                    31       4  87.10%   61, 69-71
R/GridPrediction.R                    36       6  83.33%   83, 91-95
R/JointModel.R                       125       8  93.60%   146-148, 198, 202, 244, 290, 296
R/JointModelSamples.R                 63       0  100.00%
R/link_generics.R                     13       3  76.92%   59, 76, 91
R/Link.R                              62       4  93.55%   200-203
R/LinkComponent.R                     19       3  84.21%   88, 120-121
R/LongitudinalGSF.R                   83       0  100.00%
R/LongitudinalModel.R                 19       0  100.00%
R/LongitudinalQuantities.R            71       0  100.00%
R/LongitudinalRandomSlope.R           42       5  88.10%   98-102
R/LongitudinalSteinFojo.R             76       6  92.11%   116, 148-152
R/Parameter.R                         14       0  100.00%
R/ParameterList.R                     42       1  97.62%   184
R/Prior.R                            236       8  96.61%   481, 577, 589-607
R/Promise.R                           25       0  100.00%
R/Quantities.R                        60       0  100.00%
R/QuantityGeneratorPopulation.R       22       0  100.00%
R/QuantityGeneratorPrediction.R       48       0  100.00%
R/QuantityGeneratorSubject.R          19       0  100.00%
R/settings.R                          12      12  0.00%    55-69
R/SimGroup.R                           5       0  100.00%
R/SimJointData.R                      72       1  98.61%   103
R/SimLongitudinal.R                    5       2  60.00%   22, 40
R/SimLongitudinalGSF.R                53       0  100.00%
R/SimLongitudinalRandomSlope.R        42       0  100.00%
R/SimLongitudinalSteinFojo.R          50       0  100.00%
R/SimSurvival.R                      104       0  100.00%
R/StanModel.R                         15       0  100.00%
R/StanModule.R                       176       6  96.59%   192-193, 235, 246, 383, 411
R/SurvivalExponential.R               10       0  100.00%
R/SurvivalLoglogistic.R               11       0  100.00%
R/SurvivalModel.R                     19       0  100.00%
R/SurvivalQuantities.R               170       1  99.41%   125
R/SurvivalWeibullPH.R                 11       0  100.00%
R/utilities.R                        143       1  99.30%   13
R/zzz.R                               28      25  10.71%   3, 8-12, 14-35, 47
TOTAL                               2825     114  95.96%

Diff against main

Filename                       Stmts    Miss  Cover
---------------------------  -------  ------  --------
R/generics.R                      +2       0  +0.78%
R/JointModel.R                    +2       0  +0.10%
R/JointModelSamples.R             +4       0  +100.00%
R/LongitudinalGSF.R               +1       0  +100.00%
R/LongitudinalRandomSlope.R       +1       0  +0.29%
R/LongitudinalSteinFojo.R         +1      +1  -1.23%
TOTAL                            +11      +1  -0.02%

Results for commit: 5375571

Minimum allowed coverage is 80%

♻️ This comment has been updated with latest results

Copy link
Contributor

github-actions bot commented Jun 19, 2024

Unit Tests Summary

  1 files  140 suites   6m 28s ⏱️
131 tests 128 ✅ 3 💤 0 ❌
975 runs  972 ✅ 3 💤 0 ❌

Results for commit 5375571.

♻️ This comment has been updated with latest results.

Copy link
Contributor

github-actions bot commented Jun 19, 2024

Unit Test Performance Difference

Test Suite $Status$ Time on main $±Time$ $±Tests$ $±Skipped$ $±Failures$ $±Errors$
JointModelSamples 💚 $37.04$ $-7.00$ $0$ $0$ $0$ $0$
compile 💔 $2.91$ $+3.46$ $0$ $0$ $0$ $0$
extract_quantities 💚 $9.54$ $-9.52$ $0$ $0$ $0$ $0$
model_multi_chain 💚 $33.75$ $-25.01$ $0$ $0$ $0$ $0$
Additional test case details
Test Suite $Status$ Time on main $±Time$ Test Case
Grid 💚 $24.43$ $-2.64$ Grid_objects_work_with_QuantityGenerator_and_QuantityCollapser
GridPrediction 💚 $153.59$ $-27.30$ GridPrediction_works_as_expected_for_Survival_models
JointModelSamples 💚 $37.04$ $-7.00$ print_works_as_expected_for_JointModelSamples
LongitudinalQuantiles 💚 $52.44$ $-5.30$ Test_that_LongitudinalQuantities_works_as_expected
LongitudinalRandomSlope 💚 $14.85$ $-1.47$ Print_method_for_LongitudinalRandomSlope_works_as_expected
LongitudinalSteinFojo 💚 $4.42$ $-1.10$ LongitudinalSteinFojo_works_as_expected_with_default_arguments
SurvivalExponential 💔 $13.38$ $+8.13$ SurvivalExponential_can_recover_true_parameter_including_covariates_
SurvivalLoglogistic 💚 $16.77$ $-6.17$ sim_os_loglogistic_is_consistant_with_flexsurv
SurvivalQuantities 💔 $11.52$ $+11.05$ SurvivalQuantities_and_autoplot.SurvivalQuantities_works_as_expected
SurvivalWeibullPH 💔 $7.26$ $+16.13$ Print_method_for_SurvivalWeibullPH_works_as_expected
brierScore 💚 $33.98$ $-28.78$ brierScore_SurvivalQuantities_returns_same_results_as_survreg
compile 💔 $2.91$ $+3.46$ compileStanModel_doesn_t_error_if_the_directory_doesn_t_exist
extract_quantities 💚 $9.54$ $-9.52$ extract_quantities_works_as_expected
model_multi_chain 💚 $33.75$ $-25.01$ Can_recover_known_distribution_parameters_from_random_slope_model_when_using_multiple_chains
stan_functions 💔 $15.94$ $+8.62$ GSF_SLD_function_works_as_expected

Results for commit 9e4ef53

♻️ This comment has been updated with latest results.

Copy link
Collaborator

@gravesti gravesti left a comment

Choose a reason for hiding this comment

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

@gowerc Looks ok to me. Should there any new tests or changes to existing tests?

@gowerc
Copy link
Collaborator Author

gowerc commented Jun 20, 2024

@gowerc Looks ok to me. Should there any new tests or changes to existing tests?

I don't think so as this is more of an internal re-structure rather than any new functionality. I guess you could put in an explicit unit test on the call to enableGQ but honestly thats already fully covered by the integration tests of calling LongitudinalQuantities.

I think main thing I was worried about was that the documentation actually makes sense as its hard for me to think what makes intuitive sense to someone who isn't as aware of the project internals.

gravesti
gravesti previously approved these changes Jun 21, 2024
Copy link
Collaborator

@gravesti gravesti left a comment

Choose a reason for hiding this comment

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

Docs read better now @gowerc
I just spotted one typo to fix

@gowerc gowerc merged commit fe04d4a into main Jun 21, 2024
24 checks passed
@gowerc gowerc deleted the 322-defer-gq branch June 21, 2024 14:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Defer generated quantity code
2 participants