Skip to content
Snippets Groups Projects
LoadDNSSCDTest.h 53.9 KiB
Newer Older
    // there are 7 points (the rest is outside of 2theta limits)
    TS_ASSERT_EQUALS(box->getNPoints(), 574);
    std::vector<coord_t> events;
    size_t ncols;
    box->getEventsData(events, ncols);
    // 8 columns: I, err^2, run_num, det_id, h, k, l, dE
    TS_ASSERT_EQUALS(ncols, 8);
    // 8*574 = 4592
    TS_ASSERT_EQUALS(events.size(), 4592);
    // reference vector, EPP should be near dE=0
    const std::vector<coord_t> ref = {
Marina Ganeva's avatar
Marina Ganeva committed
        0, 0, 0, 4, 0.0354153287653f, 0.0354153287653f, 3.30960431031f,
        -2.22473993186f, 0, 0, 0, 4, 0.0119271789404f, 0.0119271789404f,
        3.14246833446f, -1.53897441518f, 1, 1, 0, 4, -0.00926944407241f,
        -0.00926944407241f, 2.99163830747f, -0.951095651067f, 1, 1, 0, 4,
        -0.0284942882003f, -0.0284942882003f, 2.85483898067f, -0.443322919741f,
        1, 1, 0, 4, -0.0460102572946f, -0.0460102572946f, 2.73019959403f,
        -0.00173676689289f, 3, 3, 0, 4, -0.0620355056149f, -0.0620355056149f,
        2.61616781476f, 0.384685191257f, 1, 1, 0, 4, -0.0767525703988f,
        -0.0767525703988f, 2.51144475217f, 0.724762824962f, 1, 1, 0, 4,
        -0.0903153555918f, -0.0903153555918f, 2.41493526311f, 1.02562126597f, 0,
        0, 0, 4, -0.102854534355f, -0.102854534355f, 2.32570950908f,
        1.29306717609f, 0, 0, 0, 4, -0.114481772845f, -0.114481772845f,
        2.24297290079f, 1.53187104043f, 0, 0, 0, 4, -0.125293064774f,
        -0.125293064774f, 2.16604237028f, 1.7459813825f, 0, 0, 0, 4,
        -0.135371387759f, -0.135371387759f, 2.09432746896f, 1.93868903792f, 0,
        0, 0, 4, -0.144788837105f, -0.144788837105f, 2.02731518411f,
        2.11275436309f, 0, 0, 0, 4, -0.153608353159f, -0.153608353159f,
        1.96455764752f, 2.27050663742f, 0, 0, 0, 4, -0.161885129764f,
        -0.161885129764f, 1.90566211317f, 2.41392239469f, 0, 0, 0, 4,
        -0.169667770453f, -0.169667770453f, 1.85028273012f, 2.54468763779f, 0,
        0, 0, 4, -0.176999243565f, -0.176999243565f, 1.7981137461f,
        2.664247618f, 0, 0, 0, 4, -0.183917675938f, -0.183917675938f,
        1.74888385976f, 2.77384694056f, 0, 0, 0, 4, -0.190457016127f,
        -0.190457016127f, 1.70235150145f, 2.87456208674f, 0, 0, 0, 4,
        -0.196647591505f, -0.196647591505f, 1.65830086891f, 2.96732794808f, 0,
        0, 0, 4, -0.202516578553f, -0.202516578553f, 1.61653858092f,
        3.05295960034f, 0, 0, 0, 4, -0.208088401699f, -0.208088401699f,
        1.57689083915f, 3.13217026882f, 0, 0, 0, 4, -0.213385073084f,
        -0.213385073084f, 1.53920101056f, 3.20558622767f, 0, 0, 0, 4,
        -0.218426483198f, -0.218426483198f, 1.50332755925f, 3.27375921711f, 0,
        0, 0, 4, -0.223230650484f, -0.223230650484f, 1.46914227036f,
        3.33717683991f, 0, 0, 0, 4, -0.227813936514f, -0.227813936514f,
        1.43652871888f, 3.39627130464f, 0, 0, 0, 4, -0.232191232162f,
        -0.232191232162f, 1.405380945f, 3.45142680925f, 0, 0, 0, 4,
        -0.236376119209f, -0.236376119209f, 1.37560230404f, 3.5029858015f, 0, 0,
        0, 4, -0.240381011115f, -0.240381011115f, 1.34710446484f,
        3.55125430721f, 0, 0, 0, 4, -0.244217275993f, -0.244217275993f,
        1.31980653466f, 3.59650648186f, 0, 0, 0, 4, -0.247895344381f,
        -0.247895344381f, 1.29363429232f, 3.63898851198f, 0, 0, 0, 4,
        -0.251424803946f, -0.251424803946f, 1.26851951432f, 3.67892197067f, 0,
        0, 0, 4, -0.254814482933f, -0.254814482933f, 1.24439938099f,
        3.71650671254f, 0, 0, 0, 4, -0.258072523902f, -0.258072523902f,
        1.22121595187f, 3.75192337916f, 0, 0, 0, 4, -0.261206449024f,
        -0.261206449024f, 1.198915701f, 3.78533557363f, 0, 0, 0, 4,
        -0.264223218067f, -0.264223218067f, 1.17744910437f, 3.81689175332f, 0,
        0, 0, 4, -0.267129279989f, -0.267129279989f, 1.15677027275f,
        3.84672688183f, 0, 0, 0, 4, -0.269930618959f, -0.269930618959f,
        1.13683662426f, 3.87496387446f, 0, 0, 0, 4, -0.272632795488f,
        -0.272632795488f, 1.11760859164f, 3.90171486617f, 0, 0, 0, 4,
        -0.275240983267f, -0.275240983267f, 1.09904936015f, 3.92708232664f, 0,
        0, 0, 4, -0.277760002234f, -0.277760002234f, 1.08112463231f,
        3.95116004298f, 0, 0, 0, 4, -0.280194348295f, -0.280194348295f,
        1.06380241632f, 3.97403398783f, 0, 0, 0, 4, -0.282548220105f,
        -0.282548220105f, 1.04705283558f, 3.99578308789f, 0, 0, 0, 4,
        -0.284825543238f, -0.284825543238f, 1.03084795664f, 4.01647990566f, 0,
        0, 0, 4, -0.287029992032f, -0.287029992032f, 1.01516163384f,
        4.03619124547f, 0, 0, 0, 4, -0.289165009367f, -0.289165009367f,
        0.999969368441f, 4.05497869322f, 0, 0, 0, 4, -0.291233824614f,
        -0.291233824614f, 0.985248181042f, 4.07289909803f, 0, 0, 0, 4,
        -0.293239469931f, -0.293239469931f, 0.970976495549f, 4.09000500276f, 0,
        0, 0, 4, -0.295184795087f, -0.295184795087f, 0.957134033679f,
        4.10634502964f, 0, 0, 0, 4, -0.297072480979f, -0.297072480979f,
        0.943701718828f, 4.12196422612f, 0, 0, 0, 4, -0.298905051955f,
        -0.298905051955f, 0.930661588352f, 4.1369043757f, 0, 0, 0, 4,
        -0.300684887075f, -0.300684887075f, 0.91799671343f, 4.15120427767f, 0,
        0, 0, 4, -0.302414230419f, -0.302414230419f, 0.905691125739f,
        4.16489999925f, 0, 0, 0, 4, -0.304095200523f, -0.304095200523f,
        0.893729750291f, 4.17802510323f, 0, 0, 0, 4, -0.305729799037f,
        -0.305729799037f, 0.882098343821f, 4.19061085383f, 0, 0, 0, 4,
        -0.307319918681f, -0.307319918681f, 0.870783438208f, 4.20268640299f, 0,
        0, 0, 4, -0.308867350548f, -0.308867350548f, 0.859772288449f,
        4.2142789594f, 0, 0, 0, 4, -0.310373790843f, -0.310373790843f,
        0.849052824778f, 4.22541394183f, 0, 0, 0, 4, -0.311840847078f,
        -0.311840847078f, 0.838613608522f, 4.23611511866f, 0, 0, 0, 4,
        -0.313270043798f, -0.313270043798f, 0.828443791396f, 4.24640473475f, 0,
        0, 0, 4, -0.314662827862f, -0.314662827862f, 0.81853307789f,
        4.25630362721f, 0, 0, 0, 4, -0.316020573333f, -0.316020573333f,
        0.808871690511f, 4.2658313309f, 0, 0, 0, 4, -0.317344585997f,
        -0.317344585997f, 0.799450337601f, 4.27500617494f, 0, 0, 0, 4,
        -0.318636107553f, -0.318636107553f, 0.790260183535f, 4.2838453709f, 0,
        0, 0, 4, -0.319896319496f, -0.319896319496f, 0.781292821082f,
        4.2923650936f, 0, 0, 0, 4, -0.321126346721f, -0.321126346721f,
        0.772540245755f, 4.30058055512f, 0, 0, 0, 4, -0.322327260876f,
        -0.322327260876f, 0.763994831973f, 4.3085060728f, 0, 0, 0, 4,
        -0.323500083472f, -0.323500083472f, 0.755649310912f, 4.31615513161f, 0,
        0, 0, 4, -0.324645788783f, -0.324645788783f, 0.747496749875f,
        4.32354044159f, 0, 0, 0, 4, -0.325765306543f, -0.325765306543f,
        0.739530533091f, 4.33067399066f, 0, 0, 0, 4, -0.326859524467f,
        -0.326859524467f, 0.731744343804f, 4.33756709332f, 0, 0, 0, 4,
        -0.327929290594f, -0.327929290594f, 0.724132147574f, 4.34423043551f, 0,
        0, 0, 4, -0.328975415481f, -0.328975415481f, 0.716688176675f,
        4.35067411606f, 0, 0, 0, 4, -0.329998674249f, -0.329998674249f,
        0.709406915523f, 4.35690768501f, 0, 0, 0, 4, -0.330999808504f,
        -0.330999808504f, 0.702283087044f, 4.36294017896f, 0, 0, 0, 4,
        -0.331979528123f, -0.331979528123f, 0.695311639923f, 4.3687801539f, 0,
        0, 0, 4, -0.332938512934f, -0.332938512934f, 0.688487736656f,
        4.37443571549f, 0, 0, 0, 4, -0.333877414294f, -0.333877414294f,
        0.681806742359f, 4.37991454727f, 0, 0, 0, 4, -0.334796856559f,
        -0.334796856559f, 0.675264214264f, 4.38522393675f, 0, 0, 0, 4,
        -0.335697438469f, -0.335697438469f, 0.668855891874f, 4.39037079963f, 0,
        0, 0, 4, -0.336579734452f, -0.336579734452f, 0.662577687705f,
        4.39536170235f, 0, 0, 0, 4, -0.337444295843f, -0.337444295843f,
        0.656425678595f, 4.40020288306f};
    double d(1.0e-06);
    sort_Events(events);
