Changeset 211

Show
Ignore:
Timestamp:
06/10/08 16:18:07 (5 months ago)
Author:
edsuom
Message:

Unit tested new pybywire.FlexArray? to/from tuple capability

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • projects/Twisted-Goodies/trunk/twisted_goodies/pybywire/flexarray.py

    r210 r211  
    106106        for k, value in enumerate(contentList): 
    107107            newVersion._O[k] = value 
     108        return newVersion 
    108109     
    109110    def __init__(self, *shape): 
  • projects/Twisted-Goodies/trunk/twisted_goodies/pybywire/test/test_flexarray.py

    r210 r211  
    6161        return x 
    6262 
     63    def failUnlessStringArray(self, x, rows, cols, rOffset=0, cOffset=0): 
     64        for j in xrange(rows): 
     65            for k in xrange(cols): 
     66                self.failUnlessEqual( 
     67                    x[j,k], 
     68                    "%d:%d" % (j+rOffset, k+cOffset)) 
     69 
    6370 
    6471class Test_FlexArray_access(FlexArray_BC): 
     
    8996        y = x[1:,1:3] 
    9097        self.failUnlessEqual(y.shape, (2,2)) 
    91         for j in (0,1): 
    92             for k in (0,1): 
    93                 self.failUnlessEqual(y[j,k], "%d:%d" % (j+1, k+1)) 
     98        self.failUnlessStringArray(y, 2, 2, 1, 1) 
    9499 
    95100    def test_set_slice_1d(self): 
     
    133138        self.failUnlessEqual(j, 2) 
    134139 
     140 
     141class Test_FlexArray_ops(FlexArray_BC): 
    135142    def test_concatenate_1d(self): 
    136143        x = self._make_stringArray(3, 1) 
     
    140147        self.failUnlessEqual(y[3,0], '0:0') 
    141148 
    142  
    143 class Test_FlexArray_actsLikeArray(FlexArray_BC): 
    144149    def test_copy(self): 
    145150        x = self._make_stringArray(2, 3) 
     
    151156        z[1,2] = "another_new_string" 
    152157        self.failIfEqual(z, x) 
    153      
     158 
     159    def test_asTuple(self): 
     160        x = self._make_stringArray(2, 3) 
     161        y = x.asTuple() 
     162        self.failUnlessEqual(len(y), 2) 
     163        self.failUnlessEqual(y[0], (2, 3)) 
     164        self.failUnlessEqual(y[1], ['0:0', '0:1', '0:2', '1:0', '1:1', '1:2']) 
     165 
     166    def test_fromTuple(self): 
     167        y = ((2, 3), ['0:0', '0:1', '0:2', '1:0', '1:1', '1:2']) 
     168        x = FlexArray.fromTuple(y) 
     169        self.failUnlessEqual(x.shape, (2, 3)) 
     170        self.failUnlessStringArray(x, 2, 3) 
     171 
     172    def test_ToAndFromTuple(self): 
     173        x = self._make_stringArray(5, 13) 
     174        x[1,1] = None 
     175        x[2,2] = 12.345 
     176        x[2,3] = {'I':'am', 'a':'dict'} 
     177        raveled = x.ravel() 
     178        for round in xrange(10): 
     179            y = x.asTuple() 
     180            x = FlexArray.fromTuple(y) 
     181        for k, value in enumerate(x.ravel()): 
     182            self.failUnlessEqual(value, raveled[k]) 
     183 
    154184 
    155185class Test_FlexArray_elements(FlexArray_BC):