test/
test.rs

1extern crate binpool;
2
3use binpool::{Scalar, Vector, Matrix, State};
4use std::fs::File;
5
6fn main() {
7    scalar();
8    vector();
9    matrix();
10}
11
12const ARRAY_PROPERTY: u16 = 3;
13const SINGLE_PROPERTY: u16 = 4;
14
15fn scalar() {
16    let filename = "assets/test-scalar.pool";
17
18    let mut file = File::create(filename).unwrap();
19    let data: Vec<f32> = vec![1.0, 2.0, 3.0];
20    Scalar::write_array(ARRAY_PROPERTY, &data, &mut file).unwrap();
21    (10 as u8).write_property(SINGLE_PROPERTY, &mut file).unwrap();
22    drop(file);
23
24    let mut file = File::open(filename).unwrap();
25
26    let mut data: Vec<f32> = vec![];
27    let mut val: u8 = 0;
28    while let Ok((Some(state), ty, prop)) = State::read(&mut file) {
29        match prop {
30            ARRAY_PROPERTY => Scalar::read_array(state, ty, &mut data, &mut file).unwrap(),
31            SINGLE_PROPERTY => val.read_property(state, ty, &mut file).unwrap(),
32            _ => break,
33        }
34    }
35
36    println!("=== Scalar ===");
37    println!("data {:?}", data);
38    println!("val {:?}", val);
39}
40
41fn vector() {
42    let filename = "assets/test-vector.pool";
43
44    let mut file = File::create(filename).unwrap();
45    let data: Vec<[f32; 2]> = vec![[1.0, 2.0], [3.0, 4.0]];
46    Vector::write_array(ARRAY_PROPERTY, &data, &mut file).unwrap();
47    let val: [u8; 2] = [10; 2];
48    val.write_property(SINGLE_PROPERTY, &mut file).unwrap();
49    drop(file);
50
51    let mut file = File::open(filename).unwrap();
52    let mut data: Vec<[f32; 2]> = vec![];
53    let mut val: [u8; 2] = [0; 2];
54    while let Ok((Some(state), ty, prop)) = State::read(&mut file) {
55        match prop {
56            ARRAY_PROPERTY => Vector::read_array(state, ty, &mut data, &mut file).unwrap(),
57            SINGLE_PROPERTY => val.read_property(state, ty, &mut file).unwrap(),
58            _ => break,
59        }
60    }
61
62    println!("=== Vector ===");
63    println!("data {:?}", data);
64    println!("val {:?}", val);
65}
66
67fn matrix() {
68    let filename = "assets/test-matrix.pool";
69
70    let mut file = File::create(filename).unwrap();
71    let data: Vec<[[f32; 2]; 2]> = vec![[[1.0, 2.0], [3.0, 4.0]]];
72    Matrix::write_array(ARRAY_PROPERTY, &data, &mut file).unwrap();
73    let val: [[u8; 2]; 2] = [[10; 2]; 2];
74    val.write_property(SINGLE_PROPERTY, &mut file).unwrap();
75    drop(file);
76
77    let mut file = File::open(filename).unwrap();
78    let mut data: Vec<[[f32; 2]; 2]> = vec![];
79    let mut val: [[u8; 2]; 2] = [[0; 2]; 2];
80
81    while let Ok((Some(state), ty, prop)) = State::read(&mut file) {
82        match prop {
83            ARRAY_PROPERTY => Matrix::read_array(state, ty, &mut data, &mut file).unwrap(),
84            SINGLE_PROPERTY => val.read_property(state, ty, &mut file).unwrap(),
85            _ => break,
86        }
87    }
88
89    println!("=== Matrix ===");
90    println!("data {:?}", data);
91    println!("val {:?}", val);
92}