1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#[allow(dead_code)]
#[macro_use]
pub mod coords;
#[macro_use]
pub mod vectors;
#[macro_use]
pub mod debug;
#[cfg(test)]
mod test {
use crate::*;
#[test]
fn test_coords () {
let a: coords::Coord = new_coord!(1, 2.0);
let o: coords::Coord = new_coord!(2.0);
let x: i64 = 3;
let y: f32 = 3.0;
let b: coords::Coord = new_coord!(x, y);
let c: coords::Coord = a + b;
let d: coords::Coord = a - c;
let e: coords::Coord = a * d;
let f: coords::Coord = o / a;
let g: Vec<f64> = a.to_vec();
let i: (f64, f64) = c.to_tuple();
let (r, o) = e.split();
println!("let a: coord::Coord = new_coord!(1, 2.0); | {:?}", a);
println!("let o: coord::Coord = new_coord!(2.0); | {:?}", o);
println!("\nlet (x , y) = (3.0, 3);\nlet b: coords::Coord = new_coord!(x, y); | {:?}", b);
println!("\nlet c: coord::Coord = a + b; | {:?}", c);
println!("\nlet d: coord::Coord = a - c; | {:?}", d);
println!("\nlet e: coord::Coord = a * d; | {:?}", e);
println!("\nlet f: coord::Coord = a / a; | {:?}", f);
println!("\n let g: Vec<f64> = a.to_vec(); {:?}", g);
println!("\n let i: (f64, f64) = c.to_tuple(); | {:?}", i);
println!("\n let (r, o) = e.split(); r={}, o={}" ,r,o);
}
#[test]
fn test_vector () {
let a: coords::Coord = new_coord!(2.5 ,3.3);
let o: coords::Coord = new_coord!(2.5);
let x: f64 = 3.0;
let y: f32 = 3.0;
let b: coords::Coord = new_coord!(x, y);
let d: coords::Coord = a - b;
let e: coords::Coord = a * d;
let h:vectors::Vector = new_vector!();
let f:vectors::Vector = new_vector!(o);
let l:vectors::Vector = new_vector!(a, e);
let m:vectors::Vector = h + l;
let s:vectors::Vector = h + l;
let w:vectors::Vector = m + h;
let t:vectors::Vector = h + s;
let vec: Vec<coords::Coord> = s.to_vec();
let tup:(coords::Coord, coords::Coord , f64) = s.to_tuple();
let mag: f64 = t.get_magnitude();
let mid: coords::Coord = m.get_midpoint();
println!("\nlet h:vectors::Vector = new_vector!(); | {:?}", h);
println!("\nlet f:vectors::Vector = new_vector!(); | {:?}", f);
println!("\nlet l:vectors::Vector = new_vector!(a, e); | {:?}", l);
println!("\nlet m = h + l; | {:?}", m);
println!("\nlet s = h + l; | {:?}", s);
println!("\nlet w = m + h; | {:?}", w);
println!("\nlet t = h + s; | {:?}", t);
println!("\nlet mag = t.get_magnitude(); | {}", mag);
println!("\nlet vec = s.to_vec(); | {:?}" , vec);
println!("\nlet tup = s.to_tuple(); | {:?}" , tup);
println!("\nlet mid: coords::Coord = m.get_midpoint(); | {:?}" , mid);
}
#[test]
fn test_debug() {
let a: coords::Coord = new_coord!(2.5 ,3.3);
let o: coords::Coord = new_coord!(2.5);
let l:vectors::Vector = new_vector!(a, o);
debug::debug(a);
debug::debug(l);
let _type = debug::type_of(a);
println!("{}", _type);
}
}