pynguin 0.45.0__tar.gz → 0.46.0.dev0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (620) hide show
  1. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/PKG-INFO +1 -1
  2. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/pyproject.toml +2 -1
  3. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/__version__.py +1 -1
  4. pynguin-0.46.0.dev0/src/pynguin/analyses/AGENTS.md +114 -0
  5. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/analyses/generator.py +64 -2
  6. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/analyses/module.py +18 -8
  7. pynguin-0.46.0.dev0/src/pynguin/analyses/string_subtype_inference.py +120 -0
  8. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/analyses/type_inference.py +208 -23
  9. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/analyses/typesystem.py +1 -1
  10. pynguin-0.46.0.dev0/src/pynguin/analysis/__init__.py +26 -0
  11. pynguin-0.46.0.dev0/src/pynguin/analysis/models.py +105 -0
  12. pynguin-0.46.0.dev0/src/pynguin/analysis/module_analyzer.py +525 -0
  13. pynguin-0.46.0.dev0/src/pynguin/analysis/type_utils.py +101 -0
  14. pynguin-0.46.0.dev0/src/pynguin/assertion/AGENTS.md +205 -0
  15. pynguin-0.46.0.dev0/src/pynguin/assertion/assertion.py +304 -0
  16. pynguin-0.46.0.dev0/src/pynguin/assertion/assertion_to_cst.py +243 -0
  17. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/assertion_trace.py +13 -58
  18. pynguin-0.46.0.dev0/src/pynguin/assertion/assertiongenerator.py +140 -0
  19. pynguin-0.46.0.dev0/src/pynguin/assertion/assertiontraceobserver.py +164 -0
  20. pynguin-0.46.0.dev0/src/pynguin/assertion/mutation_analysis/AGENTS.md +291 -0
  21. pynguin-0.46.0.dev0/src/pynguin/assertion/mutation_analysis/operators/AGENTS.md +174 -0
  22. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/cli.py +20 -0
  23. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/configuration.py +11 -0
  24. {pynguin-0.45.0/src/pynguin/ga/algorithms → pynguin-0.46.0.dev0/src/pynguin/evolution}/__init__.py +1 -1
  25. pynguin-0.46.0.dev0/src/pynguin/evolution/algorithms/__init__.py +28 -0
  26. pynguin-0.46.0.dev0/src/pynguin/evolution/algorithms/archive.py +142 -0
  27. pynguin-0.46.0.dev0/src/pynguin/evolution/algorithms/base.py +111 -0
  28. pynguin-0.46.0.dev0/src/pynguin/evolution/algorithms/codamosa.py +58 -0
  29. pynguin-0.46.0.dev0/src/pynguin/evolution/algorithms/dynamosa.py +459 -0
  30. pynguin-0.46.0.dev0/src/pynguin/evolution/algorithms/mio.py +172 -0
  31. pynguin-0.46.0.dev0/src/pynguin/evolution/algorithms/observer.py +83 -0
  32. pynguin-0.46.0.dev0/src/pynguin/evolution/algorithms/random.py +139 -0
  33. pynguin-0.46.0.dev0/src/pynguin/evolution/algorithms/stopping_conditions.py +170 -0
  34. pynguin-0.46.0.dev0/src/pynguin/evolution/algorithms/wholesuite.py +194 -0
  35. pynguin-0.46.0.dev0/src/pynguin/evolution/chromosomes/__init__.py +13 -0
  36. pynguin-0.46.0.dev0/src/pynguin/evolution/chromosomes/base.py +35 -0
  37. pynguin-0.46.0.dev0/src/pynguin/evolution/chromosomes/individual.py +50 -0
  38. pynguin-0.46.0.dev0/src/pynguin/evolution/chromosomes/suite.py +138 -0
  39. pynguin-0.46.0.dev0/src/pynguin/evolution/factory.py +78 -0
  40. pynguin-0.46.0.dev0/src/pynguin/evolution/fitness/__init__.py +25 -0
  41. pynguin-0.46.0.dev0/src/pynguin/evolution/fitness/base.py +65 -0
  42. pynguin-0.46.0.dev0/src/pynguin/evolution/fitness/coverage.py +245 -0
  43. pynguin-0.46.0.dev0/src/pynguin/evolution/minimization.py +289 -0
  44. pynguin-0.46.0.dev0/src/pynguin/evolution/operators/__init__.py +7 -0
  45. pynguin-0.46.0.dev0/src/pynguin/evolution/operators/crossover.py +201 -0
  46. pynguin-0.46.0.dev0/src/pynguin/evolution/operators/mutation.py +245 -0
  47. pynguin-0.46.0.dev0/src/pynguin/evolution/operators/selection.py +63 -0
  48. {pynguin-0.45.0/src/pynguin/slicer → pynguin-0.46.0.dev0/src/pynguin/execution}/__init__.py +1 -1
  49. pynguin-0.46.0.dev0/src/pynguin/execution/executor.py +270 -0
  50. pynguin-0.46.0.dev0/src/pynguin/execution/isolation.py +313 -0
  51. pynguin-0.46.0.dev0/src/pynguin/execution/observer.py +40 -0
  52. pynguin-0.46.0.dev0/src/pynguin/execution/subprocess_executor.py +235 -0
  53. pynguin-0.46.0.dev0/src/pynguin/generator.py +609 -0
  54. pynguin-0.46.0.dev0/src/pynguin/instrumentation/AGENTS.md +377 -0
  55. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/instrumentation/tracer.py +31 -266
  56. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/instrumentation/transformer.py +320 -128
  57. pynguin-0.46.0.dev0/src/pynguin/instrumentation/version/AGENTS.md +77 -0
  58. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/instrumentation/version/python3_10.py +6 -0
  59. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/instrumentation/version/python3_11.py +7 -1
  60. pynguin-0.46.0.dev0/src/pynguin/master_worker/AGENTS.md +133 -0
  61. pynguin-0.46.0.dev0/src/pynguin/output/__init__.py +7 -0
  62. pynguin-0.46.0.dev0/src/pynguin/output/writer.py +329 -0
  63. pynguin-0.46.0.dev0/src/pynguin/resources/AGENTS.md +86 -0
  64. pynguin-0.46.0.dev0/src/pynguin/testcase/AGENTS.md +274 -0
  65. pynguin-0.46.0.dev0/src/pynguin/testcase/testcase.py +291 -0
  66. pynguin-0.46.0.dev0/src/pynguin/testcase/testfactory.py +740 -0
  67. pynguin-0.46.0.dev0/src/pynguin/utils/AGENTS.md +354 -0
  68. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/configuration_writer.py +1 -1
  69. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/controlflowdistance.py +10 -8
  70. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/execution_recorder.py +5 -11
  71. pynguin-0.46.0.dev0/src/pynguin/utils/generic/AGENTS.md +70 -0
  72. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/llm.py +9 -5
  73. pynguin-0.46.0.dev0/src/pynguin/utils/naming.py +21 -0
  74. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/openai_key_resolver.py +50 -1
  75. pynguin-0.46.0.dev0/src/pynguin/utils/pynguinml/AGENTS.md +90 -0
  76. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/pynguinml/ml_testfactory_utils.py +9 -17
  77. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/report.py +51 -7
  78. pynguin-0.46.0.dev0/src/pynguin/utils/statistics/AGENTS.md +129 -0
  79. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/statistics/outputvariablefactory.py +1 -1
  80. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/statistics/runtimevariable.py +12 -3
  81. pynguin-0.46.0.dev0/src/pynguin/utils/statistics/statisticsobserver.py +110 -0
  82. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/statistics/stats.py +11 -16
  83. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/typetracing.py +7 -3
  84. pynguin-0.46.0.dev0/tests/AGENTS.md +130 -0
  85. pynguin-0.46.0.dev0/tests/analyses/test_string_subtype_inference.py +198 -0
  86. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/analyses/test_type_inference.py +12 -2
  87. pynguin-0.46.0.dev0/tests/analysis/test_module_analyzer.py +131 -0
  88. pynguin-0.46.0.dev0/tests/assertion/AGENTS.md +225 -0
  89. pynguin-0.46.0.dev0/tests/assertion/mutation_analysis/operators/AGENTS.md +81 -0
  90. pynguin-0.46.0.dev0/tests/assertion/test_assertion.py +161 -0
  91. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/assertion/test_assertion_trace.py +2 -8
  92. pynguin-0.46.0.dev0/tests/assertion/test_assertiongenerator.py +38 -0
  93. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/conftest.py +10 -263
  94. pynguin-0.46.0.dev0/tests/evolution/test_chromosomes.py +146 -0
  95. pynguin-0.46.0.dev0/tests/execution/test_executor.py +170 -0
  96. pynguin-0.46.0.dev0/tests/fixtures/AGENTS.md +123 -0
  97. pynguin-0.46.0.dev0/tests/fixtures/examples/AGENTS.md +27 -0
  98. pynguin-0.46.0.dev0/tests/fixtures/instrumentation/AGENTS.md +49 -0
  99. pynguin-0.46.0.dev0/tests/fixtures/instrumentation/excluded_blocks.py +68 -0
  100. pynguin-0.46.0.dev0/tests/instrumentation/AGENTS.md +186 -0
  101. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/instrumentation/test_ast_info.py +156 -3
  102. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/instrumentation/test_machinery.py +5 -7
  103. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/instrumentation/test_tracer.py +2 -2
  104. pynguin-0.46.0.dev0/tests/resources/typeevalpy/__init__.py +0 -0
  105. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/test_cli.py +7 -1
  106. pynguin-0.46.0.dev0/tests/testcase/AGENTS.md +235 -0
  107. pynguin-0.46.0.dev0/tests/testcase/test_new_testcase.py +161 -0
  108. pynguin-0.46.0.dev0/tests/testcase/test_testfactory_static.py +144 -0
  109. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/pynguinml/test_ml_testing_resources.py +3 -3
  110. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/test_configuration_writer.py +6 -2
  111. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/test_fs_isolation.py +1 -1
  112. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/test_logging_utils.py +4 -2
  113. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/test_typetracing.py +4 -4
  114. pynguin-0.45.0/src/pynguin/analyses/seeding.py +0 -917
  115. pynguin-0.45.0/src/pynguin/assertion/assertion.py +0 -437
  116. pynguin-0.45.0/src/pynguin/assertion/assertion_to_ast.py +0 -336
  117. pynguin-0.45.0/src/pynguin/assertion/assertiongenerator.py +0 -394
  118. pynguin-0.45.0/src/pynguin/assertion/assertiontraceobserver.py +0 -342
  119. pynguin-0.45.0/src/pynguin/assertion/llmassertiongenerator.py +0 -168
  120. pynguin-0.45.0/src/pynguin/ga/__init__.py +0 -7
  121. pynguin-0.45.0/src/pynguin/ga/algorithms/abstractmosaalgorithm.py +0 -174
  122. pynguin-0.45.0/src/pynguin/ga/algorithms/archive.py +0 -425
  123. pynguin-0.45.0/src/pynguin/ga/algorithms/dynamosaalgorithm.py +0 -321
  124. pynguin-0.45.0/src/pynguin/ga/algorithms/generationalgorithm.py +0 -326
  125. pynguin-0.45.0/src/pynguin/ga/algorithms/llmosalgorithm.py +0 -208
  126. pynguin-0.45.0/src/pynguin/ga/algorithms/mioalgorithm.py +0 -142
  127. pynguin-0.45.0/src/pynguin/ga/algorithms/mosaalgorithm.py +0 -67
  128. pynguin-0.45.0/src/pynguin/ga/algorithms/randomalgorithm.py +0 -163
  129. pynguin-0.45.0/src/pynguin/ga/algorithms/randomsearchalgorithm.py +0 -55
  130. pynguin-0.45.0/src/pynguin/ga/algorithms/wholesuitealgorithm.py +0 -181
  131. pynguin-0.45.0/src/pynguin/ga/chromosome.py +0 -207
  132. pynguin-0.45.0/src/pynguin/ga/chromosomefactory.py +0 -26
  133. pynguin-0.45.0/src/pynguin/ga/chromosomevisitor.py +0 -29
  134. pynguin-0.45.0/src/pynguin/ga/computations.py +0 -1013
  135. pynguin-0.45.0/src/pynguin/ga/coveragegoals.py +0 -508
  136. pynguin-0.45.0/src/pynguin/ga/generationalgorithmfactory.py +0 -440
  137. pynguin-0.45.0/src/pynguin/ga/llmtestsuitechromosomefactory.py +0 -127
  138. pynguin-0.45.0/src/pynguin/ga/operators/__init__.py +0 -7
  139. pynguin-0.45.0/src/pynguin/ga/operators/comparator.py +0 -133
  140. pynguin-0.45.0/src/pynguin/ga/operators/crossover.py +0 -52
  141. pynguin-0.45.0/src/pynguin/ga/operators/ranking.py +0 -224
  142. pynguin-0.45.0/src/pynguin/ga/operators/selection.py +0 -169
  143. pynguin-0.45.0/src/pynguin/ga/postprocess.py +0 -709
  144. pynguin-0.45.0/src/pynguin/ga/searchobserver.py +0 -84
  145. pynguin-0.45.0/src/pynguin/ga/stoppingcondition.py +0 -644
  146. pynguin-0.45.0/src/pynguin/ga/testcasechromosome.py +0 -304
  147. pynguin-0.45.0/src/pynguin/ga/testcasechromosomefactory.py +0 -84
  148. pynguin-0.45.0/src/pynguin/ga/testcasefactory.py +0 -89
  149. pynguin-0.45.0/src/pynguin/ga/testsuitechromosome.py +0 -193
  150. pynguin-0.45.0/src/pynguin/ga/testsuitechromosomefactory.py +0 -61
  151. pynguin-0.45.0/src/pynguin/generator.py +0 -1014
  152. pynguin-0.45.0/src/pynguin/large_language_model/__init__.py +0 -7
  153. pynguin-0.45.0/src/pynguin/large_language_model/caching.py +0 -73
  154. pynguin-0.45.0/src/pynguin/large_language_model/helpers/__init__.py +0 -7
  155. pynguin-0.45.0/src/pynguin/large_language_model/helpers/testcasereferencecopier.py +0 -144
  156. pynguin-0.45.0/src/pynguin/large_language_model/llmagent.py +0 -435
  157. pynguin-0.45.0/src/pynguin/large_language_model/llmtestcasehandler.py +0 -165
  158. pynguin-0.45.0/src/pynguin/large_language_model/parsing/__init__.py +0 -7
  159. pynguin-0.45.0/src/pynguin/large_language_model/parsing/astscoping.py +0 -560
  160. pynguin-0.45.0/src/pynguin/large_language_model/parsing/deserializer.py +0 -908
  161. pynguin-0.45.0/src/pynguin/large_language_model/parsing/helpers.py +0 -199
  162. pynguin-0.45.0/src/pynguin/large_language_model/parsing/rewriter.py +0 -988
  163. pynguin-0.45.0/src/pynguin/large_language_model/parsing/type_str_parser.py +0 -182
  164. pynguin-0.45.0/src/pynguin/large_language_model/prompts/__init__.py +0 -7
  165. pynguin-0.45.0/src/pynguin/large_language_model/prompts/assertiongenerationprompt.py +0 -33
  166. pynguin-0.45.0/src/pynguin/large_language_model/prompts/localsearchprompt.py +0 -69
  167. pynguin-0.45.0/src/pynguin/large_language_model/prompts/prompt.py +0 -38
  168. pynguin-0.45.0/src/pynguin/large_language_model/prompts/testcasegenerationprompt.py +0 -33
  169. pynguin-0.45.0/src/pynguin/large_language_model/prompts/typeinferenceprompt.py +0 -201
  170. pynguin-0.45.0/src/pynguin/large_language_model/prompts/uncoveredtargetsprompt.py +0 -81
  171. pynguin-0.45.0/src/pynguin/slicer/dynamicslicer.py +0 -909
  172. pynguin-0.45.0/src/pynguin/slicer/executedinstruction.py +0 -144
  173. pynguin-0.45.0/src/pynguin/slicer/executionflowbuilder.py +0 -605
  174. pynguin-0.45.0/src/pynguin/slicer/stack/__init__.py +0 -9
  175. pynguin-0.45.0/src/pynguin/slicer/stack/stacksimulation.py +0 -228
  176. pynguin-0.45.0/src/pynguin/slicer/statementslicingobserver.py +0 -78
  177. pynguin-0.45.0/src/pynguin/testcase/defaulttestcase.py +0 -215
  178. pynguin-0.45.0/src/pynguin/testcase/execution.py +0 -2183
  179. pynguin-0.45.0/src/pynguin/testcase/export.py +0 -308
  180. pynguin-0.45.0/src/pynguin/testcase/llmlocalsearch.py +0 -230
  181. pynguin-0.45.0/src/pynguin/testcase/localsearch.py +0 -304
  182. pynguin-0.45.0/src/pynguin/testcase/localsearchobjective.py +0 -143
  183. pynguin-0.45.0/src/pynguin/testcase/localsearchstatement.py +0 -1494
  184. pynguin-0.45.0/src/pynguin/testcase/localsearchtimer.py +0 -42
  185. pynguin-0.45.0/src/pynguin/testcase/statement.py +0 -2951
  186. pynguin-0.45.0/src/pynguin/testcase/statement_to_ast.py +0 -480
  187. pynguin-0.45.0/src/pynguin/testcase/testcase.py +0 -352
  188. pynguin-0.45.0/src/pynguin/testcase/testcase_to_ast.py +0 -191
  189. pynguin-0.45.0/src/pynguin/testcase/testcasevisitor.py +0 -21
  190. pynguin-0.45.0/src/pynguin/testcase/testfactory.py +0 -1915
  191. pynguin-0.45.0/src/pynguin/testcase/variablereference.py +0 -492
  192. pynguin-0.45.0/src/pynguin/utils/statistics/statisticsobserver.py +0 -88
  193. pynguin-0.45.0/tests/analyses/test_initialpopulationseeding.py +0 -261
  194. pynguin-0.45.0/tests/analyses/test_module.py +0 -737
  195. pynguin-0.45.0/tests/analyses/test_seeding.py +0 -70
  196. pynguin-0.45.0/tests/analyses/test_typesystem.py +0 -1070
  197. pynguin-0.45.0/tests/assertion/test_assertion.py +0 -165
  198. pynguin-0.45.0/tests/assertion/test_assertion_generation_integration.py +0 -461
  199. pynguin-0.45.0/tests/assertion/test_assertion_to_ast.py +0 -121
  200. pynguin-0.45.0/tests/assertion/test_assertiongenerator.py +0 -32
  201. pynguin-0.45.0/tests/assertion/test_assertiontraceobserver.py +0 -49
  202. pynguin-0.45.0/tests/assertion/test_llmassertiongenerator.py +0 -214
  203. pynguin-0.45.0/tests/ga/algorithms/__init__.py +0 -7
  204. pynguin-0.45.0/tests/ga/algorithms/test_archive.py +0 -418
  205. pynguin-0.45.0/tests/ga/algorithms/test_dynamosaalgorithm.py +0 -90
  206. pynguin-0.45.0/tests/ga/algorithms/test_generationalgorithm.py +0 -32
  207. pynguin-0.45.0/tests/ga/algorithms/test_integration_mosaalgorithm.py +0 -68
  208. pynguin-0.45.0/tests/ga/algorithms/test_integration_varioussearchalgorithms.py +0 -124
  209. pynguin-0.45.0/tests/ga/algorithms/test_llmosalgorithm.py +0 -436
  210. pynguin-0.45.0/tests/ga/algorithms/test_mioalgorithm.py +0 -66
  211. pynguin-0.45.0/tests/ga/algorithms/test_mosaalgorithm.py +0 -52
  212. pynguin-0.45.0/tests/ga/algorithms/test_randomalgorithm.py +0 -155
  213. pynguin-0.45.0/tests/ga/operators/crossover/test_singlepointrelativecrossover.py +0 -39
  214. pynguin-0.45.0/tests/ga/operators/ranking/test_rankingfunction.py +0 -70
  215. pynguin-0.45.0/tests/ga/operators/selection/test_randomselection.py +0 -16
  216. pynguin-0.45.0/tests/ga/operators/selection/test_rankselection.py +0 -16
  217. pynguin-0.45.0/tests/ga/operators/selection/test_selection.py +0 -29
  218. pynguin-0.45.0/tests/ga/operators/selection/test_tournamentselection.py +0 -20
  219. pynguin-0.45.0/tests/ga/operators/test_dominancecomparator.py +0 -48
  220. pynguin-0.45.0/tests/ga/operators/test_preferencesortingcomparator.py +0 -25
  221. pynguin-0.45.0/tests/ga/stoppingconditions/test_coverageplateaustoppingcondition.py +0 -63
  222. pynguin-0.45.0/tests/ga/stoppingconditions/test_maxcoveragestoppingcondition.py +0 -59
  223. pynguin-0.45.0/tests/ga/stoppingconditions/test_maxiterationsstoppingcondition.py +0 -43
  224. pynguin-0.45.0/tests/ga/stoppingconditions/test_maxmemorystoppingcondition.py +0 -43
  225. pynguin-0.45.0/tests/ga/stoppingconditions/test_maxstatementstoppingcondition.py +0 -47
  226. pynguin-0.45.0/tests/ga/stoppingconditions/test_maxtestsstoppingcondition.py +0 -31
  227. pynguin-0.45.0/tests/ga/stoppingconditions/test_maxtimestoppingcondition.py +0 -42
  228. pynguin-0.45.0/tests/ga/stoppingconditions/test_minimumcoverageplateaustoppingcondition.py +0 -85
  229. pynguin-0.45.0/tests/ga/stoppingconditions/test_stoppingcondition.py +0 -39
  230. pynguin-0.45.0/tests/ga/test_chromosome.py +0 -62
  231. pynguin-0.45.0/tests/ga/test_chromosomefactory.py +0 -83
  232. pynguin-0.45.0/tests/ga/test_computations.py +0 -255
  233. pynguin-0.45.0/tests/ga/test_computations_cache.py +0 -227
  234. pynguin-0.45.0/tests/ga/test_computations_fitness_utilities.py +0 -291
  235. pynguin-0.45.0/tests/ga/test_coveragegoals.py +0 -481
  236. pynguin-0.45.0/tests/ga/test_generationalgorithmfactory.py +0 -99
  237. pynguin-0.45.0/tests/ga/test_generator.py +0 -176
  238. pynguin-0.45.0/tests/ga/test_llmtestsuitechromosomefactory.py +0 -189
  239. pynguin-0.45.0/tests/ga/test_postprocess.py +0 -1165
  240. pynguin-0.45.0/tests/ga/test_testcasechromosome.py +0 -337
  241. pynguin-0.45.0/tests/ga/test_testcasefactory.py +0 -35
  242. pynguin-0.45.0/tests/ga/test_testsuitechromosome.py +0 -220
  243. pynguin-0.45.0/tests/instrumentation/__init__.py +0 -6
  244. pynguin-0.45.0/tests/instrumentation/test_adapters.py +0 -1007
  245. pynguin-0.45.0/tests/large_language_model/__init__.py +0 -6
  246. pynguin-0.45.0/tests/large_language_model/helpers/test_testcasereferencecopier.py +0 -187
  247. pynguin-0.45.0/tests/large_language_model/parsing/test_astscoping.py +0 -684
  248. pynguin-0.45.0/tests/large_language_model/parsing/test_helpers.py +0 -353
  249. pynguin-0.45.0/tests/large_language_model/parsing/test_type_str_parser.py +0 -111
  250. pynguin-0.45.0/tests/large_language_model/prompts/test_assertiongenerationprompt.py +0 -106
  251. pynguin-0.45.0/tests/large_language_model/prompts/test_testcasegenerationprompt.py +0 -114
  252. pynguin-0.45.0/tests/large_language_model/prompts/test_uncovered_targets_prompt.py +0 -95
  253. pynguin-0.45.0/tests/large_language_model/test_caching.py +0 -109
  254. pynguin-0.45.0/tests/large_language_model/test_llm_caching.py +0 -54
  255. pynguin-0.45.0/tests/large_language_model/test_llm_deserializer.py +0 -645
  256. pynguin-0.45.0/tests/large_language_model/test_llmagent.py +0 -133
  257. pynguin-0.45.0/tests/large_language_model/test_llmagent_extended.py +0 -494
  258. pynguin-0.45.0/tests/large_language_model/test_llmtestcasehandler.py +0 -216
  259. pynguin-0.45.0/tests/large_language_model/test_llmtestcasehandler_coverage.py +0 -48
  260. pynguin-0.45.0/tests/large_language_model/test_rewriter.py +0 -519
  261. pynguin-0.45.0/tests/slicer/__init__.py +0 -6
  262. pynguin-0.45.0/tests/slicer/test_assertionslicer.py +0 -387
  263. pynguin-0.45.0/tests/slicer/test_dependencies.py +0 -466
  264. pynguin-0.45.0/tests/slicer/test_expected_failures.py +0 -703
  265. pynguin-0.45.0/tests/slicer/test_language_features.py +0 -1495
  266. pynguin-0.45.0/tests/slicer/test_statementslicer.py +0 -319
  267. pynguin-0.45.0/tests/slicer/util.py +0 -200
  268. pynguin-0.45.0/tests/test_generator.py +0 -382
  269. pynguin-0.45.0/tests/testcase/__init__.py +0 -6
  270. pynguin-0.45.0/tests/testcase/execution/__init__.py +0 -6
  271. pynguin-0.45.0/tests/testcase/execution/test_executedinstruction.py +0 -22
  272. pynguin-0.45.0/tests/testcase/execution/test_executioncontext.py +0 -43
  273. pynguin-0.45.0/tests/testcase/execution/test_executionresult.py +0 -55
  274. pynguin-0.45.0/tests/testcase/execution/test_executiontrace.py +0 -83
  275. pynguin-0.45.0/tests/testcase/execution/test_moduleprovider.py +0 -72
  276. pynguin-0.45.0/tests/testcase/execution/test_subprocesstestcaseexecutor.py +0 -248
  277. pynguin-0.45.0/tests/testcase/execution/test_subprocesstestcaseexecutor_differential.py +0 -36
  278. pynguin-0.45.0/tests/testcase/execution/test_subprocesstestcaseexecutor_integration.py +0 -131
  279. pynguin-0.45.0/tests/testcase/execution/test_testcaseexecutor_integration.py +0 -197
  280. pynguin-0.45.0/tests/testcase/execution/test_typetracing.py +0 -115
  281. pynguin-0.45.0/tests/testcase/export/__init__.py +0 -6
  282. pynguin-0.45.0/tests/testcase/export/conftest.py +0 -95
  283. pynguin-0.45.0/tests/testcase/export/test_export.py +0 -465
  284. pynguin-0.45.0/tests/testcase/statements/__init__.py +0 -6
  285. pynguin-0.45.0/tests/testcase/statements/test_assignmentstatement.py +0 -125
  286. pynguin-0.45.0/tests/testcase/statements/test_collectionstatements.py +0 -137
  287. pynguin-0.45.0/tests/testcase/statements/test_fieldstatement.py +0 -170
  288. pynguin-0.45.0/tests/testcase/statements/test_parameterizedstatements.py +0 -546
  289. pynguin-0.45.0/tests/testcase/statements/test_primitivestatements.py +0 -815
  290. pynguin-0.45.0/tests/testcase/test_ast_assign_statement.py +0 -382
  291. pynguin-0.45.0/tests/testcase/test_benchmark.py +0 -63
  292. pynguin-0.45.0/tests/testcase/test_defaulttestcase.py +0 -504
  293. pynguin-0.45.0/tests/testcase/test_llmlocalsearch.py +0 -77
  294. pynguin-0.45.0/tests/testcase/test_localsearch.py +0 -1366
  295. pynguin-0.45.0/tests/testcase/test_localsearchtimer.py +0 -28
  296. pynguin-0.45.0/tests/testcase/test_statement_to_ast.py +0 -666
  297. pynguin-0.45.0/tests/testcase/test_testcase_integration.py +0 -160
  298. pynguin-0.45.0/tests/testcase/test_testcase_to_ast_integration.py +0 -96
  299. pynguin-0.45.0/tests/testcase/test_testfactory.py +0 -1077
  300. pynguin-0.45.0/tests/testcase/variable/__init__.py +0 -6
  301. pynguin-0.45.0/tests/testcase/variable/test_variablereference.py +0 -316
  302. pynguin-0.45.0/tests/utils/__init__.py +0 -6
  303. pynguin-0.45.0/tests/utils/generic/__init__.py +0 -6
  304. pynguin-0.45.0/tests/utils/pynguinml/__init__.py +0 -6
  305. pynguin-0.45.0/tests/utils/pynguinml/test_ml_testfactory_utils.py +0 -377
  306. pynguin-0.45.0/tests/utils/pynguinml/test_pynguinml_integration.py +0 -61
  307. pynguin-0.45.0/tests/utils/stats/__init__.py +0 -6
  308. pynguin-0.45.0/tests/utils/stats/test_outputvariablefactory.py +0 -183
  309. pynguin-0.45.0/tests/utils/stats/test_searchstatistics.py +0 -193
  310. pynguin-0.45.0/tests/utils/test_controlflowdistance.py +0 -127
  311. pynguin-0.45.0/tests/utils/test_execution_recorder.py +0 -78
  312. pynguin-0.45.0/tests/utils/test_namingscope.py +0 -130
  313. pynguin-0.45.0/tests/utils/test_report.py +0 -546
  314. pynguin-0.45.0/tests/utils/test_string_subtype_integration.py +0 -52
  315. pynguin-0.45.0/tests/utils/test_typeevalpy_integration.py +0 -232
  316. pynguin-0.45.0/tests/utils/test_typeevalpy_json_schema.py +0 -437
  317. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/LICENSE.rst +0 -0
  318. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/LICENSES/Apache-2.0.txt +0 -0
  319. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/LICENSES/BSD-2-Clause.txt +0 -0
  320. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/LICENSES/CC-BY-4.0.txt +0 -0
  321. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/LICENSES/CC0-1.0.txt +0 -0
  322. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/LICENSES/MIT.txt +0 -0
  323. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/README.md +0 -0
  324. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/__init__.py +0 -0
  325. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/__main__.py +0 -0
  326. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/analyses/__init__.py +0 -0
  327. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/analyses/constants.py +0 -0
  328. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/analyses/modulecomplexity.py +0 -0
  329. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/analyses/string_subtypes.py +0 -0
  330. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/analyses/syntaxtree.py +0 -0
  331. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/__init__.py +0 -0
  332. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/mutation_analysis/__init__.py +0 -0
  333. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/mutation_analysis/controller.py +0 -0
  334. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/mutation_analysis/mutators.py +0 -0
  335. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/mutation_analysis/operators/__init__.py +0 -0
  336. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/mutation_analysis/operators/arithmetic.py +0 -0
  337. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/mutation_analysis/operators/base.py +0 -0
  338. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/mutation_analysis/operators/decorator.py +0 -0
  339. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/mutation_analysis/operators/exception.py +0 -0
  340. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/mutation_analysis/operators/inheritance.py +0 -0
  341. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/mutation_analysis/operators/logical.py +0 -0
  342. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/mutation_analysis/operators/loop.py +0 -0
  343. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/mutation_analysis/operators/misc.py +0 -0
  344. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/mutation_analysis/strategies.py +0 -0
  345. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/assertion/mutation_analysis/transformer.py +0 -0
  346. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/instrumentation/__init__.py +0 -0
  347. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/instrumentation/controlflow.py +0 -0
  348. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/instrumentation/machinery.py +0 -0
  349. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/instrumentation/version/__init__.py +0 -0
  350. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/instrumentation/version/common.py +0 -0
  351. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/instrumentation/version/python3_12.py +0 -0
  352. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/instrumentation/version/python3_13.py +0 -0
  353. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/instrumentation/version/python3_14.py +0 -0
  354. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/master_worker/__init__.py +0 -0
  355. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/master_worker/client.py +0 -0
  356. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/master_worker/master.py +0 -0
  357. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/master_worker/worker.py +0 -0
  358. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/__init__.py +0 -0
  359. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/coverage-template.html +0 -0
  360. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/__init__.py +0 -0
  361. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/camel_case.fan +0 -0
  362. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/colour.fan +0 -0
  363. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/csv.fan +0 -0
  364. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/delimited.fan +0 -0
  365. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/email.fan +0 -0
  366. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/faker/__init__.py +0 -0
  367. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/faker/camel_case.fan +0 -0
  368. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/faker/colour.fan +0 -0
  369. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/faker/csv.fan +0 -0
  370. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/faker/delimited.fan +0 -0
  371. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/faker/email.fan +0 -0
  372. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/faker/ipv4.fan +0 -0
  373. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/faker/standard_date.fan +0 -0
  374. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/faker/unix_path.fan +0 -0
  375. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/faker/xml.fan +0 -0
  376. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/ipv4.fan +0 -0
  377. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/numeric.fan +0 -0
  378. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/standard_date.fan +0 -0
  379. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/unix_path.fan +0 -0
  380. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/resources/fans/xml.fan +0 -0
  381. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/testcase/__init__.py +0 -0
  382. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/__init__.py +0 -0
  383. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/ast_util.py +0 -0
  384. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/atomicinteger.py +0 -0
  385. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/collection_utils.py +0 -0
  386. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/exceptions.py +0 -0
  387. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/fandango_faker_utils.py +0 -0
  388. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/fs_isolation.py +0 -0
  389. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/generic/__init__.py +0 -0
  390. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/generic/genericaccessibleobject.py +0 -0
  391. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/logging_utils.py +0 -0
  392. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/mirror.py +0 -0
  393. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/mutation_utils.py +0 -0
  394. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/namingscope.py +0 -0
  395. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/orderedset.py +0 -0
  396. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/pynguinml/__init__.py +0 -0
  397. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/pynguinml/ml_parsing_utils.py +0 -0
  398. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/pynguinml/ml_testing_resources.py +0 -0
  399. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/pynguinml/mlparameter.py +0 -0
  400. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/pynguinml/np_rng.py +0 -0
  401. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/randomness.py +0 -0
  402. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/statistics/__init__.py +0 -0
  403. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/statistics/statisticsbackend.py +0 -0
  404. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/type_utils.py +0 -0
  405. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/src/pynguin/utils/typeevalpy_json_schema.py +0 -0
  406. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/__init__.py +0 -0
  407. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/analyses/__init__.py +0 -0
  408. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/analyses/test_constants.py +0 -0
  409. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/analyses/test_modulecomplexity.py +0 -0
  410. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/analyses/test_staticconstantseeding.py +0 -0
  411. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/analyses/test_string_subtypes.py +0 -0
  412. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/analyses/test_syntaxtree.py +0 -0
  413. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/analyses/test_typesystem_string_subtypes.py +0 -0
  414. {pynguin-0.45.0/tests/assertion/mutation_analysis/operators → pynguin-0.46.0.dev0/tests/analysis}/__init__.py +0 -0
  415. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/assertion/__init__.py +0 -0
  416. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/assertion/mutation_analysis/__init__.py +0 -0
  417. {pynguin-0.45.0/tests/large_language_model/prompts → pynguin-0.46.0.dev0/tests/assertion/mutation_analysis/operators}/__init__.py +0 -0
  418. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/assertion/mutation_analysis/operators/test_arithmetic.py +0 -0
  419. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/assertion/mutation_analysis/operators/test_decorator.py +0 -0
  420. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/assertion/mutation_analysis/operators/test_exception.py +0 -0
  421. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/assertion/mutation_analysis/operators/test_inheritance.py +0 -0
  422. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/assertion/mutation_analysis/operators/test_logical.py +0 -0
  423. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/assertion/mutation_analysis/operators/test_loop.py +0 -0
  424. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/assertion/mutation_analysis/operators/test_misc.py +0 -0
  425. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/assertion/mutation_analysis/test_controller.py +0 -0
  426. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/assertion/mutation_analysis/test_mutators.py +0 -0
  427. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/assertion/mutation_analysis/test_strategies.py +0 -0
  428. {pynguin-0.45.0/tests/resources → pynguin-0.46.0.dev0/tests/evolution}/__init__.py +0 -0
  429. {pynguin-0.45.0/tests/resources/typeevalpy → pynguin-0.46.0.dev0/tests/execution}/__init__.py +0 -0
  430. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/__init__.py +0 -0
  431. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/accessibles/__init__.py +0 -0
  432. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/accessibles/accessible.py +0 -0
  433. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/branchcoverage/__init__.py +0 -0
  434. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/branchcoverage/nestedbranches.py +0 -0
  435. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/branchcoverage/nobranches.py +0 -0
  436. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/branchcoverage/simplenesting.py +0 -0
  437. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/branchcoverage/singlebranches.py +0 -0
  438. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/branchcoverage/twomethodsinglebranches.py +0 -0
  439. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/c/__init__.py +0 -0
  440. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/c/my_ctypes.py +0 -0
  441. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/__init__.py +0 -0
  442. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/abstract.py +0 -0
  443. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/alias_module.py +0 -0
  444. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/async_class_gen.py +0 -0
  445. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/async_class_method.py +0 -0
  446. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/async_func.py +0 -0
  447. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/async_gen.py +0 -0
  448. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/attributes.py +0 -0
  449. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/blacklist.py +0 -0
  450. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/blacklist_transitive.py +0 -0
  451. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/comments.py +0 -0
  452. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/complex_dependencies.py +0 -0
  453. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/complex_dependency.py +0 -0
  454. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/conditional_import.py +0 -0
  455. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/dependency.py +0 -0
  456. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/diamond_bottom.py +0 -0
  457. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/diamond_left.py +0 -0
  458. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/diamond_right.py +0 -0
  459. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/diamond_top.py +0 -0
  460. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/enums.py +0 -0
  461. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/import_dependency.py +0 -0
  462. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/inheritance.py +0 -0
  463. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/lambda.py +0 -0
  464. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/nested_functions.py +0 -0
  465. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/no_any_annotations.py +0 -0
  466. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/no_dependencies.py +0 -0
  467. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/overridden_inherited_methods.py +0 -0
  468. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/simple_dependencies.py +0 -0
  469. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/typing_parameters.py +0 -0
  470. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/cluster/uses_async_dependency.py +0 -0
  471. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/crash/__init__.py +0 -0
  472. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/crash/partly_crashing.py +0 -0
  473. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/crash/seg_fault.py +0 -0
  474. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/duckmock/__init__.py +0 -0
  475. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/duckmock/complex.py +0 -0
  476. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/errors/__init__.py +0 -0
  477. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/errors/import_error.py +0 -0
  478. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/__init__.py +0 -0
  479. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/assertions.py +0 -0
  480. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/basket.py +0 -0
  481. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/calculator.py +0 -0
  482. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/calculator_simple.py +0 -0
  483. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/collections.py +0 -0
  484. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/constructors.py +0 -0
  485. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/difficult.py +0 -0
  486. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/dummies.py +0 -0
  487. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/dynamosa_example.py +0 -0
  488. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/enums.py +0 -0
  489. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/exceptions.py +0 -0
  490. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/flaky.py +0 -0
  491. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/impossible.py +0 -0
  492. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/inheritance.py +0 -0
  493. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/loop.py +0 -0
  494. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/module_alias.py +0 -0
  495. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/monkey.py +0 -0
  496. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/nested.py +0 -0
  497. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/objects.py +0 -0
  498. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/private_methods.py +0 -0
  499. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/queue.py +0 -0
  500. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/simple.py +0 -0
  501. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/triangle.py +0 -0
  502. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/type_inference.py +0 -0
  503. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/type_tracing/__init__.py +0 -0
  504. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/type_tracing/geometry.py +0 -0
  505. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/type_tracing/invoice.py +0 -0
  506. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/type_tracing/large_test_cluster.py +0 -0
  507. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/type_tracing/mixed.py +0 -0
  508. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/type_tracing/string_subtype.py +0 -0
  509. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/examples/unasserted_exceptions.py +0 -0
  510. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/grammar/__init__.py +0 -0
  511. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/grammar/parameters.py +0 -0
  512. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/instrumentation/__init__.py +0 -0
  513. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/instrumentation/comparison.py +0 -0
  514. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/instrumentation/covered_branches.py +0 -0
  515. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/instrumentation/covered_classes.py +0 -0
  516. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/instrumentation/covered_functions.py +0 -0
  517. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/instrumentation/covered_lines.py +0 -0
  518. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/instrumentation/inherited.py +0 -0
  519. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/instrumentation/mixed.py +0 -0
  520. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/instrumentation/simple.py +0 -0
  521. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/linecoverage/__init__.py +0 -0
  522. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/linecoverage/artificial_none.py +0 -0
  523. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/linecoverage/emptyfile.py +0 -0
  524. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/linecoverage/exception.py +0 -0
  525. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/linecoverage/list.py +0 -0
  526. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/linecoverage/plus.py +0 -0
  527. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/linecoverage/setter_getter.py +0 -0
  528. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/mutation/__init__.py +0 -0
  529. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/mutation/exception.py +0 -0
  530. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/mutation/expected.py +0 -0
  531. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/mutation/mutation.py +0 -0
  532. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/mutation/timeout.py +0 -0
  533. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/programgraph/__init__.py +0 -0
  534. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/programgraph/samples.py +0 -0
  535. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/programgraph/whileloop.py +0 -0
  536. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/programgraph/yield_fun.py +0 -0
  537. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/regression/__init__.py +0 -0
  538. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/regression/argparse_sys_exit.py +0 -0
  539. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/regression/custom_error.py +0 -0
  540. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/regression/not_main.py +0 -0
  541. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/__init__.py +0 -0
  542. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/dynamicseeding/__init__.py +0 -0
  543. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/dynamicseeding/dynamicseedingdummies.py +0 -0
  544. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/initialpopulationseeding/__init__.py +0 -0
  545. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/initialpopulationseeding/dummycontainer.py +0 -0
  546. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/__init__.py +0 -0
  547. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/assertseed_test_.py +0 -0
  548. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/classseed_test_.py +0 -0
  549. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/collfuncseed_test_.py +0 -0
  550. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/collseed_test_.py +0 -0
  551. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/nestedseed_test_.py +0 -0
  552. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/notknowncall_test_.py +0 -0
  553. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/notprimseed_test_.py +0 -0
  554. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/primitiveseed_test_.py +0 -0
  555. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/triangleseed_test_.py +0 -0
  556. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/wrongassignseed_test_.py +0 -0
  557. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/initialpopulationseeding/seedmodules/wrongfunctionnameseed_test_.py +0 -0
  558. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/staticconstantseeding/__init__.py +0 -0
  559. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/staticconstantseeding/dummy/__init__.py +0 -0
  560. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/staticconstantseeding/dummy/dummy.py +0 -0
  561. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/seeding/staticconstantseeding/dummy/empty.so +0 -0
  562. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/slicer/__init__.py +0 -0
  563. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/slicer/attribute_dependencies.py +0 -0
  564. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/slicer/closure.py +0 -0
  565. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/slicer/generator.py +0 -0
  566. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/slicer/immutable_attribute_dependency.py +0 -0
  567. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/slicer/import_star_def.py +0 -0
  568. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/slicer/import_star_main.py +0 -0
  569. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/slicer/partial_cover_dependency.py +0 -0
  570. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/slicer/simple_call.py +0 -0
  571. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/slicer/simple_call_arg.py +0 -0
  572. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/test.conf +0 -0
  573. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/test.conf.license +0 -0
  574. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/tests/typeinference/test_stubstrategy.pyi +0 -0
  575. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/type_tracing/__init__.py +0 -0
  576. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/type_tracing/guess_params.py +0 -0
  577. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/type_tracing/return_types.py +0 -0
  578. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/type_tracing/union_type.py +0 -0
  579. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/types/__init__.py +0 -0
  580. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/types/outside.py +0 -0
  581. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/types/subtyping.py +0 -0
  582. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/fixtures/types/symbols.py +0 -0
  583. {pynguin-0.45.0/tests/ga → pynguin-0.46.0.dev0/tests/instrumentation}/__init__.py +0 -0
  584. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/instrumentation/test_cfg.py +0 -0
  585. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/instrumentation/test_controldependencegraph.py +0 -0
  586. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/instrumentation/test_programgraph.py +0 -0
  587. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/instrumentation/test_version.py +0 -0
  588. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/master_worker/__init__.py +0 -0
  589. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/master_worker/test_client.py +0 -0
  590. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/master_worker/test_master.py +0 -0
  591. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/master_worker/test_worker.py +0 -0
  592. /pynguin-0.45.0/tests/testcase/execution/test_executionmocking.py → /pynguin-0.46.0.dev0/tests/resources/__init__.py +0 -0
  593. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/resources/typeevalpy/dummy.py +0 -0
  594. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/resources/typeevalpy/dummy_gt.json +0 -0
  595. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/resources/typeevalpy/dummy_gt.json.license +0 -0
  596. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/test___main__.py +0 -0
  597. {pynguin-0.45.0/tests/ga/operators → pynguin-0.46.0.dev0/tests/testcase}/__init__.py +0 -0
  598. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/testutils.py +0 -0
  599. {pynguin-0.45.0/tests/ga/operators/crossover → pynguin-0.46.0.dev0/tests/utils}/__init__.py +0 -0
  600. {pynguin-0.45.0/tests/ga/operators/ranking → pynguin-0.46.0.dev0/tests/utils/generic}/__init__.py +0 -0
  601. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/generic/test_genericaccessibleobject.py +0 -0
  602. {pynguin-0.45.0/tests/ga/operators/selection → pynguin-0.46.0.dev0/tests/utils/pynguinml}/__init__.py +0 -0
  603. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/pynguinml/test_ml_parsing_utils.py +0 -0
  604. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/pynguinml/test_mlparameter.py +0 -0
  605. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/pynguinml/test_np_rng.py +0 -0
  606. {pynguin-0.45.0/tests/ga/stoppingconditions → pynguin-0.46.0.dev0/tests/utils/stats}/__init__.py +0 -0
  607. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/stats/test_runtimevariable.py +0 -0
  608. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/stats/test_statistics.py +0 -0
  609. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/stats/test_statisticsbackend.py +0 -0
  610. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/test_atomicinteger.py +0 -0
  611. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/test_collection_utils.py +0 -0
  612. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/test_exceptions.py +0 -0
  613. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/test_fandango_faker_utils.py +0 -0
  614. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/test_llm.py +0 -0
  615. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/test_mirror.py +0 -0
  616. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/test_mutation_utils.py +0 -0
  617. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/test_orderedset.py +0 -0
  618. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/test_randomness.py +0 -0
  619. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/test_type_utils.py +0 -0
  620. {pynguin-0.45.0 → pynguin-0.46.0.dev0}/tests/utils/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pynguin
