Skip to content

Conversation

@adendek
Copy link
Owner

@adendek adendek commented Jan 19, 2026

Test PR to check if the test are fine.

adendek and others added 8 commits January 18, 2026 20:55
- Restructured the repository to separate internal logic (`pina/_src`) from
  the public API.
- Migrated central components (Graph, LabelTensor, Operator, Trainer) into
  `pina/_src/core/` for better organization.
- Updated all subpackage `__init__.py` files to expose a clean, flat
  import surface for users.
- Standardized module docstrings across Solvers, Models, Equations,
  Domains, and Callbacks to improve documentation quality.
- Optimized internal dictionary handling in tensor storage functions.
This branch was created to be able to run all tests using on my fork.
@github-actions
Copy link

badge

Code Coverage Summary

Filename                                                                       Stmts    Miss  Cover    Missing
---------------------------------------------------------------------------  -------  ------  -------  ----------------------------------------------------------------------------------------------
__init__.py                                                                        7       0  100.00%
graph.py                                                                           2       0  100.00%
label_tensor.py                                                                    2       0  100.00%
operator.py                                                                        2       0  100.00%
trainer.py                                                                         2       0  100.00%
type_checker.py                                                                    2       0  100.00%
utils.py                                                                           2       0  100.00%
_src/__init__.py                                                                   0       0  100.00%
_src/adaptive_function/__init__.py                                                 0       0  100.00%
_src/adaptive_function/adaptive_function.py                                       55       0  100.00%
_src/adaptive_function/adaptive_function_interface.py                             51       6  88.24%   98, 141, 148-151
_src/callback/__init__.py                                                          0       0  100.00%
_src/callback/optim/__init__.py                                                    0       0  100.00%
_src/callback/optim/switch_optimizer.py                                           23       0  100.00%
_src/callback/optim/switch_scheduler.py                                           21       0  100.00%
_src/callback/processing/__init__.py                                               0       0  100.00%
_src/callback/processing/metric_tracker.py                                        24       3  87.50%   37-38, 68
_src/callback/processing/normalizer_data_callback.py                              68       1  98.53%   141
_src/callback/processing/pina_progress_bar.py                                     26       2  92.31%   90, 93
_src/callback/refinement/__init__.py                                               0       0  100.00%
_src/callback/refinement/r3_refinement.py                                         26       1  96.15%   104
_src/callback/refinement/refinement_interface.py                                  50       5  90.00%   34, 61, 69, 74, 80
_src/condition/__init__.py                                                         0       0  100.00%
_src/condition/condition.py                                                       19       1  94.74%   143
_src/condition/condition_interface.py                                             37       4  89.19%   32, 76, 95, 125
_src/condition/data_condition.py                                                  26       1  96.15%   78
_src/condition/domain_equation_condition.py                                       19       0  100.00%
_src/condition/input_equation_condition.py                                        43       1  97.67%   157
_src/condition/input_target_condition.py                                          44       1  97.73%   172
_src/core/__init__.py                                                              0       0  100.00%
_src/core/graph.py                                                               114      11  90.35%   99-100, 112, 124, 126, 142, 144, 166, 169, 182, 271
_src/core/label_tensor.py                                                        251      24  90.44%   81, 121, 148, 165, 177, 182, 188-193, 273, 280, 332, 348, 444-447, 490, 537, 629, 664-673, 710
_src/core/operator.py                                                             72       2  97.22%   268, 464
_src/core/trainer.py                                                              87       5  94.25%   215-224, 313, 334, 338
_src/core/type_checker.py                                                         22       0  100.00%
_src/core/utils.py                                                                73       7  90.41%   59, 75, 141, 178, 181, 184, 268
_src/data/__init__.py                                                              0       0  100.00%
_src/data/data_module.py                                                         201      22  89.05%   41-52, 132, 172, 193, 232, 313-317, 323-327, 399, 466, 547, 638, 640
_src/data/dataset.py                                                              82       7  91.46%   42, 123-126, 256, 293
_src/domain/__init__.py                                                            0       0  100.00%
_src/domain/base_domain.py                                                        64       0  100.00%
_src/domain/base_operation.py                                                     45       4  91.11%   63, 106, 129, 139
_src/domain/cartesian_domain.py                                                   54       1  98.15%   68
_src/domain/difference.py                                                         27       0  100.00%
_src/domain/domain_interface.py                                                   25       0  100.00%
_src/domain/ellipsoid_domain.py                                                   81       4  95.06%   98, 108-109, 253
_src/domain/exclusion.py                                                          35       1  97.14%   107
_src/domain/intersection.py                                                       34       1  97.06%   97
_src/domain/operation_interface.py                                                 9       0  100.00%
_src/domain/simplex_domain.py                                                     83       5  93.98%   212, 226, 237, 249, 288
_src/domain/union.py                                                              24       0  100.00%
_src/equation/__init__.py                                                          0       0  100.00%
_src/equation/equation.py                                                         16       1  93.75%   59
_src/equation/equation_factory.py                                                112       1  99.11%   178
_src/equation/equation_interface.py                                               14       1  92.86%   51
_src/equation/system_equation.py                                                  21       0  100.00%
_src/loss/__init__.py                                                              0       0  100.00%
_src/loss/linear_weighting.py                                                     14       0  100.00%
_src/loss/loss_interface.py                                                       17       2  88.24%   45, 51
_src/loss/lp_loss.py                                                              15       0  100.00%
_src/loss/ntk_weighting.py                                                        18       0  100.00%
_src/loss/power_loss.py                                                           15       0  100.00%
_src/loss/scalar_weighting.py                                                     16       0  100.00%
_src/loss/self_adaptive_weighting.py                                              12       0  100.00%
_src/loss/weighting_interface.py                                                  29       3  89.66%   35, 41-42
_src/model/__init__.py                                                             0       0  100.00%
_src/model/average_neural_operator.py                                             31       2  93.55%   73, 82
_src/model/deeponet.py                                                            85      13  84.71%   179-182, 201, 232, 271, 281, 291, 301, 311, 321, 476, 486
_src/model/equivariant_graph_neural_operator.py                                   51       1  98.04%   219
_src/model/feed_forward.py                                                        89      11  87.64%   58, 195, 200, 278-292
_src/model/fourier_neural_operator.py                                             78      10  87.18%   100-104, 114, 159-163, 222, 224, 246, 346
_src/model/graph_neural_operator.py                                               40       2  95.00%   58, 60
_src/model/kernel_neural_operator.py                                              34       6  82.35%   83-84, 103-104, 123-124
_src/model/low_rank_neural_operator.py                                            27       2  92.59%   89, 98
_src/model/multi_feed_forward.py                                                  12       5  58.33%   25-31
_src/model/pirate_network.py                                                      28       1  96.43%   119
_src/model/sindy.py                                                               21       0  100.00%
_src/model/spline.py                                                             124       6  95.16%   133, 156, 164, 236, 450, 475
_src/model/spline_surface.py                                                      68      12  82.35%   151-152, 187-190, 200, 213-218, 258
_src/model/block/__init__.py                                                       0       0  100.00%
_src/model/block/average_neural_operator_block.py                                 12       0  100.00%
_src/model/block/convolution.py                                                   64      13  79.69%   77, 81, 85, 91, 97, 111, 114, 151, 161, 171, 181, 191, 201
_src/model/block/convolution_2d.py                                               146      27  81.51%   155, 162, 282, 314, 379-433, 456
_src/model/block/embedding.py                                                     48       7  85.42%   93, 143-146, 155, 168
_src/model/block/fourier_block.py                                                 31       0  100.00%
_src/model/block/gno_block.py                                                     22       4  81.82%   73-77, 87
_src/model/block/integral.py                                                      18       4  77.78%   22-25, 71
_src/model/block/low_rank_block.py                                                24       0  100.00%
_src/model/block/orthogonal.py                                                    37       0  100.00%
_src/model/block/pirate_network_block.py                                          25       1  96.00%   89
_src/model/block/pod_block.py                                                     75      10  86.67%   56-59, 71, 84, 114, 151-156, 191, 216
_src/model/block/rbf_block.py                                                    179      25  86.03%   18, 42, 53, 64, 75, 86, 97, 223, 280, 282, 298, 301, 329, 335, 363, 367, 511-524
_src/model/block/residual.py                                                      46       0  100.00%
_src/model/block/spectral.py                                                      83       4  95.18%   132, 140, 262, 270
_src/model/block/stride.py                                                        28       7  75.00%   55, 58, 61, 67, 72-74
_src/model/block/utils_convolution.py                                             22       3  86.36%   58-60
_src/model/block/message_passing/__init__.py                                       0       0  100.00%
_src/model/block/message_passing/deep_tensor_network_block.py                     21       0  100.00%
_src/model/block/message_passing/en_equivariant_network_block.py                  47       1  97.87%   164
_src/model/block/message_passing/equivariant_graph_neural_operator_block.py       36       0  100.00%
_src/model/block/message_passing/interaction_network_block.py                     23       0  100.00%
_src/model/block/message_passing/radial_field_network_block.py                    20       0  100.00%
_src/optim/__init__.py                                                             0       0  100.00%
_src/optim/optimizer_interface.py                                                  7       0  100.00%
_src/optim/scheduler_interface.py                                                  7       0  100.00%
_src/optim/torch_optimizer.py                                                     14       0  100.00%
_src/optim/torch_scheduler.py                                                     19       2  89.47%   5-6
_src/problem/__init__.py                                                           0       0  100.00%
_src/problem/abstract_problem.py                                                 118      12  89.83%   42-43, 62-68, 147, 159, 177, 251, 255, 284
_src/problem/inverse_problem.py                                                   22       0  100.00%
_src/problem/parametric_problem.py                                                 8       1  87.50%   29
_src/problem/spatial_problem.py                                                    8       0  100.00%
_src/problem/time_dependent_problem.py                                             8       0  100.00%
_src/problem/zoo/__init__.py                                                       0       0  100.00%
_src/problem/zoo/acoustic_wave.py                                                 29       7  75.86%   27-28, 92-96
_src/problem/zoo/advection.py                                                     25       4  84.00%   22, 76-78
_src/problem/zoo/allen_cahn.py                                                    25       3  88.00%   23-25
_src/problem/zoo/diffusion_reaction.py                                            34       5  85.29%   105-115
_src/problem/zoo/helmholtz.py                                                     22       4  81.82%   55, 74-78
_src/problem/zoo/inverse_poisson_2d_square.py                                     50       3  94.00%   49-55
_src/problem/zoo/poisson_2d_square.py                                             16       3  81.25%   57-62
_src/problem/zoo/supervised_problem.py                                            11       0  100.00%
_src/solver/__init__.py                                                            0       0  100.00%
_src/solver/garom.py                                                             108       2  98.15%   130-131
_src/solver/solver.py                                                            190      10  94.74%   195, 218, 290, 293-294, 352, 434, 517, 558, 564
_src/solver/ensemble_solver/__init__.py                                            0       0  100.00%
_src/solver/ensemble_solver/ensemble_pinn.py                                      23       1  95.65%   108
_src/solver/ensemble_solver/ensemble_solver_interface.py                          27       0  100.00%
_src/solver/ensemble_solver/ensemble_supervised.py                                 9       0  100.00%
_src/solver/physics_informed_solver/__init__.py                                    0       0  100.00%
_src/solver/physics_informed_solver/causal_pinn.py                                47       3  93.62%   157, 166-167
_src/solver/physics_informed_solver/competitive_pinn.py                           58       0  100.00%
_src/solver/physics_informed_solver/gradient_pinn.py                              17       0  100.00%
_src/solver/physics_informed_solver/pinn.py                                       18       0  100.00%
_src/solver/physics_informed_solver/pinn_interface.py                             55       2  96.36%   166, 222
_src/solver/physics_informed_solver/rba_pinn.py                                   74       1  98.65%   324
_src/solver/physics_informed_solver/self_adaptive_pinn.py                        103       1  99.03%   393
_src/solver/supervised_solver/__init__.py                                          0       0  100.00%
_src/solver/supervised_solver/reduced_order_model.py                              24       1  95.83%   139
_src/solver/supervised_solver/supervised.py                                        7       0  100.00%
_src/solver/supervised_solver/supervised_solver_interface.py                      25       1  96.00%   90
adaptive_function/__init__.py                                                      3       0  100.00%
callback/__init__.py                                                               7       0  100.00%
condition/__init__.py                                                              7       0  100.00%
data/__init__.py                                                                   3       0  100.00%
domain/__init__.py                                                                11       0  100.00%
equation/__init__.py                                                               4       0  100.00%
loss/__init__.py                                                                   9       0  100.00%
model/__init__.py                                                                 14       0  100.00%
model/block/__init__.py                                                           13       0  100.00%
model/block/message_passing.py                                                     6       0  100.00%
optim/__init__.py                                                                  5       0  100.00%
problem/__init__.py                                                                6       0  100.00%
problem/zoo.py                                                                     9       0  100.00%
solver/__init__.py                                                                16       0  100.00%
TOTAL                                                                           5249     371  92.93%

Results for commit: f6c680f

Minimum allowed coverage is 80.123%

♻️ This comment has been updated with latest results

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.

2 participants