Marina Ganeva's avatar
Marina Ganeva committed
    for (auto i = 0; i < 82 * 8; i++) {
      TS_ASSERT_DELTA(events[i], ref[i], d);
    }

    AnalysisDataService::Instance().remove(outWSName);

    // test the normalization workspace as well
    IMDEventWorkspace_sptr nws;
    TS_ASSERT_THROWS_NOTHING(
        nws = AnalysisDataService::Instance().retrieveWS<IMDEventWorkspace>(
            normWSName));
    TS_ASSERT(nws);
    // there are 7 points (the rest is outside of 2theta limits)
    TS_ASSERT_EQUALS(nws->getNPoints(), 574);

    AnalysisDataService::Instance().remove(normWSName);

  //-------------------- Test failure --------------------------------------
  void test_failTOF() {
    // algorithm does not load files with different number of time channels

    std::string outWSName("LoadDNSSCDTest_OutputWS");
    std::string normWSName("LoadDNSSCDTest_OutputWS_norm");
    std::string filenames = "dn134011vana.d_dat,dnstof.d_dat";

    LoadDNSSCD alg;
    alg.setRethrows(true);
    TS_ASSERT_THROWS_NOTHING(alg.initialize());
    TS_ASSERT(alg.isInitialized());
    TS_ASSERT_THROWS_NOTHING(alg.setPropertyValue("Filenames", filenames));
    TS_ASSERT_THROWS_NOTHING(
        alg.setPropertyValue("OutputWorkspace", outWSName));
    TS_ASSERT_THROWS_NOTHING(
        alg.setPropertyValue("NormalizationWorkspace", normWSName));
    TS_ASSERT_THROWS_NOTHING(alg.setProperty("Normalization", "monitor"));

    // algorithm should throw if no valid files is provided
    TS_ASSERT_THROWS(alg.execute(), std::runtime_error);
    TS_ASSERT(!alg.isExecuted());
  }

private:
  std::string m_fileName;
};

#endif /* MANTID_MDALGORITHMS_LOADDNSSCDEWEST_H_ */