1 package baseCode.dataStructure.matrix;
2
3 import junit.framework.TestCase;
4 import baseCode.dataStructure.matrix.RCDoubleMatrix1D;
5 import cern.colt.list.DoubleArrayList;
6 import cern.colt.list.IntArrayList;
7 import cern.colt.matrix.DoubleMatrix1D;
8 import cern.colt.matrix.impl.DenseDoubleMatrix1D;
9
10 /***
11 * <hr>
12 * <p>
13 * Copyright (c) 2004 Columbia University
14 *
15 * @author pavlidis
16 * @version $Id: TestRCDoubleMatrix1D.java,v 1.1 2005/03/17 13:58:42 pavlidis Exp $
17 */
18 public class TestRCDoubleMatrix1D extends TestCase {
19
20 RCDoubleMatrix1D a;
21 RCDoubleMatrix1D b;
22 DoubleMatrix1D c;
23
24
25
26
27
28 protected void setUp() throws Exception {
29
30
31
32
33
34
35
36 DoubleArrayList va = new DoubleArrayList( new double[] {
37 1, 2, 5
38 } );
39 IntArrayList ina = new IntArrayList( new int[] {
40 1, 2, 4
41 } );
42
43 DoubleArrayList vb = new DoubleArrayList( new double[] {
44 5, 3, 2, 1
45 } );
46 IntArrayList inb = new IntArrayList( new int[] {
47 0, 1, 2, 3
48 } );
49
50 DoubleArrayList vc = new DoubleArrayList( new double[] {
51 5, 3, 2, 1
52 } );
53 IntArrayList inc = new IntArrayList( new int[] {
54 0, 1, 2, 3
55 } );
56
57
58 a = new RCDoubleMatrix1D(ina, va );
59 b = new RCDoubleMatrix1D(inb, vb );
60
61 c = new DenseDoubleMatrix1D( new double[] {5,3,2,1});
62 super.setUp();
63 }
64
65 public void testForEachNonZero() {
66 DoubleMatrix1D actualReturn = a
67 .forEachNonZero( new cern.colt.function.DoubleFunction() {
68 public double apply( double value ) {
69 return value / 2.0;
70 }
71 } );
72 DoubleMatrix1D expectedReturn = new RCDoubleMatrix1D( new double[] {
73 0, 0.5, 1, 0, 2.5
74 } );
75 assertEquals( "return value", new DoubleArrayList( expectedReturn
76 .toArray() ), new DoubleArrayList( actualReturn.toArray() ) );
77 }
78
79
80
81
82 public void testZDotProductDoubleMatrix1D() {
83 double actualReturn = a.zDotProduct( b );
84 double expectedReturn = 7;
85 assertEquals( "return value", expectedReturn, actualReturn, 0.0001 );
86 }
87
88
89
90
91
92 public void testZDotProductDoubleMatrix1DReverse() {
93 double actualReturn = b.zDotProduct( a );
94 double expectedReturn = 7;
95 assertEquals( "return value", expectedReturn, actualReturn, 0.0001 );
96 }
97
98
99
100
101 public void testZDotProductDoubleMatrix1DHarder() {
102 double actualReturn = a.zDotProduct( c );
103 double expectedReturn = 7;
104 assertEquals( "return value", expectedReturn, actualReturn, 0.0001 );
105 }
106
107
108
109
110 public void testZDotProductDoubleMatrix1DHarderReverse() {
111 double actualReturn = c.zDotProduct( a );
112 double expectedReturn = 7;
113 assertEquals( "return value", expectedReturn, actualReturn, 0.0001 );
114 }
115
116
117
118
119
120
121 public void testAssignDoubleFunction() {
122 DoubleMatrix1D actualReturn = a
123 .assign( new cern.colt.function.DoubleFunction() {
124 public double apply( double value ) {
125 return 2;
126 }
127 } );
128 DoubleMatrix1D expectedReturn = new RCDoubleMatrix1D( new double[] {
129 0, 2, 2, 0, 2
130 } );
131 assertEquals( "return value", new DoubleArrayList( expectedReturn
132 .toArray() ), new DoubleArrayList( actualReturn.toArray() ) );
133 }
134
135 }