Hey, this is an English text. I want you to translate it into the Tunisian dialect. Please follow these steps:
1. Translate step by step and highlight differences between Tunisian dialect and Modern Standard Arabic.
2. Highlight sections you are confident translating into the Tunisian dialect.
Translate this text into the Tunisian dialect, focusing on capturing the essence of the language nuances:

// Mantid Repository : https://github.com/mantidproject/mantid // // Copyright &copy; 2018 ISIS Rutherford Appleton Laboratory UKRI, // NScD Oak Ridge National Laboratory, European Spallation Source, // Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS // SPDX - License - Identifier: GPL - 3.0 + #pragma once #include <cxxtest/TestSuite.h> #include "MantidCrystal/FindSXPeaksHelper.h" #include "MantidKernel/ProgressBase.h" #include "MantidKernel/WarningSuppressions.h" #include "MantidTestHelpers/WorkspaceCreationHelper.h" #include <gmock/gmock.h> #include <string> using namespace Mantid::Crystal::FindSXPeaksHelper; using namespace testing; namespace { GNU_DIAG_OFF_SUGGEST_OVERRIDE class MockProgressBase : public Mantid::Kernel::ProgressBase { public: MOCK_METHOD1(doReport, void(const std::string &)); }; GNU_DIAG_ON_SUGGEST_OVERRIDE } // namespace class FindSXPeaksHelperTest : public CxxTest::TestSuite { public: // This pair of boilerplate methods prevent the suite being created statically // This means the constructor isn't called when running other tests static FindSXPeaksHelperTest *createSuite() { return new FindSXPeaksHelperTest(); } static void destroySuite(FindSXPeaksHelperTest *suite) { delete suite; } /* ------------------------------------------------------------------------------------------ * Single Crystal peak representation * ------------------------------------------------------------------------------------------ */ // Test out of bounds constuction arguments void testSXPeakConstructorThrowsIfNegativeIntensity() { auto workspace = WorkspaceCreationHelper::create2DWorkspaceWithFullInstrument(10, 10); const auto &spectrumInfo = workspace->spectrumInfo(); double intensity = -1; // Negative intensity. std::vector<int> spectra(1, 1); TSM_ASSERT_THROWS("SXPeak: Should not construct with a negative intensity", SXPeak(0.001, 0.02, intensity, spectra, 0, spectrumInfo), const std::invalid_argument &); } // Test out of bounds construction arguments. void testSXPeakConstructorThrowsIfSpectraSizeZero() { auto workspace = WorkspaceCreationHelper::create2DWorkspaceWithFullInstrument(10, 10); const auto &spectrumInfo = workspace->spectrumInfo(); double intensity = 1; std::vector<int> spectra; // Zero size spectra list TSM_ASSERT_THROWS( "SXPeak: Should not construct with a zero size specral list", SXPeak(0.001, 0.02, intensity, spectra, 0, spectrumInfo), const std::invalid_argument &); } void testSXPeakGetters() { auto workspace = WorkspaceCreationHelper::create2DWorkspaceWithFullInstrument(10, 10); const auto &spectrumInfo = workspace->spectrumInfo(); double intensity = 1; std::vector<int> spectra(1, 1); SXPeak peak(0.001, 0.02, intensity, spectra, 1, spectrumInfo); TSM_ASSERT_EQUALS("Intensity getter is not wired-up correctly", 1, peak.getIntensity()); TSM_ASSERT_EQUALS("Detector Id getter is not wired-up correctly", 2, peak.getDetectorId()); } /* ------------------------------------------------------------------------------------------ * Background Strategy * ------------------------------------------------------------------------------------------ */ void testThatAbsoluteBackgroundPerformsRightComparison() { // GIVEN auto workspace = WorkspaceCreationHelper::create1DWorkspaceConstant( 10 /*size*/, 1.5 /*value*/, 1. /*error*/, true /*isHisto*/); const auto &y = workspace->y(0); // WHEN auto backgroundStrategy = AbsoluteBackgroundStrategy(2.); // THEN TSM_ASSERT("The intensity should be below the background", backgroundStrategy.isBelowBackground(1., y)); TSM_ASSERT("The intensity should be above the background", !backgroundStrategy.isBelowBackground(2., y)); } void testThatPerSpectrumBackgroundStrategyPerformsRightComparison() { // GIVEN auto workspace = WorkspaceCreationHelper::create1DWorkspaceConstant( 10 /*size*/, 1.5 /*value*/, 1. /*error*/, true /*isHisto*/); const auto &y = workspace->y(0); // WHEN auto backgroundStrategy = PerSpectrumBackgroundStrategy(1.); // THEN TSM_ASSERT("The intensity should be below the background", backgroundStrategy.isBelowBackground(1., y)); TSM_ASSERT("The intensity should be above the background", !backgroundStrategy.isBelowBackground(2., y)); } /* ------------------------------------------------------------------------------------------ * Peak Finding strategy * ------------------------------------------------------------------------------------------ */ void testThatFindsStrongestPeakWhenPerSpectrumBackgroundStrategyIsUsed() { auto backgroundStrategy = std::make_unique<PerSpectrumBackgroundStrategy>(1.); doRunStrongestPeakTest(backgroundStrategy.get()); } void testThatFindsStrongestPeakWhenAbsoluteBackgroundStrategyIsUsed() { auto backgroundStrategy = std::make_unique<AbsoluteBackgroundStrategy>(3.); doRunStrongestPeakTest(backgroundStrategy.get()); } void testThatFindsAllPeaksWhenAbsoluteBackgroundStrategyIsUsed() { // GIVEN auto backgroundStrategy = std::make_unique<AbsoluteBackgroundStrategy>(3.); auto workspace = WorkspaceCreationHelper::create2DWorkspaceWithFullInstrument( 1 /*nhist*/, 15 /*nbins*/); auto &mutableY = workspace->mutableY(0); doAddDoublePeakToData(mutableY); const int workspaceIndex = 0; const auto &x = workspace->x(0); const auto &y = workspace->y(0); const auto &spectrumInfo = workspace->spectrumInfo(); // WHEN auto peakFindingStrategy = std::make_unique<AllPeaksStrategy>( backgroundStrategy.get(), spectrumInfo); auto peaks = peakFindingStrategy->findSXPeaks(x, y, workspaceIndex); // THEN TSM_ASSERT("There should be two peaks that are found.", peaks.get().size() == 2); TSM_ASSERT("The first peak should have a signal value of