3
- Version: 0.45.0
3
+ Version: 0.46.0.dev0
4
4
  Summary: Pynguin is a tool for automated unit test generation for Python
5
5
  License: MIT
6
6
  Keywords: unit test,random testing,search based,test generation
@@ -4,7 +4,7 @@
4
4
 
5
5
  [tool.poetry]
6
6
  name = "pynguin"
7
- version = "0.45.0"
7
+ version = "0.46.0.dev"
8
8
  description = "Pynguin is a tool for automated unit test generation for Python"
9
9
  authors = [
10
10
  "Stephan Lukasczyk <stephan@pynguin.eu>",
@@ -99,6 +99,7 @@ pytest-cov = "^6.1.1"
99
99
  pytest-mock = "^3.14.0"
100
100
  pytest-picked = "^0.5.1"
101
101
  pytest-sugar = "^1.0.0"
102
+ pytest-xdist = "^3.6.0"
102
103
 
103
104
  [tool.poetry.extras]
104
105
  openai = [ "openai", "python-dotenv" ]
@@ -6,4 +6,4 @@
6
6
  #
7
7
  """Specifies the version of Pynguin."""
8
8
 
9
- __version__ = "0.45.0"
9
+ __version__ = "0.46.0.dev"
@@ -0,0 +1,114 @@
1
+ <!--
2
+ SPDX-FileCopyrightText: 2019–2026 Pynguin Contributors
3
+
4
+ SPDX-License-Identifier: CC-BY-4.0
5
+ -->
6
+
7
+ # Analyses Module
8
+
9
+ <!-- Parent: ../AGENTS.md -->
10
+
11
+ The `analyses/` directory contains static analysis components for subject program understanding, including module analysis, type inference, and test cluster generation.
12
+
13
+ ## Overview
14
+
15
+ This module performs comprehensive program analysis to:
16
+ - Build test clusters from subject program callables
17
+ - Perform type inference on generic types
18
+ - Analyze module structure and complexity
19
+ - Support seeding from existing tests
20
+
21
+ ## Directory Structure
22
+
23
+ ```
24
+ analyses/
25
+ ├── constants.py # Analysis constants and configuration
26
+ ├── generator.py # Test cluster generation from modules
27
+ ├── module.py # Module representation and access
28
+ ├── modulecomplexity.py # Module complexity metrics
29
+ ├── seeding.py # Seed test generation from existing tests
30
+ ├── string_subtypes.py # String type hierarchy analysis
31
+ ├── syntaxtree.py # Abstract syntax tree utilities
32
+ └── type_inference.py # Generic type inference engine
33
+ ├── typesystem.py # Type system representation
34
+ ```
35
+
36
+ ## Core Components
37
+
38
+ ### 1. Module Analysis (module.py)
39
+ - **ModuleAccessor**: Accesses Python modules and their callables
40
+ - Discovers classes, methods, functions within a module
41
+ - Tracks module dependencies and import structure
42
+ - Filters public vs. private members
43
+
44
+ ### 2. Type System (typesystem.py)
45
+ - **GenericType**: Represents generic Python types (List[int], Dict[str, Any])
46
+ - **Type inference**: Resolves type parameters from annotations and usage
47
+ - Handles complex type hierarchies and bounds
48
+ - Supports Union, Optional, generic base classes
49
+
50
+ ### 3. Type Inference (type_inference.py)
51
+ - Infers generic type parameters from class hierarchies
52
+ - Resolves type variables in method signatures
53
+ - Handles substitution of type bounds
54
+
55
+ ### 4. Test Cluster Generation (generator.py)
56
+ - **TestCluster**: Collection of callable descriptions with dependency info
57
+ - Creates from subject module or custom callables
58
+ - Builds dependency graph for method/function calls
59
+ - Tracks class hierarchies for polymorphism
60
+
61
+ ### 5. Seeding (seeding.py)
62
+ - Loads existing tests from files or test suites
63
+ - Extracts test cases for use as initial population
64
+ - Supports multiple test formats
65
+
66
+ ### 6. Complexity Analysis (modulecomplexity.py)
67
+ - Computes module complexity metrics
68
+ - Analyzes cyclomatic complexity
69
+ - Used for search space characterization
70
+
71
+ ## Key Patterns
72
+
73
+ ### Module Access
74
+ ```python
75
+ from pynguin.analyses.module import ModuleAccessor
76
+
77
+ accessor = ModuleAccessor(module)
78
+ callables = accessor.get_all_callables()
79
+ classes = accessor.get_classes()
80
+ ```
81
+
82
+ ### Type System
83
+ ```python
84
+ from pynguin.analyses.typesystem import GenericType
85
+
86
+ # Parse complex types
87
+ list_int = GenericType.from_string("List[int]")
88
+ dict_type = GenericType.from_string("Dict[str, Any]")
89
+ ```
90
+
91
+ ### Test Cluster
92
+ ```python
93
+ from pynguin.analyses.generator import TestClusterGenerator
94
+
95
+ generator = TestClusterGenerator()
96
+ cluster = generator.generate_cluster(module)
97
+ callables = cluster.get_all_callables()
98
+ ```
99
+
100
+ ## Related Modules
101
+
102
+ - `ga/` - Uses test clusters for search space definition
103
+ - `testcase/` - Test cases use analyzed type information
104
+ - `instrumentation/` - Complements dynamic analysis
105
+
106
+ ## Key Files to Explore
107
+
108
+ - `typesystem.py` - Complete type system representation
109
+ - `generator.py` - Test cluster generation algorithm
110
+ - `module.py` - Module introspection utilities
111
+
112
+ ---
113
+
114
+ **Timestamp**: 2026-01-30
@@ -10,18 +10,80 @@ Generators can be either GenericCallableAccessibleObjects or GenericEnum objects
10
10
 
11
11
  import functools
12
12
  import itertools
13
- from abc import abstractmethod
13
+ from abc import ABC, abstractmethod
14
14
  from collections import defaultdict
15
+ from typing import Generic, TypeVar
15
16
 
16
17
  import pynguin.configuration as config
17
18
  from pynguin.analyses.typesystem import AnyType, NoneType, ProperType, TypeSystem, is_primitive_type
18
- from pynguin.ga.operators.selection import Selectable, SelectionFunction
19
+ from pynguin.utils import randomness
19
20
  from pynguin.utils.generic.genericaccessibleobject import (
20
21
  GenericAccessibleObject,
21
22
  GenericCallableAccessibleObject,
22
23
  )
23
24
  from pynguin.utils.orderedset import FrozenOrderedSet, OrderedSet
24
25
 
26
+ S = TypeVar("S")
27
+
28
+
29
+ class Selectable(ABC):
30
+ """Interface for objects that can be selected based on fitness."""
31
+
32
+ @abstractmethod
33
+ def get_fitness(self) -> float:
34
+ """Return the fitness value of this selectable object."""
35
+
36
+
37
+ class SelectionFunction(ABC, Generic[S]):
38
+ """Interface for functions that select from a population."""
39
+
40
+ @abstractmethod
41
+ def select(self, population: list[S], number: int = 1) -> list[S]:
42
+ """Select `number` items from `population`."""
43
+
44
+
45
+ class RandomSelection(SelectionFunction[S]):
46
+ """Selects items uniformly at random."""
47
+
48
+ def select(self, population: list[S], number: int = 1) -> list[S]:
49
+ """Select `number` items from `population`."""
50
+ return [randomness.RNG.choice(population) for _ in range(number)]
51
+
52
+
53
+ class RankSelection(SelectionFunction[S]):
54
+ """Selects items using linear rank-based probability (lower fitness index = better)."""
55
+
56
+ def __init__(self, bias: float = 1.7) -> None:
57
+ """Initializes the rank selection function.
58
+
59
+ Args:
60
+ bias: The selection bias.
61
+ """
62
+ self._bias = bias
63
+
64
+ def select(self, population: list[S], number: int = 1) -> list[S]:
65
+ """Select `number` items from `population`."""
66
+ n = len(population)
67
+ if n == 0:
68
+ return []
69
+ weights = [
70
+ max(0.0, (2 - self._bias) + 2 * (self._bias - 1) * (n - 1 - i) / max(n - 1, 1))
71
+ for i in range(n)
72
+ ]
73
+ total = sum(weights)
74
+ results = []
75
+ for _ in range(number):
76
+ r = randomness.RNG.uniform(0, total)
77
+ cumulative = 0.0
78
+ selected = population[-1]
79
+ for i, item in enumerate(population):
80
+ cumulative += weights[i]
81
+ if cumulative >= r:
82
+ selected = item
83
+ break
84
+ results.append(selected)
85
+ return results
86
+
25
87
 
26
88
  class GeneratorFitnessFunction:
27
89
  """Interface for a fitness function for type generators."""
@@ -44,6 +44,7 @@ from pynguin.analyses.type_inference import (
44
44
  HintInference,
45
45
  InferenceProvider,
46
46
  LLMInference,
47
+ LLMInferenceWithSubtypes,
47
48
  NoInference,
48
49
  TypeEvalPyInference,
49
50
  )
@@ -52,7 +53,12 @@ from pynguin.utils.llm import LLMProvider
52
53
  if config.configuration.pynguinml.ml_testing_enabled or typing.TYPE_CHECKING:
53
54
  import pynguin.utils.pynguinml.ml_testing_resources as tr
54
55
 
55
- from pynguin.analyses.generator import GeneratorProvider, RandomGeneratorProvider
56
+ from pynguin.analyses.generator import (
57
+ GeneratorProvider,
58
+ RandomGeneratorProvider,
59
+ RandomSelection,
60
+ RankSelection,
61
+ )
56
62
  from pynguin.analyses.modulecomplexity import mccabe_complexity
57
63
  from pynguin.analyses.syntaxtree import (
58
64
  FunctionDescription,
@@ -75,7 +81,6 @@ from pynguin.analyses.typesystem import (
75
81
  Unsupported,
76
82
  )
77
83
  from pynguin.configuration import TypeInferenceStrategy
78
- from pynguin.ga.operators.selection import RandomSelection, RankSelection
79
84
  from pynguin.utils import randomness
80
85
  from pynguin.utils.exceptions import (
81
86
  ConstraintValidationError,
@@ -100,9 +105,8 @@ if config.configuration.pynguinml.ml_testing_enabled or typing.TYPE_CHECKING:
100
105
 
101
106
  if typing.TYPE_CHECKING:
102
107
  from collections.abc import Callable, Sequence
108
+ from typing import Any
103
109
 
104
- import pynguin.ga.algorithms.archive as arch
105
- import pynguin.ga.computations as ff
106
110
  from pynguin.instrumentation.tracer import SubjectProperties
107
111
  from pynguin.utils.pynguinml.mlparameter import MLParameter
108
112
 
@@ -793,6 +797,9 @@ class ModuleTestCluster(TestCluster): # noqa: PLR0904
793
797
  # Keep track of all callables, this is only for statistics purposes.
794
798
  self.__callables: OrderedSet[GenericCallableAccessibleObject] = OrderedSet()
795
799
 
800
+ # Whether the SUT or any of its transitive imports uses Python's random module.
801
+ self.sut_uses_random: bool = False
802
+
796
803
  def _setup_generator_selection(self) -> GeneratorProvider:
797
804
  if (
798
805
  config.configuration.generator_selection.generator_selection_algorithm
@@ -1143,9 +1150,9 @@ class FilteredModuleTestCluster(TestCluster): # noqa: PLR0904
1143
1150
  def __init__( # noqa: D107
1144
1151
  self,
1145
1152
  delegate: ModuleTestCluster,
1146
- archive: arch.Archive,
1153
+ archive: Any,
1147
1154
  subject_properties: SubjectProperties,
1148
- targets: OrderedSet[ff.TestCaseFitnessFunction],
1155
+ targets: OrderedSet,
1149
1156
  ) -> None:
1150
1157
  self.__delegate = delegate
1151
1158
  self.__subject_properties = subject_properties
@@ -1177,7 +1184,7 @@ class FilteredModuleTestCluster(TestCluster): # noqa: PLR0904
1177
1184
  archive.add_on_target_covered(self.on_target_covered)
1178
1185
 
1179
1186
  def __get_accessible_object_for_target(
1180
- self, target: ff.TestCaseFitnessFunction
1187
+ self, target: Any
1181
1188
  ) -> GenericCallableAccessibleObject | None:
1182
1189
  code_object_id: int | None = target.code_object_id
1183
1190
  while code_object_id is not None:
@@ -1190,7 +1197,7 @@ class FilteredModuleTestCluster(TestCluster): # noqa: PLR0904
1190
1197
  ].parent_code_object_id
1191
1198
  return None
1192
1199
 
1193
- def on_target_covered(self, target: ff.TestCaseFitnessFunction) -> None:
1200
+ def on_target_covered(self, target: Any) -> None:
1194
1201
  """A callback function to get informed by an archive when a target is covered.
1195
1202
 
1196
1203
  Args:
@@ -1890,6 +1897,9 @@ def get_type_provider(
1890
1897
  case TypeInferenceStrategy.LLM:
1891
1898
  callables = _collect_public_callables(module)
1892
1899
  return LLMInference(callables, LLMProvider.OPENAI, type_system)
1900
+ case TypeInferenceStrategy.LLM_WITH_SUBTYPES:
1901
+ callables = _collect_public_callables(module)
1902
+ return LLMInferenceWithSubtypes(callables, LLMProvider.OPENAI, type_system)
1893
1903
  case TypeInferenceStrategy.TYPE_HINTS:
1894
1904
  return HintInference()
1895
1905
  case TypeInferenceStrategy.NONE:
@@ -0,0 +1,120 @@
1
+ # This file is part of Pynguin.
2
+ #
3
+ # SPDX-FileCopyrightText: 2019–2026 Pynguin Contributors
4
+ #
5
+ # SPDX-License-Identifier: MIT
6
+ #
7
+ """Utility for converting LLM subtype inference to StringSubtype instances."""
8
+
9
+ from __future__ import annotations
10
+
11
+ import logging
12
+ import re
13
+
14
+ from pynguin.analyses.typesystem import (
15
+ CSVString,
16
+ EmailString,
17
+ IPv4String,
18
+ IPv6String,
19
+ ISOColorString,
20
+ ISODateString,
21
+ StringSubtype,
22
+ URLString,
23
+ )
24
+
25
+ _LOGGER = logging.getLogger(__name__)
26
+
27
+ # Mapping of Faker method names to corresponding StringSubtype classes
28
+ _GENERATOR_TO_SUBTYPE: dict[str, type[StringSubtype]] = {
29
+ "email": EmailString,
30
+ "ipv4": IPv4String,
31
+ "ipv6": IPv6String,
32
+ "color": ISOColorString,
33
+ "csv": CSVString,
34
+ "date": ISODateString,
35
+ "url": URLString,
36
+ }
37
+
38
+ # Mapping of StringSubtype classes to Faker method names
39
+ _SUBTYPE_TO_GENERATOR: dict[type[StringSubtype], str] = {
40
+ v: k for k, v in _GENERATOR_TO_SUBTYPE.items()
41
+ }
42
+
43
+ AVAILABLE_GENERATORS: list[str] = list(_GENERATOR_TO_SUBTYPE.keys())
44
+
45
+
46
+ def get_subtype_for_generator(generator_name: str) -> StringSubtype | None:
47
+ """Get a StringSubtype instance for a given Faker generator name."""
48
+ subtype_class = _GENERATOR_TO_SUBTYPE.get(generator_name)
49
+ # All registered StringSubtype subclasses have no-arg constructors
50
+ return subtype_class() if subtype_class else None # type: ignore[call-arg]
51
+
52
+
53
+ def get_generator_for_subtype(subtype: StringSubtype) -> str | None:
54
+ """Get the Faker generator name for a given StringSubtype instance."""
55
+ return _SUBTYPE_TO_GENERATOR.get(type(subtype))
56
+
57
+
58
+ def has_generator(generator_name: str) -> bool:
59
+ """Check if a generator name is registered."""
60
+ return generator_name in _GENERATOR_TO_SUBTYPE
61
+
62
+
63
+ def from_string(subtype_str: str) -> StringSubtype | None:
64
+ """Convert a subtype string into a StringSubtype instance.
65
+
66
+ The subtype string can be either:
67
+ 1. A Faker generator name (e.g., "email", "ipv4", "url")
68
+ 2. A custom regex pattern (e.g., "^[a-z]+$")
69
+
70
+ Args:
71
+ subtype_str: The subtype string from LLM inference
72
+
73
+ Returns:
74
+ A StringSubtype instance, or None if conversion fails
75
+ """
76
+ if not subtype_str or not isinstance(subtype_str, str):
77
+ return None
78
+
79
+ # First, try to match against known Faker generators
80
+ if has_generator(subtype_str):
81
+ subtype = get_subtype_for_generator(subtype_str)
82
+ if subtype:
83
+ return subtype
84
+
85
+ # Otherwise, try to parse as a custom regex pattern
86
+ try:
87
+ # Validate that it's a valid regex by attempting to compile it
88
+ compiled_regex = re.compile(subtype_str)
89
+ return StringSubtype(compiled_regex)
90
+ except re.error as e:
91
+ _LOGGER.warning(
92
+ "Failed to parse subtype string '%s' as regex pattern: %s",
93
+ subtype_str,
94
+ e,
95
+ )
96
+ return None
97
+
98
+
99
+ def from_faker_generator(generator_name: str) -> StringSubtype | None:
100
+ """Create a StringSubtype from a Faker generator name.
101
+
102
+ Args:
103
+ generator_name: The name of the Faker generator
104
+
105
+ Returns:
106
+ A StringSubtype instance, or None if the generator is not registered
107
+ """
108
+ return get_subtype_for_generator(generator_name)
109
+
110
+
111
+ def to_faker_generator(subtype: StringSubtype) -> str | None:
112
+ """Get the Faker generator name for a StringSubtype, if available.
113
+
114
+ Args:
115
+ subtype: The StringSubtype instance
116
+
117
+ Returns:
118
+ The Faker generator name, or None if no mapping exists
119
+ """
120
+ return get_generator_for_subtype(subtype)