4
4
# NScD Oak Ridge National Laboratory, European Spallation Source,
5
5
# Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6
6
# SPDX - License - Identifier: GPL - 3.0 +
7
- import systemtesting
8
7
from mantid .simpleapi import PowderReduceP2D
8
+ from mantid .api import FileFinder
9
9
10
+ import numpy as np
11
+ import os
10
12
import sys
13
+ import systemtesting
11
14
12
15
13
16
class PowderReduceP2DTest (systemtesting .MantidSystemTest ):
@@ -16,11 +19,6 @@ def __init__(self):
16
19
self .tolerance = 1e-6
17
20
self .setUp ()
18
21
19
- def skipTests (self ):
20
- # Now working on macOS but producing different outputs on windows.
21
- # Skipped while investigation continues.
22
- return sys .platform .startswith ("win" )
23
-
24
22
def setUp (self ):
25
23
self .sample = self ._sampleEventData ()
26
24
self .vana = self ._vanadiumEventData ()
@@ -67,11 +65,23 @@ def runTest(self):
67
65
SystemTest = True ,
68
66
)
69
67
70
- def validateMethod (self ):
71
- return "ValidateAscii"
68
+ def doValidation (self ):
69
+ """Overrides validation to handle .p2d file with tolerances"""
70
+ measured = f"{ self .outputFile } .p2d"
71
+ expected = self .reference
72
+
73
+ if not os .path .isabs (measured ):
74
+ measured = FileFinder .Instance ().getFullPath (measured )
75
+ if not os .path .isabs (expected ):
76
+ expected = FileFinder .Instance ().getFullPath (expected )
77
+
78
+ np_measured = np .loadtxt (measured )
79
+ np_expected = np .loadtxt (expected )
80
+
81
+ np .testing .assert_allclose (np_measured , np_expected , atol = 0.25 , rtol = 0.65 )
72
82
73
- def validate ( self ):
74
- return self . outputFile + ".p2d" , self . reference
83
+ # testing passed if this is reached
84
+ return True
75
85
76
86
def _sampleEventData (self ):
77
87
"""path to sample event data used for testing the algorithm"""
0 commit comments