~ubuntu-branches/ubuntu/feisty/python-numpy/feisty

« back to all changes in this revision

Viewing changes to numpy/lib/tests/test_twodim_base.py

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2006-07-12 10:00:24 UTC
  • Revision ID: james.westby@ubuntu.com-20060712100024-5lw9q2yczlisqcrt
Tags: upstream-0.9.8
ImportĀ upstreamĀ versionĀ 0.9.8

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
""" Test functions for matrix module
 
2
 
 
3
"""
 
4
 
 
5
from numpy.testing import *
 
6
set_package_path()
 
7
from numpy import arange, rot90, add, fliplr, flipud, zeros, ones, eye, \
 
8
     array, diag
 
9
restore_path()
 
10
 
 
11
##################################################
 
12
 
 
13
 
 
14
def get_mat(n):
 
15
    data = arange(n)
 
16
    data = add.outer(data,data)
 
17
    return data
 
18
 
 
19
class test_eye(ScipyTestCase):
 
20
    def check_basic(self):
 
21
        assert_equal(eye(4),array([[1,0,0,0],
 
22
                                   [0,1,0,0],
 
23
                                   [0,0,1,0],
 
24
                                   [0,0,0,1]]))
 
25
        assert_equal(eye(4,dtype='f'),array([[1,0,0,0],
 
26
                                                [0,1,0,0],
 
27
                                                [0,0,1,0],
 
28
                                                [0,0,0,1]],'f'))
 
29
    def check_diag(self):
 
30
        assert_equal(eye(4,k=1),array([[0,1,0,0],
 
31
                                       [0,0,1,0],
 
32
                                       [0,0,0,1],
 
33
                                       [0,0,0,0]]))
 
34
        assert_equal(eye(4,k=-1),array([[0,0,0,0],
 
35
                                        [1,0,0,0],
 
36
                                        [0,1,0,0],
 
37
                                        [0,0,1,0]]))
 
38
    def check_2d(self):
 
39
        assert_equal(eye(4,3),array([[1,0,0],
 
40
                                     [0,1,0],
 
41
                                     [0,0,1],
 
42
                                     [0,0,0]]))
 
43
        assert_equal(eye(3,4),array([[1,0,0,0],
 
44
                                     [0,1,0,0],
 
45
                                     [0,0,1,0]]))
 
46
    def check_diag2d(self):
 
47
        assert_equal(eye(3,4,k=2),array([[0,0,1,0],
 
48
                                         [0,0,0,1],
 
49
                                         [0,0,0,0]]))
 
50
        assert_equal(eye(4,3,k=-2),array([[0,0,0],
 
51
                                          [0,0,0],
 
52
                                          [1,0,0],
 
53
                                          [0,1,0]]))
 
54
 
 
55
class test_diag(ScipyTestCase):
 
56
    def check_vector(self):
 
57
        vals = (100*arange(5)).astype('l')
 
58
        b = zeros((5,5))
 
59
        for k in range(5):
 
60
            b[k,k] = vals[k]
 
61
        assert_equal(diag(vals),b)
 
62
        b = zeros((7,7))
 
63
        c = b.copy()
 
64
        for k in range(5):
 
65
            b[k,k+2] = vals[k]
 
66
            c[k+2,k] = vals[k]
 
67
        assert_equal(diag(vals,k=2), b)
 
68
        assert_equal(diag(vals,k=-2), c)
 
69
 
 
70
    def check_matrix(self):
 
71
        vals = (100*get_mat(5)+1).astype('l')
 
72
        b = zeros((5,))
 
73
        for k in range(5):
 
74
            b[k] = vals[k,k]
 
75
        assert_equal(diag(vals),b)
 
76
        b = b*0
 
77
        for k in range(3):
 
78
            b[k] = vals[k,k+2]
 
79
        assert_equal(diag(vals,2),b[:3])
 
80
        for k in range(3):
 
81
            b[k] = vals[k+2,k]
 
82
        assert_equal(diag(vals,-2),b[:3])
 
83
 
 
84
class test_fliplr(ScipyTestCase):
 
85
    def check_basic(self):
 
86
        self.failUnlessRaises(ValueError, fliplr, ones(4))
 
87
        a = get_mat(4)
 
88
        b = a[:,::-1]
 
89
        assert_equal(fliplr(a),b)
 
90
        a = [[0,1,2],
 
91
             [3,4,5]]
 
92
        b = [[2,1,0],
 
93
             [5,4,3]]
 
94
        assert_equal(fliplr(a),b)
 
95
 
 
96
class test_flipud(ScipyTestCase):
 
97
    def check_basic(self):
 
98
        a = get_mat(4)
 
99
        b = a[::-1,:]
 
100
        assert_equal(flipud(a),b)
 
101
        a = [[0,1,2],
 
102
             [3,4,5]]
 
103
        b = [[3,4,5],
 
104
             [0,1,2]]
 
105
        assert_equal(flipud(a),b)
 
106
 
 
107
class test_rot90(ScipyTestCase):
 
108
    def check_basic(self):
 
109
        self.failUnlessRaises(ValueError, rot90, ones(4))
 
110
 
 
111
        a = [[0,1,2],
 
112
             [3,4,5]]
 
113
        b1 = [[2,5],
 
114
              [1,4],
 
115
              [0,3]]
 
116
        b2 = [[5,4,3],
 
117
              [2,1,0]]
 
118
        b3 = [[3,0],
 
119
              [4,1],
 
120
              [5,2]]
 
121
        b4 = [[0,1,2],
 
122
              [3,4,5]]
 
123
 
 
124
        for k in range(-3,13,4):
 
125
            assert_equal(rot90(a,k=k),b1)
 
126
        for k in range(-2,13,4):
 
127
            assert_equal(rot90(a,k=k),b2)
 
128
        for k in range(-1,13,4):
 
129
            assert_equal(rot90(a,k=k),b3)
 
130
        for k in range(0,13,4):
 
131
            assert_equal(rot90(a,k=k),b4)
 
132
 
 
133
if __name__ == "__main__":
 
134
    ScipyTest().run()