Mercurial > repos > public > sbplib
annotate MapTest.m @ 627:c602fe0a778c feature/grids
Clean up numberOfCompnents
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 20 Oct 2017 23:24:42 +0200 |
parents | effd75b113ba |
children | a6c5e73ff44e |
rev | line source |
---|---|
417
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
1 function tests = MatTest() |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
2 tests = functiontests(localfunctions); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
3 end |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
4 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
5 function kvp = getKeyValuePairs() |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
6 kvp = { |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
7 {1,3},1; |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
8 struct(), [1; 3; 4]; |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
9 [1,2; 4 3], struct(); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
10 'Hej', struct('lol', 6); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
11 0, 'Nej'; |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
12 }; |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
13 end |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
14 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
15 function testSetAndGet(testCase) |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
16 keyValuePairs = getKeyValuePairs(); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
17 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
18 map = Map(); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
19 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
20 % Insert |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
21 for i = 1:length(keyValuePairs) |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
22 map(keyValuePairs{i,1}) = keyValuePairs{i,2}; |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
23 end |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
24 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
25 % Validate output |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
26 for i = 1:length(keyValuePairs) |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
27 v = map(keyValuePairs{i,1}); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
28 testCase.verifyEqual(v, keyValuePairs{i,2}); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
29 end |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
30 end |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
31 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
32 function map = exampleMap() |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
33 keyValuePairs = getKeyValuePairs(); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
34 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
35 map = Map(); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
36 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
37 % Insert |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
38 for i = 1:length(keyValuePairs) |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
39 map(keyValuePairs{i,1}) = keyValuePairs{i,2}; |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
40 end |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
41 end |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
42 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
43 function testLength(testCase) |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
44 map = Map(); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
45 testCase.verifyEqual(map.length, 0); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
46 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
47 map = exampleMap(); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
48 testCase.verifyEqual(map.length, 5) |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
49 end |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
50 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
51 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
52 function testIsKey(testCase) |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
53 map = exampleMap(); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
54 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
55 keyValuePairs = getKeyValuePairs(); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
56 keys = keyValuePairs(:,1); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
57 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
58 for i = 1:length(keys) |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
59 testCase.verifyTrue(map.isKey(keys{i})); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
60 end |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
61 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
62 notKeys = { |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
63 'hej', |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
64 [], |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
65 1, |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
66 {2,5}, |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
67 }; |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
68 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
69 for i = 1:length(notKeys) |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
70 testCase.verifyFalse(map.isKey(notKeys{i})); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
71 end |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
72 end |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
73 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
74 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
75 function testRemove(testCase) |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
76 map = exampleMap(); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
77 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
78 remove(map, struct()); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
79 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
80 testCase.verifyFalse(map.isKey(struct())); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
81 end |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
82 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
83 % function testValues(testCase) |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
84 % keyValuePairs = getKeyValuePairs(); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
85 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
86 % map = exampleMap(); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
87 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
88 % testCase.verifyEqual(values(map), keyValuePairs(:,2)'); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
89 % end |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
90 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
91 % function testKeys(testCase) |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
92 % keyValuePairs = getKeyValuePairs(); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
93 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
94 % map = exampleMap(); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
95 |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
96 % testCase.verifyEqual(keys(map), keyValuePairs(:,1)'); |
effd75b113ba
Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
97 % end |