Skip to content
Snippets Groups Projects
IPeaksWorkspaceTest.py 1.74 KiB
Newer Older
import unittest

from MantidFramework import mtd
mtd.initialise()
from mantidsimple import *

class IPeaksWorkspaceTest(unittest.TestCase):
    """
    Test the python interface to PeaksWorkspace's
    """
    
    def setUp(self):
        LoadEventNexus(Filename='CNCS_7860_event.nxs', OutputWorkspace='cncs')
        CreatePeaksWorkspace(InstrumentWorkspace='cncs', OutputWorkspace='peaks')
        pass
    
    def test_interface(self):
        """ Rudimentary test to get peak and get/set some values """ 
        pws = mtd['peaks']
        self.assertEqual(pws.getNumberPeaks(), 1)
        p = pws.getPeak(0)
        
        # Try a few IPeak get/setters. Not everything.
        p.setH(234)
        self.assertEqual(p.getH(), 234)
        p.setHKL(5,6,7)
        self.assertEqual(p.getH(), 5)
        self.assertEqual(p.getK(), 6)
        self.assertEqual(p.getL(), 7)
        
        hkl = p.getHKL()
        assert hkl == V3D(5,6,7)
        
        p.setIntensity(456)
        p.setSigmaIntensity(789)
        self.assertEqual(p.getIntensity(), 456)
        self.assertEqual(p.getSigmaIntensity(), 789)
        
        # Finally try to remove a peak
        pws.removePeak(0)
        self.assertEqual(pws.getNumberPeaks(), 0)
        
        # Create a new peak at some Q in the lab frame
        qlab = V3D(1,2,3)
        p = pws.createPeak(qlab, 1.54)
        self.assertAlmostEquals( p.getQLabFrame().getX(), 1.0, 3)
        
        # Now try to add the peak back
        pws.addPeak(p)
        self.assertEqual(pws.getNumberPeaks(), 1)
        
        # Check that it is what we added to it
        p = pws.getPeak(0)
        self.assertAlmostEquals( p.getQLabFrame().getX(), 1.0, 3)
                
        
if __name__ == '__main__':
    unittest.main()