741
|
1 #include <iostream.h> |
|
2 #include <assert.h> |
|
3 #include <builtin.h> |
|
4 |
|
5 #include "Map.h" |
|
6 |
|
7 int SIZE; |
|
8 |
|
9 char **keys; |
|
10 double *values; |
|
11 |
|
12 void |
|
13 add (char *x[], double y[], Map<double>& a) |
|
14 { |
|
15 for (int i = 0; i < SIZE; ++i) |
|
16 a[x[i]] = y[i]; |
|
17 } |
|
18 |
|
19 void |
|
20 makekeys (void) |
|
21 { |
|
22 for (int i = 0; i < SIZE; ++i) |
|
23 { |
|
24 char *tmp = new char [10]; |
|
25 sprintf (tmp, "index_%d", i); |
|
26 keys[i] = tmp; |
|
27 } |
|
28 } |
|
29 |
|
30 void |
|
31 makevalues (void) |
|
32 { |
|
33 for (int i = 0; i < SIZE; ++i) |
|
34 values[i] = i + 1; |
|
35 } |
|
36 |
|
37 void |
|
38 printMap (Map<double>& a) |
|
39 { |
|
40 int maxprint = 1000; |
|
41 cout << "["; |
|
42 int k = 0; |
|
43 for (Pix i = a.first (); i != 0 && k < maxprint; a.next (i), ++k) |
|
44 cout << "(" << a.key (i) << ", " << a.contents (i) << ") "; |
|
45 |
|
46 if (i != 0) |
|
47 cout << "...]\n"; |
|
48 else |
|
49 cout << "]\n"; |
|
50 } |
|
51 |
|
52 void |
|
53 CHtest (void) |
|
54 { |
|
55 CHMap<double> a (-1.0, SIZE); |
|
56 add (keys, values, a); |
|
57 |
|
58 cout << "a: "; |
|
59 printMap (a); |
|
60 |
|
61 assert (a.length () == SIZE); |
|
62 |
|
63 for (int j = 0; j < SIZE; ++j) |
|
64 assert (a.contains (keys[j])); |
|
65 |
|
66 // assert (a[SIZE+1] = -1); |
|
67 |
|
68 for (j = 0; j < SIZE; ++j) |
|
69 a.del (keys[j]); |
|
70 |
|
71 assert (a.empty ()); |
|
72 |
|
73 assert (a.OK ()); |
|
74 } |
|
75 |
|
76 int |
|
77 main (int argv, char** argc) |
|
78 { |
|
79 SIZE = 100; |
|
80 |
|
81 keys = new char *[SIZE]; |
|
82 makekeys (); |
|
83 |
|
84 values = new double [SIZE]; |
|
85 makevalues (); |
|
86 |
|
87 cout << "CHtest\n"; |
|
88 CHtest(); |
|
89 |
|
90 return 0; |
|
91 } |