Skip to content

Commit 5ec9c25

Browse files
authored
Merge pull request #1 from MIERUNE/add-tests
Add tests
2 parents ab09179 + 853fe85 commit 5ec9c25

File tree

2 files changed

+87
-0
lines changed

2 files changed

+87
-0
lines changed

src/models/tileset.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,33 @@ pub struct StatisticsProperty {
434434
mod tests {
435435
use super::*;
436436

437+
#[test]
438+
fn test_default() {
439+
let tileset = Tileset::default();
440+
assert_eq!(tileset.asset.version, "1.1".to_string());
441+
}
442+
443+
#[test]
444+
fn test_bounding_volumes() {
445+
// box
446+
let bv = BoundingVolume::new_box([0., 0., 0., 1., 1., 1., 2., 2., 2., 3., 3., 3.]);
447+
assert!(bv.box_.is_some());
448+
assert!(bv.sphere.is_none());
449+
assert!(bv.region.is_none());
450+
451+
// sphere
452+
let bv = BoundingVolume::new_sphere([0., 0., 0., 0.]);
453+
assert!(bv.box_.is_none());
454+
assert!(bv.sphere.is_some());
455+
assert!(bv.region.is_none());
456+
457+
// region
458+
let bv = BoundingVolume::new_region([0., 0., 1., 1., 2., 2.]);
459+
assert!(bv.box_.is_none());
460+
assert!(bv.sphere.is_none());
461+
assert!(bv.region.is_some());
462+
}
463+
437464
#[test]
438465
fn test_tile() {
439466
let tile = Tile::default();

tests/load_gltf.rs

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
use serde::{Deserialize, Serialize};
2+
3+
use cesiumtiles::gltf_extensions::gltf;
4+
use cesiumtiles::gltf_extensions::mesh;
5+
6+
#[derive(Debug, Serialize, Deserialize)]
7+
#[serde(rename_all = "camelCase")]
8+
pub struct Gltf {
9+
#[serde(default, skip_serializing_if = "Vec::is_empty")]
10+
pub meshes: Vec<Mesh>,
11+
12+
#[serde(skip_serializing_if = "Option::is_none")]
13+
pub extensions: Option<GltfExtension>,
14+
}
15+
16+
#[derive(Serialize, Deserialize, Debug, Default, PartialEq, Clone)]
17+
#[serde[rename_all = "camelCase"]]
18+
pub struct Mesh {
19+
pub primitives: Vec<MeshPrimitive>,
20+
}
21+
22+
#[derive(Serialize, Deserialize, Debug, Default, PartialEq, Clone)]
23+
#[serde[rename_all = "camelCase"]]
24+
pub struct MeshPrimitive {
25+
#[serde(skip_serializing_if = "Option::is_none")]
26+
pub extensions: Option<MeshPrimitiveExtension>,
27+
}
28+
29+
#[derive(Serialize, Deserialize, Debug, Default, PartialEq, Clone)]
30+
pub struct MeshPrimitiveExtension {
31+
#[serde(skip_serializing_if = "Option::is_none")]
32+
#[serde(rename = "EXT_mesh_features")]
33+
pub ext_mesh_features: Option<mesh::ext_mesh_features::ExtMeshFeatures>,
34+
35+
#[serde(skip_serializing_if = "Option::is_none")]
36+
#[serde(rename = "EXT_structural_metadata")]
37+
pub ext_structural_metadata: Option<mesh::ext_structural_metadata::ExtStructuralMetadata>,
38+
}
39+
40+
#[derive(Serialize, Deserialize, Debug, Default, PartialEq)]
41+
pub struct GltfExtension {
42+
#[serde(rename = "EXT_structural_metadata")]
43+
#[serde(skip_serializing_if = "Option::is_none")]
44+
pub ext_structural_metadata: Option<gltf::ext_structural_metadata::ExtStructuralMetadata>,
45+
}
46+
47+
#[test]
48+
fn load_gltf_json() {
49+
for path in glob::glob("./tests/samples/**/*.gltf").unwrap() {
50+
let path = path.unwrap();
51+
println!("loading {:?}", path);
52+
let src = std::fs::read_to_string(path).unwrap();
53+
let a: Gltf = serde_json::from_str(&src).unwrap();
54+
let _ = format!("{:?}", a);
55+
56+
// 'null' should not appear in output
57+
let a = serde_json::to_string(&a).unwrap();
58+
assert!(!a.contains("null"));
59+
}
60+
}

0 commit comments

Comments
 (0)