Ver código fonte

Add read tests

Johannes Hofmann 8 anos atrás
pai
commit
cace173ee8
1 arquivos alterados com 42 adições e 2 exclusões
  1. 42
    2
      tests/read.rs

+ 42
- 2
tests/read.rs Ver arquivo

@@ -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
+}