/*! * \file OxCalculatorT1Shmolli_test.cpp * \author Konrad Werys * \date 2018/08/02 */ #include "CmakeConfigForTomato.h" #include "gtest/gtest.h" #include "OxTestData.h" #include "OxSignCalculatorNoSign.h" #include "OxFunctionsT1Basic.h" #include "OxFitterAmoebaVnl.h" #include "OxFitterLevenbergMarquardtVnl.h" #include "OxSignCalculatorRealImag.h" #include "OxStartPointCalculatorDefault3Dims.h" #ifdef USE_PRIVATE_NR2 #include "OxCalculatorT1Shmolli.h" #include "OxFunctionsT1Shmolli.h" #include "OxFitterAmoebaPrivateNr2.h" #include "OxSignCalculatorShmolli.h" #include "OxStartPointCalculatorShmolli.h" #ifdef USE_VNL Ox::CalculatorT1Results CalculateShmolli( int nSamples, double* sigMag, double* sigPha, double* invTimes) { // initialise the necessary objects Ox::CalculatorT1Shmolli calculatorT1Shmolli; Ox::FunctionsT1Shmolli functionsObject; Ox::FitterAmoebaPrivateNr2 fitter; Ox::SignCalculatorShmolli signCalculator; Ox::StartPointCalculatorShmolli startPointCalculator; // configure calculatorT1Shmolli.setFunctionsT1(&functionsObject); calculatorT1Shmolli.setFitter(&fitter); calculatorT1Shmolli.setSignCalculator(&signCalculator); calculatorT1Shmolli.setStartPointCalculator(&startPointCalculator); // set the data calculatorT1Shmolli.setNSamples(nSamples); calculatorT1Shmolli.setInvTimes(invTimes); calculatorT1Shmolli.setSigMag(sigMag); calculatorT1Shmolli.setSigPha(sigPha); calculatorT1Shmolli.calculate(); return calculatorT1Shmolli.getResults(); } TEST(OxCalculatorT1Shmolli, calculate_anything) { int nSamples = 7; double sigMag[7] = {49, 40, 26, 42, 59, 62, 63}; double sigPha[7] = {3918, 3560, 3587, -809, -729, -784, -795}; double invTimes[7] = {100, 180, 260, 1715, 3337, 4907, 6455}; Ox::CalculatorT1Results results = CalculateShmolli(nSamples, sigMag, sigPha, invTimes); //results.disp(); EXPECT_NE(results.T1, 0); } #endif // USE_VNL #endif // USE_PRIVATE_NR2