mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.3 KiB
41 lines
1.3 KiB
// A vector in linear algebra is define as "anything that can be added |
|
// and that can be multiplied by a scalar" |
|
// And the associated function dot that calculates the dot product |
|
// between two vectors |
|
// let vector = Vector(vec![0,3, 4]); |
|
// let vector_1 = Vector(vec![0,3,3]); |
|
// vector.dot(&vector_1) == Some(23); |
|
|
|
// The dot product between two vectors of different length it's not defined |
|
|
|
use lalgebra_vector::Vector; |
|
|
|
fn main() { |
|
let vector_1: Vector<i64> = Vector(vec![1, 3, -5]); |
|
let vector_2: Vector<i64> = Vector(vec![4, -2, -1]); |
|
println!("{:?}", vector_1.dot(&vector_2)); |
|
println!("{:?}", vector_1 + &vector_2); |
|
} |
|
|
|
#[test] |
|
fn dot_product() { |
|
let vector_1: Vector<i64> = Vector(vec![1, 3, -5]); |
|
let vector_2: Vector<i64> = Vector(vec![4, -2, -1]); |
|
let expected: i64 = 3; |
|
assert_eq!(vector_1.dot(&vector_2), Some(expected)); |
|
|
|
let vector_1: Vector<i64> = Vector(vec![1, 3, -5]); |
|
let vector_2: Vector<i64> = Vector(vec![4, -2]); |
|
assert_eq!(vector_1.dot(&vector_2), None); |
|
} |
|
|
|
#[test] |
|
fn addition() { |
|
let vector_1: Vector<i64> = Vector(vec![1, 3, -5]); |
|
let vector_2: Vector<i64> = Vector(vec![4, -2, -1]); |
|
assert_eq!(vector_1 + &vector_2, Some(Vector(vec![5i64, 1, -6]))); |
|
|
|
let vector_1: Vector<i64> = Vector(vec![1, 3, -5]); |
|
let vector_2: Vector<i64> = Vector(vec![2, 4, -2, -1]); |
|
assert_eq!(None, vector_1 + &vector_2); |
|
}
|
|
|