Commit 6adb79a1 authored by Zolnierczuk, Piotr's avatar Zolnierczuk, Piotr
Browse files

test fixes

parent cda49eba
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -401,9 +401,11 @@ def read_beam_monitors(lines):
            break
        buf += line
    if counter:
        result['counter']       = np.loadtxt(counter,  dtype='i4')
        xcounter = [ _.replace('\n',' ') for _ in counter ]
        result['counter'] = np.loadtxt(xcounter,  dtype='i4')
    if ccounter:
        result['counter_ccard'] = np.loadtxt(ccounter, dtype='i8')
        xcounter = [ _.replace('\n',' ') for _ in ccounter ]
        result['counter_ccard'] = np.loadtxt(xcounter, dtype='i8')
    return result

def read_echo_data(fdesc, newshape, **kwargs):
+2 −2
Original line number Diff line number Diff line
@@ -3,8 +3,8 @@ PySEN revision module
"""
import sys
__version__  = "1.2"
__release__  = "rc3"
__date__     = "Oct 19, 2022"
__release__  = "rc4"
__date__     = "Oct 20, 2022"

def version(full=False):
    "get pysen version number"
+51 −0
Original line number Diff line number Diff line
"""
Python unit test cases for pysen.lib module
"""
import unittest

import numpy as np

from pysen.physics.elastic import get_theta, get_q, get_qvec, get_dspace


class ElasticScatteringCase(unittest.TestCase):
    "Elastic Scattering Test Cases"

    def setUp(self):
        self.wavelength = 8.0 # A
        self.q          = 0.25
        self.theta      = np.radians(18.3157) #
        self.phi        = np.radians(30.0000)
        self.d          = 50.9145 # n=2

    def tearDown(self):
        pass


    def test_theta(self):
        th = get_theta(self.q, self.wavelength)
        self.assertAlmostEqual(self.theta, th, 4)

    def test_q(self):
        q = get_q(self.wavelength, self.theta)
        self.assertAlmostEqual(self.q, q, 4)

    def test_qvec(self):
        q = get_q(self.wavelength, self.theta)

        qvec = get_qvec(self.wavelength, self.theta, 0)
        self.assertAlmostEqual(q*np.sin(self.theta/2), qvec[0], 4)
        self.assertAlmostEqual(q*np.cos(self.theta/2), qvec[1], 4)
        self.assertAlmostEqual(0, qvec[2], 4)

        qvec = get_qvec(self.wavelength, self.theta, self.phi)
        self.assertAlmostEqual(q*np.sin(self.theta/2), qvec[0], 4)
        self.assertAlmostEqual(q*np.cos(self.theta/2)*np.cos(self.phi), qvec[1], 4)
        self.assertAlmostEqual(q*np.cos(self.theta/2)*np.sin(self.phi), qvec[2], 4)

    def test_dspace(self):
        d = get_dspace(self.wavelength, self.theta, n=2)
        self.assertAlmostEqual(self.d, d, 4)

if __name__ == "__main__":
    unittest.main(exit=False, verbosity=2)
+1 −43
Original line number Diff line number Diff line
@@ -5,8 +5,7 @@ import unittest

import numpy as np

from pysen.physics.elastic import (q_binning, t_binning, waveband_binning,
                       get_theta, get_q, get_qvec, get_dspace)
from pysen.physics.spinecho import q_binning, t_binning, waveband_binning

class BinningTestCase(unittest.TestCase):
    "Binning Test Cases"
@@ -68,46 +67,5 @@ class BinningTestCase(unittest.TestCase):
            self.assertEqual(et1, t1)
            self.assertEqual(et2, t2)



class ElasticScatteringCase(unittest.TestCase):
    "Elastic Scattering Test Cases"

    def setUp(self):
        self.wavelength = 8.0 # A
        self.q          = 0.25
        self.theta      = np.radians(18.3157) #
        self.phi        = np.radians(30.0000)
        self.d          = 50.9145 # n=2

    def tearDown(self):
        pass


    def test_theta(self):
        th = get_theta(self.q, self.wavelength)
        self.assertAlmostEqual(self.theta, th, 4)

    def test_q(self):
        q = get_q(self.wavelength, self.theta)
        self.assertAlmostEqual(self.q, q, 4)

    def test_qvec(self):
        q = get_q(self.wavelength, self.theta)

        qvec = get_qvec(self.wavelength, self.theta, 0)
        self.assertAlmostEqual(q*np.sin(self.theta/2), qvec[0], 4)
        self.assertAlmostEqual(q*np.cos(self.theta/2), qvec[1], 4)
        self.assertAlmostEqual(0, qvec[2], 4)

        qvec = get_qvec(self.wavelength, self.theta, self.phi)
        self.assertAlmostEqual(q*np.sin(self.theta/2), qvec[0], 4)
        self.assertAlmostEqual(q*np.cos(self.theta/2)*np.cos(self.phi), qvec[1], 4)
        self.assertAlmostEqual(q*np.cos(self.theta/2)*np.sin(self.phi), qvec[2], 4)

    def test_dspace(self):
        d = get_dspace(self.wavelength, self.theta, n=2)
        self.assertAlmostEqual(self.d, d, 4)

if __name__ == "__main__":
    unittest.main(exit=False, verbosity=2)