|
|
@@ -72,10 +72,23 @@ fn check_primitive_block_content(block: &PrimitiveBlock) {
|
|
72
|
72
|
assert!(way_tags.contains(&("building", "yes")));
|
|
73
|
73
|
assert!(way_tags.contains(&("name", "triangle")));
|
|
74
|
74
|
}
|
|
|
75
|
+
|
|
|
76
|
+ {
|
|
|
77
|
+ let relations: Vec<_> = block.groups().flat_map(|g| g.relations()).collect();
|
|
|
78
|
+ assert_eq!(relations.len(), 1);
|
|
|
79
|
+
|
|
|
80
|
+ let tags = relations[0].tags().collect::<Vec<_>>();
|
|
|
81
|
+ assert_eq!(tags.len(), 1);
|
|
|
82
|
+ assert!(tags.contains(&("rel_key", "rel_value")));
|
|
|
83
|
+
|
|
|
84
|
+ let members = relations[0].members().collect::<Vec<_>>();
|
|
|
85
|
+ assert_eq!(members.len(), 1);
|
|
|
86
|
+ assert_eq!(members[0].role().unwrap(), "test_role");
|
|
|
87
|
+ }
|
|
75
|
88
|
}
|
|
76
|
89
|
|
|
77
|
90
|
#[test]
|
|
78
|
|
-fn read() {
|
|
|
91
|
+fn read_blobs() {
|
|
79
|
92
|
for path in &TEST_FILE_PATHS {
|
|
80
|
93
|
let reader = BlobReader::from_path(path).unwrap();
|
|
81
|
94
|
let blobs = reader.collect::<Result<Vec<_>>>().unwrap();
|
|
|
@@ -93,7 +106,7 @@ fn read() {
|
|
93
|
106
|
}
|
|
94
|
107
|
|
|
95
|
108
|
#[test]
|
|
96
|
|
-fn mmap_read() {
|
|
|
109
|
+fn read_mmap_blobs() {
|
|
97
|
110
|
for path in &TEST_FILE_PATHS {
|
|
98
|
111
|
let mmap = unsafe { Mmap::from_path(path).unwrap() };
|
|
99
|
112
|
let reader = MmapBlobReader::new(&mmap);
|
|
|
@@ -136,3 +149,30 @@ fn decode_blob() {
|
|
136
|
149
|
assert!(blobs[1].to_primitiveblock().is_ok());
|
|
137
|
150
|
}
|
|
138
|
151
|
}
|
|
|
152
|
+
|
|
|
153
|
+#[test]
|
|
|
154
|
+fn read_elements() {
|
|
|
155
|
+ for path in &TEST_FILE_PATHS {
|
|
|
156
|
+ let reader = ElementReader::from_path(path).unwrap();
|
|
|
157
|
+ let mut elements = 0_usize;
|
|
|
158
|
+
|
|
|
159
|
+ reader.for_each(|_element| elements += 1).unwrap();
|
|
|
160
|
+
|
|
|
161
|
+ assert_eq!(elements, 5);
|
|
|
162
|
+ }
|
|
|
163
|
+}
|
|
|
164
|
+
|
|
|
165
|
+#[test]
|
|
|
166
|
+fn par_read_elements() {
|
|
|
167
|
+ for path in &TEST_FILE_PATHS {
|
|
|
168
|
+ let reader = ElementReader::from_path(path).unwrap();
|
|
|
169
|
+
|
|
|
170
|
+ let elements = reader.par_map_reduce(
|
|
|
171
|
+ |_element| 1,
|
|
|
172
|
+ || 0_usize,
|
|
|
173
|
+ |a, b| a + b,
|
|
|
174
|
+ ).unwrap();
|
|
|
175
|
+
|
|
|
176
|
+ assert_eq!(elements, 5);
|
|
|
177
|
+ }
|
|
|
178
|
+}
|