Add benchmark
This commit is contained in:
parent
36e85fc429
commit
5738c7b969
19
src/lib.rs
19
src/lib.rs
@ -1,4 +1,5 @@
|
|||||||
#![feature(zero_one)]
|
#![feature(zero_one)]
|
||||||
|
#![feature(test)]
|
||||||
|
|
||||||
/// Kuhn-Munkres Algorithm (also called Hungarian algorithm) for solving the
|
/// Kuhn-Munkres Algorithm (also called Hungarian algorithm) for solving the
|
||||||
/// Assignment Problem.
|
/// Assignment Problem.
|
||||||
@ -18,6 +19,9 @@
|
|||||||
|
|
||||||
extern crate bit_vec;
|
extern crate bit_vec;
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
extern crate test;
|
||||||
|
|
||||||
use std::ops::{Add, Sub};
|
use std::ops::{Add, Sub};
|
||||||
use std::num::Zero;
|
use std::num::Zero;
|
||||||
use std::cmp;
|
use std::cmp;
|
||||||
@ -613,3 +617,18 @@ fn test_solve_random10() {
|
|||||||
let mut weights: WeightMatrix<i32> = WeightMatrix::from_row_vec(10, c);
|
let mut weights: WeightMatrix<i32> = WeightMatrix::from_row_vec(10, c);
|
||||||
let _matching = solve_assignment(&mut weights);
|
let _matching = solve_assignment(&mut weights);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[bench]
|
||||||
|
fn bench_solve100(b: &mut test::Bencher) {
|
||||||
|
const N: usize = 100;
|
||||||
|
let matrix: Vec<i32> = (0..N*N).map(|i| {
|
||||||
|
let row = i/N;
|
||||||
|
let col = i%N;
|
||||||
|
(row * col) as i32
|
||||||
|
}).collect();
|
||||||
|
|
||||||
|
b.iter(|| {
|
||||||
|
let mut weights: WeightMatrix<i32> = WeightMatrix::from_row_vec(N, matrix.clone());
|
||||||
|
let _matching = solve_assignment(&mut weights);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user