extrap 4.2.2__tar.gz → 4.2.3__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.
- {extrap-4.2.2/extrap.egg-info → extrap-4.2.3}/PKG-INFO +1 -1
- {extrap-4.2.2 → extrap-4.2.3}/extrap/__init__.py +1 -1
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/measurement.py +2 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/fileio/file_reader/cube_file_reader2.py +8 -4
- {extrap-4.2.2 → extrap-4.2.3/extrap.egg-info}/PKG-INFO +1 -1
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_load_cube_files.py +71 -1
- {extrap-4.2.2 → extrap-4.2.3}/AUTHORS.md +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/LICENSE +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/MANIFEST.in +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/README.md +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/__main__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/annotations/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/annotations/comment_annotation/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/annotations/comment_annotation/comment_base.svg +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/callpath.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/calltree.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/coordinate.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/experiment.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/fraction.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/functions.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/hypotheses.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/metric.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/model.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/named_entity.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/parameter.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/scaling_type.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/entities/terms.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/extrap/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/extrap/extrapcmd.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/extrap/extrapgui.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/fileio/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/fileio/experiment_io.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/fileio/file_reader/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/fileio/file_reader/abstract_directory_reader.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/fileio/file_reader/extrap3_experiment_reader.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/fileio/file_reader/file_reader_mixin.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/fileio/file_reader/json_file_reader.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/fileio/file_reader/jsonlines_file_reader.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/fileio/file_reader/talpas_file_reader.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/fileio/file_reader/text_file_reader.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/fileio/io_helper.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/fileio/output.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/fileio/values_io.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/AdvancedPlotWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/ColorWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/DataDisplay.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/GraphWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/ImportOptionsDialog.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/LogWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/MainWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/MeasurementWizardWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/ModelerOptionsWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/ModelerWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/PlotTypeSelector.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/SelectorWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/StrongScalingConversionDialog.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/TreeModel.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/TreeView.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/Utils.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/components/ExpanderWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/components/ParameterValueSlider.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/components/ProgressWindow.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/components/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/components/annotation_delegate.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/components/dynamic_options.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/components/file_dialog.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/components/model_color_map.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/components/plot_formatting_options.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/components/switch_widget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/components/worker.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/plots/AbstractPlotWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/plots/AllFunctionsAsDifferentSurfacePlotWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/plots/AllFunctionsAsOneSurfacePlotWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/plots/BaseGraphWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/plots/DominatingFunctionsAsHeatMapWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/plots/DominatingFunctionsAsSingleScatterPlotWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/plots/HeatMapGraphWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/plots/InterpolatedContourDisplayWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/plots/IsolinesDisplayWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/plots/MaxZAsSingleSurfacePlotWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/plots/MeasurementPointsPlotWidget.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/plots/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/resources/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/gui/resources/menu.svg +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/modelers/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/modelers/abstract_modeler.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/modelers/loader.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/modelers/model_generator.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/modelers/modeler_options.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/modelers/multi_parameter/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/modelers/multi_parameter/multi_parameter_modeler.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/modelers/single_parameter/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/modelers/single_parameter/abstract_base.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/modelers/single_parameter/adaptive/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/modelers/single_parameter/basic.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/modelers/single_parameter/refining.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/modelers/single_parameter/segmented.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/mpa/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/mpa/add_selection_strategy.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/mpa/base_selection_strategy.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/mpa/gpr_selection_strategy.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/mpa/measurement_point_advisor.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/mpa/util.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/util/__init__.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/util/caching.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/util/classproperty.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/util/deprecation.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/util/dynamic_options.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/util/exceptions.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/util/extension_loader.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/util/formatting_helper.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/util/latex_formatting.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/util/options_parser.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/util/progress_bar.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/util/serialization_schema.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/util/string_formats.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap/util/unique_list.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap.egg-info/SOURCES.txt +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap.egg-info/dependency_links.txt +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap.egg-info/entry_points.txt +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap.egg-info/requires.txt +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/extrap.egg-info/top_level.txt +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/setup.cfg +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/setup.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_basic_modeler.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_compat.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_console.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_fraction.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_gui.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_load_extrap3_experiment.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_load_json_file.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_load_jsonlines_file.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_load_save_experiment.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_load_talpas_file.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_load_text_file.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_measurement.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_modeler_adaptive.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_modeling.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_mpa.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_mpa_base_strategy.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_mpa_gpr_strategy.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_mpa_utils.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_multi_param_modeler.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_output.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_refining_modeler.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_scaling_detection.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_segmented_modeler.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_serialization.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_serializing_segments.py +0 -0
- {extrap-4.2.2 → extrap-4.2.3}/tests/test_serializing_values.py +0 -0
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# See the LICENSE file in the base directory for details.
|
|
7
7
|
|
|
8
8
|
__title__ = "Extra-P"
|
|
9
|
-
__version__ = "4.2.
|
|
9
|
+
__version__ = "4.2.3"
|
|
10
10
|
__description__ = "Extra-P, automated performance modeling for HPC applications"
|
|
11
11
|
__copyright__ = "Copyright (c) 2020-2024 Technical University of Darmstadt, Darmstadt, Germany"
|
|
12
12
|
__documentation_link__ = f"https://github.com/extra-p/extrap/tree/v{__version__}/docs"
|
|
@@ -220,8 +220,9 @@ class CubeFileReader2(AbstractDirectoryReader, AbstractScalingConversionReader,
|
|
|
220
220
|
total_values[callpaths[r_cnode.id]].append(cnode_values.astype(float))
|
|
221
221
|
elif self.scaling_type == ScalingType.WEAK_THREADED:
|
|
222
222
|
values = cnode_values.astype(float)
|
|
223
|
-
|
|
224
|
-
|
|
223
|
+
if values.any():
|
|
224
|
+
zero_value_mask = values == 0
|
|
225
|
+
masked_array = ma.array(values, mask=zero_value_mask)
|
|
225
226
|
total_values[callpaths[r_cnode.id]].append(masked_array)
|
|
226
227
|
elif self.scaling_type == ScalingType.STRONG:
|
|
227
228
|
total_values[callpaths[r_cnode.id]].append(cnode_values.sum().astype(float))
|
|
@@ -241,8 +242,11 @@ class CubeFileReader2(AbstractDirectoryReader, AbstractScalingConversionReader,
|
|
|
241
242
|
aggregated_values[(callpath, metric)].append(cnode_values.astype(float))
|
|
242
243
|
elif self.scaling_type == ScalingType.WEAK_THREADED:
|
|
243
244
|
values = cnode_values.astype(float)
|
|
244
|
-
|
|
245
|
-
|
|
245
|
+
if not values.any():
|
|
246
|
+
aggregated_values[(callpath, metric)].append(ma.array(values))
|
|
247
|
+
else:
|
|
248
|
+
zero_value_mask = (values == 0)
|
|
249
|
+
aggregated_values[(callpath, metric)].append(ma.array(values, mask=zero_value_mask))
|
|
246
250
|
# in case of strong scaling calculate the sum over all mpi process values
|
|
247
251
|
elif self.scaling_type == ScalingType.STRONG:
|
|
248
252
|
aggregated_values[(callpath, metric)].append(cnode_values.sum().astype(float))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# This file is part of the Extra-P software (http://www.scalasca.org/software/extra-p)
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2020-
|
|
3
|
+
# Copyright (c) 2020-2024, Technical University of Darmstadt, Germany
|
|
4
4
|
#
|
|
5
5
|
# This software may be modified and distributed under the terms of a BSD-style license.
|
|
6
6
|
# See the LICENSE file in the base directory for details.
|
|
@@ -13,6 +13,7 @@ from extrap.entities.calltree import CallTree, Node
|
|
|
13
13
|
from extrap.entities.coordinate import Coordinate
|
|
14
14
|
from extrap.entities.metric import Metric
|
|
15
15
|
from extrap.entities.parameter import Parameter
|
|
16
|
+
from extrap.entities.scaling_type import ScalingType
|
|
16
17
|
from extrap.fileio.file_reader.cube_file_reader2 import CubeFileReader2
|
|
17
18
|
from extrap.util.exceptions import FileFormatError
|
|
18
19
|
|
|
@@ -129,6 +130,75 @@ class TestCubeFileLoader(unittest.TestCase):
|
|
|
129
130
|
CubeFileReader2().read_cube_file('data/cubeset/multi_parameter', 'weak')
|
|
130
131
|
self.assertFalse(record)
|
|
131
132
|
|
|
133
|
+
def test_weak_threaded_loading(self):
|
|
134
|
+
cfr = CubeFileReader2()
|
|
135
|
+
cfr.scaling_type = ScalingType.WEAK_THREADED
|
|
136
|
+
experiment = cfr.read_experiment('data/cubeset/simple_threaded')
|
|
137
|
+
self.assertListEqual([Parameter('f')], experiment.parameters)
|
|
138
|
+
expected_coordinates = {Coordinate(1), Coordinate(2), Coordinate(3), Coordinate(4), Coordinate(5)}
|
|
139
|
+
self.assertSetEqual(expected_coordinates, set(experiment.coordinates))
|
|
140
|
+
self.assertSetEqual({Callpath('main'), Callpath('main->foo'), Callpath('main->bar'),
|
|
141
|
+
Callpath('main->omp parallel'), Callpath('main->zero')}, set(experiment.callpaths))
|
|
142
|
+
self.assertSetEqual({Metric('visits'), Metric('time')},
|
|
143
|
+
set(experiment.metrics))
|
|
144
|
+
|
|
145
|
+
for measurements in experiment.measurements.values():
|
|
146
|
+
self.assertEqual(len(expected_coordinates), len(measurements))
|
|
147
|
+
|
|
148
|
+
cp = Callpath('main->foo')
|
|
149
|
+
met = Metric('time')
|
|
150
|
+
for measurement in experiment.measurements[cp, met]:
|
|
151
|
+
self.assertEqual(cp, measurement.callpath)
|
|
152
|
+
self.assertEqual(met, measurement.metric)
|
|
153
|
+
expected_value = 4.95 * measurement.coordinate[0]
|
|
154
|
+
self.assertAlmostEqual(expected_value, measurement.mean)
|
|
155
|
+
self.assertAlmostEqual(expected_value, measurement.median)
|
|
156
|
+
|
|
157
|
+
cp = Callpath('main->bar')
|
|
158
|
+
met = Metric('time')
|
|
159
|
+
for measurement in experiment.measurements[cp, met]:
|
|
160
|
+
self.assertEqual(cp, measurement.callpath)
|
|
161
|
+
self.assertEqual(met, measurement.metric)
|
|
162
|
+
expected_value = 4.15 * measurement.coordinate[0]
|
|
163
|
+
self.assertAlmostEqual(expected_value, measurement.mean)
|
|
164
|
+
self.assertAlmostEqual(expected_value, measurement.median)
|
|
165
|
+
|
|
166
|
+
cp = Callpath('main->omp parallel')
|
|
167
|
+
met = Metric('time')
|
|
168
|
+
for measurement in experiment.measurements[cp, met]:
|
|
169
|
+
self.assertEqual(cp, measurement.callpath)
|
|
170
|
+
self.assertEqual(met, measurement.metric)
|
|
171
|
+
expected_value = 3.3 * measurement.coordinate[0]
|
|
172
|
+
self.assertAlmostEqual(expected_value, measurement.mean)
|
|
173
|
+
self.assertAlmostEqual(expected_value, measurement.median)
|
|
174
|
+
|
|
175
|
+
cp = Callpath('main->foo')
|
|
176
|
+
met = Metric('visits')
|
|
177
|
+
for measurement in experiment.measurements[cp, met]:
|
|
178
|
+
self.assertEqual(cp, measurement.callpath)
|
|
179
|
+
self.assertEqual(met, measurement.metric)
|
|
180
|
+
expected_value = 8
|
|
181
|
+
self.assertAlmostEqual(expected_value, measurement.mean)
|
|
182
|
+
self.assertAlmostEqual(expected_value, measurement.median)
|
|
183
|
+
|
|
184
|
+
cp = Callpath('main->omp parallel')
|
|
185
|
+
met = Metric('visits')
|
|
186
|
+
for measurement in experiment.measurements[cp, met]:
|
|
187
|
+
self.assertEqual(cp, measurement.callpath)
|
|
188
|
+
self.assertEqual(met, measurement.metric)
|
|
189
|
+
expected_value = 6 * measurement.coordinate[0]
|
|
190
|
+
self.assertAlmostEqual(expected_value, measurement.mean)
|
|
191
|
+
self.assertAlmostEqual(expected_value, measurement.median)
|
|
192
|
+
|
|
193
|
+
cp = Callpath('main->zero')
|
|
194
|
+
met = Metric('visits')
|
|
195
|
+
for measurement in experiment.measurements[cp, met]:
|
|
196
|
+
self.assertEqual(cp, measurement.callpath)
|
|
197
|
+
self.assertEqual(met, measurement.metric)
|
|
198
|
+
expected_value = 1
|
|
199
|
+
self.assertAlmostEqual(expected_value, measurement.mean)
|
|
200
|
+
self.assertAlmostEqual(expected_value, measurement.median)
|
|
201
|
+
|
|
132
202
|
|
|
133
203
|
if __name__ == '__main__':
|
|
134
204
|
unittest.main()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{extrap-4.2.2 → extrap-4.2.3}/extrap/entities/annotations/comment_annotation/comment_base.svg
RENAMED
|
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
|
{extrap-4.2.2 → extrap-4.2.3}/extrap/gui/plots/DominatingFunctionsAsSingleScatterPlotWidget.py
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|