Test coverage report for pyFAI ============================== Measured on *pyFAI* version 2024.1.0, 18/01/2024 .. csv-table:: Test suite coverage :header: "Name", "Stmts", "Exec", "Cover" :widths: 35, 8, 8, 8 "__init__.py", "39", "25", "64.1 %" "average.py", "495", "356", "71.9 %" "azimuthalIntegrator.py", "1750", "1165", "66.6 %" "blob_detection.py", "502", "191", "38.0 %" "calibrant.py", "462", "369", "79.9 %" "containers.py", "467", "420", "89.9 %" "control_points.py", "360", "136", "37.8 %" "diffmap.py", "420", "57", "13.6 %" "directories.py", "21", "16", "76.2 %" "distortion.py", "605", "386", "63.8 %" "geometryRefinement.py", "572", "291", "50.9 %" "goniometer.py", "566", "340", "60.1 %" "grid.py", "36", "15", "41.7 %" "load_integrators.py", "164", "119", "72.6 %" "massif.py", "239", "196", "82.0 %" "method_registry.py", "259", "221", "85.3 %" "multi_geometry.py", "169", "136", "80.5 %" "parallax.py", "249", "211", "84.7 %" "spline.py", "427", "252", "59.0 %" "units.py", "130", "126", "96.9 %" "version.py", "63", "46", "73.0 %" "worker.py", "477", "311", "65.2 %" "app/__init__.py", "7", "7", "100.0 %" "app/average.py", "176", "35", "19.9 %" "app/benchmark.py", "64", "21", "32.8 %" "app/calib2.py", "366", "37", "10.1 %" "app/calib.py", "31", "21", "67.7 %" "app/check_calib.py", "32", "21", "65.6 %" "app/detector2nexus.py", "87", "20", "23.0 %" "app/diff_map.py", "37", "17", "45.9 %" "app/diff_tomo.py", "109", "25", "22.9 %" "app/drawmask.py", "106", "31", "29.2 %" "app/eiger_mask.py", "58", "23", "39.7 %" "app/integrate.py", "517", "385", "74.5 %" "app/mx_calibrate.py", "31", "20", "64.5 %" "app/peakfinder.py", "289", "55", "19.0 %" "app/recalib.py", "32", "20", "62.5 %" "app/saxs.py", "87", "26", "29.9 %" "app/sparsify.py", "284", "56", "19.7 %" "app/waxs.py", "99", "27", "27.3 %" "benchmark/__init__.py", "622", "85", "13.7 %" "detectors/__init__.py", "24", "24", "100.0 %" "detectors/_adsc.py", "76", "76", "100.0 %" "detectors/_common.py", "852", "623", "73.1 %" "detectors/_dectris.py", "416", "298", "71.6 %" "detectors/_esrf.py", "97", "81", "83.5 %" "detectors/_hexagonal.py", "73", "70", "95.9 %" "detectors/_imxpad.py", "401", "257", "64.1 %" "detectors/_non_flat.py", "158", "131", "82.9 %" "detectors/_others.py", "133", "120", "90.2 %" "detectors/_psi.py", "188", "111", "59.0 %" "detectors/_rayonix.py", "264", "226", "85.6 %" "detectors/_xspectrum.py", "51", "48", "94.1 %" "detectors/orientation.py", "36", "36", "100.0 %" "engines/CSC_engine.py", "207", "139", "67.1 %" "engines/CSR_engine.py", "200", "194", "97.0 %" "engines/__init__.py", "19", "19", "100.0 %" "engines/histogram_engine.py", "94", "87", "92.6 %" "engines/preproc.py", "109", "92", "84.4 %" "ext/__init__.py", "3", "3", "100.0 %" "geometry/__init__.py", "9", "9", "100.0 %" "geometry/core.py", "1245", "1032", "82.9 %" "geometry/cxi.py", "1", "1", "100.0 %" "geometry/fit2d.py", "114", "103", "90.4 %" "gui/ApplicationContext.py", "107", "52", "48.6 %" "gui/CalibrationContext.py", "224", "132", "58.9 %" "gui/CalibrationWindow.py", "192", "169", "88.0 %" "gui/IntegrationDialog.py", "205", "54", "26.3 %" "gui/__init__.py", "4", "4", "100.0 %" "gui/cli_calibration.py", "1579", "104", "6.6 %" "gui/diffmap_widget.py", "371", "63", "17.0 %" "gui/matplotlib.py", "33", "26", "78.8 %" "gui/mpl_calib.py", "241", "40", "16.6 %" "gui/mpl_calib_qt.py", "49", "21", "42.9 %" "gui/peak_picker.py", "298", "108", "36.2 %" "gui/dialog/Detector3dDialog.py", "173", "36", "20.8 %" "gui/dialog/DetectorSelectorDialog.py", "448", "342", "76.3 %" "gui/dialog/GeometryDialog.py", "56", "16", "28.6 %" "gui/dialog/IntegrationMethodDialog.py", "216", "36", "16.7 %" "gui/dialog/MessageBox.py", "27", "8", "29.6 %" "gui/dialog/OpenClDeviceDialog.py", "116", "14", "12.1 %" "gui/dialog/__init__.py", "4", "4", "100.0 %" "gui/helper/MarkerManager.py", "209", "65", "31.1 %" "gui/helper/ProcessingWidget.py", "19", "6", "31.6 %" "gui/helper/RingCalibration.py", "306", "47", "15.4 %" "gui/helper/RingExtractor.py", "238", "35", "14.7 %" "gui/helper/SynchronizeMaskToolColor.py", "27", "27", "100.0 %" "gui/helper/SynchronizePlotBackground.py", "27", "26", "96.3 %" "gui/helper/SynchronizeRawView.py", "56", "46", "82.1 %" "gui/helper/__init__.py", "4", "4", "100.0 %" "gui/helper/model_transform.py", "113", "16", "14.2 %" "gui/jupyter/__init__.py", "1", "1", "100.0 %" "gui/jupyter/_plot.py", "94", "15", "16.0 %" "gui/jupyter/calib.py", "92", "24", "26.1 %" "gui/model/AbstractModel.py", "35", "30", "85.7 %" "gui/model/CalibrantModel.py", "19", "17", "89.5 %" "gui/model/CalibrationModel.py", "44", "42", "95.5 %" "gui/model/ConstraintModel.py", "60", "21", "35.0 %" "gui/model/DataModel.py", "15", "14", "93.3 %" "gui/model/DataModelAdaptor.py", "27", "12", "44.4 %" "gui/model/DetectorModel.py", "16", "15", "93.8 %" "gui/model/ExperimentSettingsModel.py", "80", "74", "92.5 %" "gui/model/FilenameModel.py", "21", "14", "66.7 %" "gui/model/Fit2dGeometryModel.py", "64", "32", "50.0 %" "gui/model/GeometryConstraintsModel.py", "86", "41", "47.7 %" "gui/model/GeometryHistoryModel.py", "40", "14", "35.0 %" "gui/model/GeometryModel.py", "89", "41", "46.1 %" "gui/model/ImageModel.py", "80", "43", "53.8 %" "gui/model/IntegrationSettingsModel.py", "26", "23", "88.5 %" "gui/model/ListModel.py", "127", "92", "72.4 %" "gui/model/MarkerModel.py", "42", "33", "78.6 %" "gui/model/MaskedImageModel.py", "31", "26", "83.9 %" "gui/model/PeakModel.py", "88", "58", "65.9 %" "gui/model/PeakSelectionModel.py", "85", "34", "40.0 %" "gui/model/PlotViewModel.py", "64", "62", "96.9 %" "gui/model/__init__.py", "4", "4", "100.0 %" "gui/tasks/AbstractCalibrationTask.py", "79", "68", "86.1 %" "gui/tasks/ExperimentTask.py", "326", "236", "72.4 %" "gui/tasks/GeometryTask.py", "809", "374", "46.2 %" "gui/tasks/IntegrationTask.py", "776", "300", "38.7 %" "gui/tasks/MaskTask.py", "221", "143", "64.7 %" "gui/tasks/PeakPickingTask.py", "1356", "586", "43.2 %" "gui/tasks/__init__.py", "4", "4", "100.0 %" "gui/utils/FilterBuilder.py", "44", "14", "31.8 %" "gui/utils/ProxyAction.py", "67", "21", "31.3 %" "gui/utils/__init__.py", "34", "14", "41.2 %" "gui/utils/colorutils.py", "47", "6", "12.8 %" "gui/utils/eventutils.py", "71", "39", "54.9 %" "gui/utils/imageutils.py", "26", "14", "53.8 %" "gui/utils/projecturl.py", "21", "20", "95.2 %" "gui/utils/timeutils.py", "12", "10", "83.3 %" "gui/utils/tree.py", "118", "25", "21.2 %" "gui/utils/units.py", "76", "66", "86.8 %" "gui/utils/unitutils.py", "54", "8", "14.8 %" "gui/utils/validators.py", "89", "83", "93.3 %" "gui/widgets/AdvancedComboBox.py", "66", "56", "84.8 %" "gui/widgets/AdvancedSpinBox.py", "20", "11", "55.0 %" "gui/widgets/CalibrantPreview.py", "108", "99", "91.7 %" "gui/widgets/CalibrantSelector2.py", "211", "112", "53.1 %" "gui/widgets/CalibrantSelector.py", "100", "25", "25.0 %" "gui/widgets/ChoiceToolButton.py", "71", "43", "60.6 %" "gui/widgets/ColoredCheckBox.py", "28", "11", "39.3 %" "gui/widgets/DetectorLabel.py", "122", "74", "60.7 %" "gui/widgets/DetectorModel.py", "15", "13", "86.7 %" "gui/widgets/DetectorSelector.py", "55", "15", "27.3 %" "gui/widgets/FileEdit.py", "157", "60", "38.2 %" "gui/widgets/FitParamView.py", "310", "128", "41.3 %" "gui/widgets/GeometryHistoryComboBox.py", "113", "60", "53.1 %" "gui/widgets/GeometryLabel.py", "38", "31", "81.6 %" "gui/widgets/GeometryTabs.py", "205", "90", "43.9 %" "gui/widgets/LoadImageToolButton.py", "117", "50", "42.7 %" "gui/widgets/MethodLabel.py", "93", "49", "52.7 %" "gui/widgets/MonitorNameEdit.py", "20", "10", "50.0 %" "gui/widgets/OpenClDeviceLabel.py", "52", "22", "42.3 %" "gui/widgets/QuantityEdit.py", "151", "97", "64.2 %" "gui/widgets/QuantityLabel.py", "132", "80", "60.6 %" "gui/widgets/UnitLabel.py", "69", "35", "50.7 %" "gui/widgets/UnitSelector.py", "84", "81", "96.4 %" "gui/widgets/WorkerConfigurator.py", "464", "308", "66.4 %" "gui/widgets/__init__.py", "4", "4", "100.0 %" "gui/widgets/model/AllDetectorItemModel.py", "65", "62", "95.4 %" "gui/widgets/model/CalibrantFilterProxyModel.py", "34", "23", "67.6 %" "gui/widgets/model/CalibrantItemModel.py", "41", "35", "85.4 %" "gui/widgets/model/DetectorFilterProxyModel.py", "26", "25", "96.2 %" "gui/widgets/model/__init__.py", "4", "4", "100.0 %" "io/__init__.py", "568", "371", "65.3 %" "io/_json.py", "15", "12", "80.0 %" "io/image.py", "24", "20", "83.3 %" "io/integration_config.py", "153", "139", "90.8 %" "io/nexus.py", "435", "371", "85.3 %" "io/ponifile.py", "193", "167", "86.5 %" "io/sparse_frame.py", "153", "24", "15.7 %" "io/spots.py", "210", "139", "66.2 %" "io/xrdml.py", "77", "76", "98.7 %" "opencl/OCLFullSplit.py", "199", "24", "12.1 %" "opencl/__init__.py", "40", "33", "82.5 %" "opencl/azim_csr.py", "564", "405", "71.8 %" "opencl/azim_hist.py", "472", "332", "70.3 %" "opencl/azim_lut.py", "329", "246", "74.8 %" "opencl/ocl_hist_pixelsplit.py", "223", "27", "12.1 %" "opencl/peak_finder.py", "474", "368", "77.6 %" "opencl/preproc.py", "224", "172", "76.8 %" "opencl/sort.py", "282", "223", "79.1 %" "resources/__init__.py", "31", "20", "64.5 %" "utils/__init__.py", "129", "77", "59.7 %" "utils/bayes.py", "100", "67", "67.0 %" "utils/callback.py", "14", "11", "78.6 %" "utils/decorators.py", "72", "70", "97.2 %" "utils/ellipse.py", "82", "79", "96.3 %" "utils/grid.py", "87", "64", "73.6 %" "utils/header_utils.py", "74", "59", "79.7 %" "utils/logging_utils.py", "43", "41", "95.3 %" "utils/mask_utils.py", "73", "41", "56.2 %" "utils/mathutil.py", "452", "314", "69.5 %" "utils/multiprocessing.py", "18", "13", "72.2 %" "utils/orderedset.py", "54", "13", "24.1 %" "utils/shell.py", "55", "46", "83.6 %" "utils/stringutil.py", "74", "67", "90.5 %" "pyFAI total", "36146", "20255", "56.0 %"