Example #1
0
 def testadj( self ):
     """
     test that the adj method of the linear operator class works
     isadj should reflect the adj flag and the donmain and range 
     should be switched
     """
     L = LinearOperator( self.dom, self.rng, "test", foo="bar", adj=False )
     Lh = L.adj()
     
     self.assertFalse( L.isadj )
     self.assertTrue( Lh.isadj )
     
     self.assertEqual( L.domain(), Lh.range() )
     self.assertEqual( Lh.domain(), L.range() )
Example #2
0
class compTester(TestCase):
    """
    Test CompoundOperator class
    """
    def setUp(self):

        self.dom = Space("adc", n1=10, n2=10)
        self.inter = Space("adc", n1=15, n2=15)
        self.rng = Space("adc", n1=22, n2=22)

        self.L1 = LinearOperator(self.dom, self.inter, adj=False)
        self.L2 = LinearOperator(self.inter, self.rng, adj=False)

        self.C = CompoundOperator([self.L1, self.L2])

    def test__init__(self):

        self.assertRaises(TypeError, CompoundOperator, self.L1)


#        self.assertRaises(TypeError, comp, [ self.L2 ,self.L1 ] )

    def test__getitem__(self):
        C = self.C

        self.assertEqual(C[0], self.L1)
        self.assertEqual(C[1], self.L2)

    def testdomain(self):

        self.assertEqual(self.C.domain(), self.L2.domain())
        self.assertEqual(self.C.range(), self.L1.range())

        CH = self.C.adj()

        self.assertEqual(CH.domain(), self.L1.range())
        self.assertEqual(CH.range(), self.L2.domain())
Example #3
0
class linearoptester( TestCase ):
    """
    Test The base linear operator class.
    """
    
    def setUp( self ):
        self.dom = Space( "adc" , n1=10, n2=10)
        self.rng = Space( "adc" , n1=15, n2=15  )
        
        self.L = LinearOperator( self.dom, self.rng, adj=False )
    
    def tearDown( self ):
        pass
    
    def test__init__( self ):
        """
        check domain and range are set
        """
        
        self.assertEqual( self.L.range(), self.rng )
        self.assertEqual( self.L.range(), self.L.outSpace )

        self.assertEqual( self.L.domain(), self.dom )
        self.assertEqual( self.L.domain(), self.L.inSpace )
        
        self.assertEqual( self.L.kparams['adj'], False )


    def test__eq__( self ):

        L = self.L
        A = LinearOperator( self.dom, self.rng, adj=False )
#        B = LinearOperator( self.rng, self.dom , adj=False )
        
        self.assertEqual( L, A )
        
        self.assertNotEqual( L.adj(), L )
    
    def testcopy( self ):
        """
        Test that the copy operator returns a new 
        instance
        """
        L = self.L
        A = L.copy()
        
        self.assertEqual( L, A )
        
    def testadj( self ):
        """
        test that the adj method of the linear operator class works
        isadj should reflect the adj flag and the donmain and range 
        should be switched
        """
        L = LinearOperator( self.dom, self.rng, "test", foo="bar", adj=False )
        Lh = L.adj()
        
        self.assertFalse( L.isadj )
        self.assertTrue( Lh.isadj )
        
        self.assertEqual( L.domain(), Lh.range() )
        self.assertEqual( Lh.domain(), L.range() )
    
    def test__mul__( self ):
        """
        Not defined in this class
        """
        pass
    
    def test__call__( self ):
        """
        Not defined in this class
        """
        pass
            
    def testapplyop( self ):
        "test applyop mehtod "
        pass
    
    def testgetdim( self ):
        "test to see if the linear operator shape is working"
        dim = self.L.getdim()
        realdim = [len( self.dom ), len( self.rng )]
        self.assertEqual( dim , realdim )
        
        dim = self.L.adj().getdim()
        realdim.reverse()
        self.assertEqual( dim , realdim )