Show
Ignore:
Timestamp:
08/23/10 13:47:57 (21 months ago)
Author:
mpereira
Message:

Added make_kernel() to analysis.py

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/test/test_analysis.py

    r321 r451  
    22Unit tests for the NeuroTools.analysis module 
    33""" 
     4import numpy 
     5import scipy.io 
     6import unittest 
     7from numpy import pi, sin 
    48 
    59from NeuroTools import analysis 
    6 import numpy, unittest 
    7 from numpy import pi, sin 
     10 
    811 
    912# test simple_frequency_spectrum 
     
    1114 
    1215class AnalysisTest(unittest.TestCase): 
     16 
     17    def setUp(self): 
     18        #The following are used for the make_kernel testcases 
     19        self.box = scipy.io.loadmat('analysis/make_kernel/box.mat') 
     20        self.tri = scipy.io.loadmat('analysis/make_kernel/tri.mat') 
     21        self.epa = scipy.io.loadmat('analysis/make_kernel/epa.mat') 
     22        self.gau = scipy.io.loadmat('analysis/make_kernel/gau.mat') 
     23        self.alp = scipy.io.loadmat('analysis/make_kernel/alp.mat') 
     24        self.exp = scipy.io.loadmat('analysis/make_kernel/exp.mat') 
     25        self.alp_reversed = scipy.io.loadmat( 
     26            'analysis/make_kernel/alp_reversed.mat') 
     27        self.exp_reversed = scipy.io.loadmat( 
     28            'analysis/make_kernel/exp_reversed.mat') 
    1329 
    1430    def testSimpleFrequencySpectrum(self): 
     
    3652        z=analysis.ccf(a,a) 
    3753        assert z[len(z)/2] == 1 
     54     
     55    def testMakeKernelBox(self): 
     56        true_kernel = self.box['kernel'].ravel() 
     57        true_norm = self.box['norm'].ravel()[0] 
     58        true_m_idx = self.box['m_idx'].ravel()[0] - 1 
     59         
     60        kernel, norm, m_idx = analysis.make_kernel('BOX', 1, 0.001) 
     61         
     62        numpy.testing.assert_array_almost_equal(true_kernel, kernel, decimal = 3 
     63                                                ) 
     64        self.assertEqual(true_norm, norm, 3) 
     65        self.assertEqual(true_m_idx, m_idx, 3) 
     66         
     67    def testMakeKernelTri(self): 
     68        true_kernel = self.tri['kernel'].ravel() 
     69        true_norm = self.tri['norm'].ravel()[0] 
     70        true_m_idx = self.tri['m_idx'].ravel()[0] - 1 
     71         
     72        kernel, norm, m_idx = analysis.make_kernel('TRI', 1, 0.001) 
     73         
     74        numpy.testing.assert_array_almost_equal(true_kernel, kernel, decimal = 3 
     75                                                ) 
     76        self.assertEqual(true_norm, norm, 3) 
     77        self.assertEqual(true_m_idx, m_idx, 3) 
     78         
     79    def testMakeKernelEpa(self): 
     80        true_kernel = self.epa['kernel'].ravel() 
     81        true_norm = self.epa['norm'].ravel()[0] 
     82        true_m_idx = self.epa['m_idx'].ravel()[0] - 1 
     83         
     84        kernel, norm, m_idx = analysis.make_kernel('EPA', 1, 0.001) 
     85         
     86        numpy.testing.assert_array_almost_equal(true_kernel, kernel, decimal = 3 
     87                                                ) 
     88        self.assertEqual(true_norm, norm, 3) 
     89        self.assertEqual(true_m_idx, m_idx, 3) 
     90         
     91    def testMakeKernelGau(self): 
     92        true_kernel = self.gau['kernel'].ravel() 
     93        true_norm = self.gau['norm'].ravel()[0] 
     94        true_m_idx = self.gau['m_idx'].ravel()[0] - 1 
     95         
     96        kernel, norm, m_idx = analysis.make_kernel('GAU', 1, 0.001) 
     97         
     98        numpy.testing.assert_array_almost_equal(true_kernel, kernel, decimal = 3 
     99                                                ) 
     100        self.assertEqual(true_norm, norm, 3) 
     101        self.assertEqual(true_m_idx, m_idx, 3) 
     102         
     103    def testMakeKernelAlp(self): 
     104        true_kernel = self.alp['kernel'].ravel() 
     105        true_norm = self.alp['norm'].ravel()[0] 
     106        true_m_idx = self.alp['m_idx'].ravel()[0] - 1 
     107         
     108        kernel, norm, m_idx = analysis.make_kernel('ALP', 1, 0.001) 
     109         
     110        numpy.testing.assert_array_almost_equal(true_kernel, kernel, decimal = 3 
     111                                                ) 
     112        self.assertEqual(true_norm, norm, 3) 
     113        self.assertEqual(true_m_idx, m_idx, 3) 
    38114 
     115    def testMakeKernelExp(self): 
     116        true_kernel = self.exp['kernel'].ravel() 
     117        true_norm = self.exp['norm'].ravel()[0] 
     118        true_m_idx = self.exp['m_idx'].ravel()[0] - 1 
     119         
     120        kernel, norm, m_idx = analysis.make_kernel('EXP', 1, 0.001) 
     121         
     122        numpy.testing.assert_array_almost_equal(true_kernel, kernel, decimal = 3 
     123                                                ) 
     124        self.assertEqual(true_norm, norm, 3) 
     125        self.assertEqual(true_m_idx, m_idx, 3) 
     126     
     127    def testMakeKernelAlpReversed(self): 
     128        """Same as testAlp but with direction = -1 
     129        """ 
     130        true_kernel = self.alp_reversed['kernel'].ravel() 
     131        true_norm = self.alp_reversed['norm'].ravel()[0] 
     132        true_m_idx = self.alp_reversed['m_idx'].ravel()[0] - 1 
     133         
     134        kernel, norm, m_idx = analysis.make_kernel('ALP', 1, 0.001, 
     135                                                  direction = -1) 
     136        numpy.testing.assert_array_almost_equal(true_kernel, kernel, decimal = 3 
     137                                                ) 
     138        self.assertEqual(true_norm, norm, 3) 
     139        self.assertEqual(true_m_idx, m_idx, 3) 
     140         
     141    def testMakeKernelExpReversed(self): 
     142        """Same as testExp but with direction = -1 
     143        """ 
     144        true_kernel = self.exp_reversed['kernel'].ravel() 
     145        true_norm = self.exp_reversed['norm'].ravel()[0] 
     146        true_m_idx = self.exp_reversed['m_idx'].ravel()[0] - 1 
     147         
     148        kernel, norm, m_idx = analysis.make_kernel('EXP', 1, 0.001, direction = -1) 
     149         
     150        numpy.testing.assert_array_almost_equal(true_kernel, kernel, decimal = 3 
     151                                                ) 
     152        self.assertEqual(true_norm, norm, 3) 
     153        self.assertEqual(true_m_idx, m_idx, 3) 
     154         
    39155if __name__ == "__main__": 
    40156    unittest.main()