sflkit 0.3.5__tar.gz → 0.4.0__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.
- {sflkit-0.3.5/src/sflkit.egg-info → sflkit-0.4.0}/PKG-INFO +3 -2
- {sflkit-0.3.5 → sflkit-0.4.0}/pyproject.toml +1 -1
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/features/handler.py +4 -4
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/runners/run.py +1 -0
- {sflkit-0.3.5 → sflkit-0.4.0/src/sflkit.egg-info}/PKG-INFO +3 -2
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_visitors.py +4 -4
- {sflkit-0.3.5 → sflkit-0.4.0}/LICENSE +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/README.md +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/setup.cfg +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/__init__.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/__init__.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/analysis_type.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/analyzer.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/factory.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/mapping.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/predicate.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/similarity.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/spectra.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/suggestion.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/cli.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/color.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/config.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/evaluation.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/events/__init__.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/events/event_file.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/events/mapping.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/features/__init__.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/features/value.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/features/vector.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/instrumentation/__init__.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/instrumentation/dir_instrumentation.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/instrumentation/file_instrumentation.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/__init__.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/extract.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/finder.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/java/__init__.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/java/extract.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/java/factory.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/java/finder.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/java/visitor.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/language.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/meta.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/python/__init__.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/python/extract.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/python/factory.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/python/finder.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/python/visitor.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/visitor.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/logger.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/model/__init__.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/model/model.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/model/scope.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/runners/__init__.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/weights/__init__.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/weights/analyzer.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/weights/models.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit.egg-info/SOURCES.txt +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit.egg-info/dependency_links.txt +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit.egg-info/entry_points.txt +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit.egg-info/requires.txt +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit.egg-info/top_level.txt +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_analysis_objects.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_analyzer.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_cli.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_color.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_config.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_coverage.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_dependency_weights.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_evaluation.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_events.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_execution.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_instrumentation.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_language.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_predicates.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_runner.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_runner_pytest_versions.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_scope.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_spectra.py +0 -0
- {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_suggestions.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: sflkit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: SFLKit: : A Workbench for Statistical Fault Localization
|
|
5
5
|
Author-email: Marius Smytzek <marius.smytzek@cispa.de>
|
|
6
6
|
License: MIT License
|
|
@@ -47,6 +47,7 @@ Requires-Dist: pytest-cov>=6.0.0; extra == "test"
|
|
|
47
47
|
Requires-Dist: pytest-html>=4.1.1; extra == "test"
|
|
48
48
|
Requires-Dist: pytest-rerunfailures>=15.0; extra == "test"
|
|
49
49
|
Requires-Dist: parameterized>=0.9.0; extra == "test"
|
|
50
|
+
Dynamic: license-file
|
|
50
51
|
|
|
51
52
|
# SFLKit: A Workbench for Statistical Fault Localization
|
|
52
53
|
|
|
@@ -78,14 +78,14 @@ class FeatureBuilder(CombinationFactory):
|
|
|
78
78
|
def hit(self, id_, *args, **kwargs):
|
|
79
79
|
event: Event
|
|
80
80
|
for a in self.analysis:
|
|
81
|
-
if isinstance(a,
|
|
82
|
-
feature =
|
|
81
|
+
if isinstance(a, Predicate):
|
|
82
|
+
feature = TertiaryFeature(str(a), a)
|
|
83
83
|
self.feature_vectors[id_].set_feature(
|
|
84
84
|
feature, self.map_evaluation(a, id_)
|
|
85
85
|
)
|
|
86
86
|
self.all_features.add(feature)
|
|
87
|
-
elif isinstance(a,
|
|
88
|
-
feature =
|
|
87
|
+
elif isinstance(a, Spectrum):
|
|
88
|
+
feature = BinaryFeature(str(a), a)
|
|
89
89
|
self.feature_vectors[id_].set_feature(
|
|
90
90
|
feature, self.map_evaluation(a, id_)
|
|
91
91
|
)
|
|
@@ -401,6 +401,7 @@ class PytestRunner(Runner):
|
|
|
401
401
|
cwd=directory,
|
|
402
402
|
)
|
|
403
403
|
LOGGER.debug(f"pytest collection finished with {process.returncode}")
|
|
404
|
+
LOGGER.debug(process.stderr.decode("utf8"))
|
|
404
405
|
tests = PytestStructure.parse_tests(process.stdout.decode("utf8"))
|
|
405
406
|
LOGGER.debug(f"pytest collection found {len(tests)} tests")
|
|
406
407
|
return self.normalize_paths(tests, file_bases, directory, root_dir)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: sflkit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: SFLKit: : A Workbench for Statistical Fault Localization
|
|
5
5
|
Author-email: Marius Smytzek <marius.smytzek@cispa.de>
|
|
6
6
|
License: MIT License
|
|
@@ -47,6 +47,7 @@ Requires-Dist: pytest-cov>=6.0.0; extra == "test"
|
|
|
47
47
|
Requires-Dist: pytest-html>=4.1.1; extra == "test"
|
|
48
48
|
Requires-Dist: pytest-rerunfailures>=15.0; extra == "test"
|
|
49
49
|
Requires-Dist: parameterized>=0.9.0; extra == "test"
|
|
50
|
+
Dynamic: license-file
|
|
50
51
|
|
|
51
52
|
# SFLKit: A Workbench for Statistical Fault Localization
|
|
52
53
|
|
|
@@ -24,7 +24,7 @@ class VarExtractionTest(unittest.TestCase):
|
|
|
24
24
|
"[d + r for d in ds if any(r for r in ds)]", ["ds", "r"], ["d"]
|
|
25
25
|
)
|
|
26
26
|
self._test_extract(
|
|
27
|
-
'[d for d in ds if d.name == "test"]', ["ds"
|
|
27
|
+
'[d for d in ds if d.name == "test"]', ["ds", "d.name"], ["d"]
|
|
28
28
|
)
|
|
29
29
|
self._test_extract("(d for d in ds)", ["ds"], ["d"])
|
|
30
30
|
self._test_extract("(d for d in ds if any(r for r in ds))", ["ds"], ["d", "r"])
|
|
@@ -32,7 +32,7 @@ class VarExtractionTest(unittest.TestCase):
|
|
|
32
32
|
"(d + r for d in ds if any(r for r in ds))", ["ds", "r"], ["d"]
|
|
33
33
|
)
|
|
34
34
|
self._test_extract(
|
|
35
|
-
'(d for d in ds if d.name == "test")', ["ds"
|
|
35
|
+
'(d for d in ds if d.name == "test")', ["ds", "d.name"], ["d"]
|
|
36
36
|
)
|
|
37
37
|
self._test_extract("{d for d in ds}", ["ds"], ["d"])
|
|
38
38
|
self._test_extract("{d for d in ds if any(r for r in ds)}", ["ds"], ["d", "r"])
|
|
@@ -40,12 +40,12 @@ class VarExtractionTest(unittest.TestCase):
|
|
|
40
40
|
"{d + r for d in ds if any(r for r in ds)}", ["ds", "r"], ["d"]
|
|
41
41
|
)
|
|
42
42
|
self._test_extract(
|
|
43
|
-
'{d for d in ds if d.name == "test"}', ["ds"
|
|
43
|
+
'{d for d in ds if d.name == "test"}', ["ds", "d.name"], ["d"]
|
|
44
44
|
)
|
|
45
45
|
|
|
46
46
|
def test_lambda(self):
|
|
47
47
|
self._test_extract("lambda d: d + r", ["r"], ["d"])
|
|
48
|
-
self._test_extract("lambda d: d.name", [
|
|
48
|
+
self._test_extract("lambda d: d.name", ["d.name"], ["d"])
|
|
49
49
|
|
|
50
50
|
def test_arguments(self):
|
|
51
51
|
self._test_extract("def f(x=y):\n pass", ["x"], ["y"], use=False)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|