AuD
Lecture 'Algorithmen und Datenstrukturen' (code examples)
SparseMatrixTest.java
Go to the documentation of this file.
1package aud.test;
2
3import aud.Vector;
5
6import org.junit.*;
7import static org.junit.Assert.*;
8
9public class SparseMatrixTest {
10
11 @Test
12 public void testMatrix() {
14 assertFalse(m.isSymmetricMatrix());
15
16 assertSame(m.nnz(),0);
17 assertSame(m.getNumRows(),0);
18 assertSame(m.getNumColumns(),0);
19 assertSame(m.getMinRowIndex(),0);
20 assertSame(m.getMinColumnIndex(),0);
21
22 m.set(2,2,2);
23 m.set(9,9,9);
24
25 assertSame(m.getNumRows(),9);
26 assertSame(m.getNumColumns(),9);
27 assertSame(m.getMinRowIndex(),2);
28 assertSame(m.getMinColumnIndex(),2);
29
30 assertSame(m.get(2,2),2);
31 assertSame(m.get(9,9),9);
32 assertSame(m.nnz(),2);
33
34 m.set(2,2,3);
35 assertSame(m.get(2,2),3);
36 assertSame(m.nnz(),2);
37
38 m.set(2,2,null);
39 assertSame(m.get(2,2),null);
40 assertSame(m.nnz(),1);
41
42 m.set(2,2,2);
43
44 m.set(4,2,-1);
45 assertSame(m.get(4,2),-1);
46 assertSame(m.get(2,4),null);
47
48 int[] ri=m.getColumnRowIndices(2);
50
51 assertSame(ri.length,2);
52 assertSame(m.columnDegree(2),2);
53 assertSame(ri[0],2);
54 assertSame(ri[1],4);
55 assertEquals(v.at(0),Integer.valueOf(2));
56 assertEquals(v.at(1),Integer.valueOf(-1));
57
58 int[] ci=m.getRowColumnIndices(2);
59 v=m.getRowEntries(2);
60 assertSame(ci.length,1);
61 assertSame(m.rowDegree(2),1);
62 assertSame(v.size(),1);
63
64 assertSame(ci[0],2);
65 assertEquals(v.at(0),Integer.valueOf(2));
66 }
67
68 @Test
69 public void testSymmatrixMatrix() {
71 assertTrue(m.isSymmetricMatrix());
72
73 assertSame(m.nnz(),0);
74 assertSame(m.getNumRows(),0);
75 assertSame(m.getNumColumns(),0);
76 assertSame(m.getMinRowIndex(),0);
77 assertSame(m.getMinColumnIndex(),0);
78
79 m.set(2,2,2);
80 m.set(9,9,9);
81
82 assertSame(m.getNumRows(),9);
83 assertSame(m.getNumColumns(),9);
84 assertSame(m.getMinRowIndex(),2);
85 assertSame(m.getMinColumnIndex(),2);
86
87 assertSame(m.get(2,2),2);
88 assertSame(m.get(9,9),9);
89 assertSame(m.nnz(),2);
90
91 m.set(2,2,3);
92 assertSame(m.get(2,2),3);
93 assertSame(m.nnz(),2);
94
95 m.set(2,2,null);
96 assertSame(m.get(2,2),null);
97 assertSame(m.nnz(),1);
98
99 m.set(2,2,2);
100
101 m.set(4,2,-1);
102 assertSame(m.get(4,2),-1);
103 assertSame(m.get(2,4),-1);
104
105 int[] ri=m.getColumnRowIndices(2);
107
108 assertSame(ri.length,2);
109 assertSame(m.columnDegree(2),2);
110 assertSame(ri[0],2);
111 assertSame(ri[1],4);
112 assertEquals(v.at(0),Integer.valueOf(2));
113 assertEquals(v.at(1),Integer.valueOf(-1));
114
115 int[] ci=m.getRowColumnIndices(2);
116 v=m.getRowEntries(2);
117 assertSame(ci[0],2);
118 assertSame(ci[1],4);
119 assertEquals(v.at(0),Integer.valueOf(2));
120 assertEquals(v.at(1),Integer.valueOf(-1));
121 }
122
123 public static void main(String args[]) {
124 org.junit.runner.JUnitCore.main("aud.test.SparseMatrixTest");
125 }
126}
Implementation of an array-based vector.
Definition: Vector.java:44
T at(int i)
get i-th entry [O(1)]
Definition: Vector.java:92
int size()
get number of entries [O(1)]
Definition: Vector.java:60
int getMinColumnIndex()
get minimum row index [O(1)]
int[] getColumnRowIndices(int j)
get row indices in column j as array
T get(int i, int j)
get entry (i,j) [O(log(nnz))]
int columnDegree(int j)
get number of nonzero entries in column j
int getNumColumns()
computed from maximum column index [O(1)]
Vector< T > getColumnEntries(int j)
get entries in column j as array
int nnz()
get number of nonzero entries
Simple sparse matrix data structure.
int getMinRowIndex()
get minimum column index [O(1)]
int getNumRows()
computed from maximum column index [O(1)]
T set(int i, int j, T data)
Set entry (i,j) to data [O(log(nnz))].
Vector< T > getRowEntries(int i)
get entries in row i as array
boolean isSymmetricMatrix()
Was matrix created explicitly as symmetric matrix?
int rowDegree(int i)
get number of nonzero entries in row i
int[] getRowColumnIndices(int i)
get column indices in row i as array
static void main(String args[])
sparse matrices for encoding adjacency
Definition: Coordinate.java:1
Graph data structures and algorithms.
AuD lecture: Data structures, algorithms, examples.
Definition: A234Tree.java:1