lib, rename, test (broken)
This commit is contained in:
parent
59b29bb678
commit
3bddd780e5
4 changed files with 59 additions and 53 deletions
46
Cargo.lock
generated
46
Cargo.lock
generated
|
|
@ -31,9 +31,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "autocfg"
|
name = "autocfg"
|
||||||
version = "1.1.0"
|
version = "1.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
|
checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bytemuck"
|
name = "bytemuck"
|
||||||
|
|
@ -391,9 +391,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rayon"
|
name = "rayon"
|
||||||
version = "1.9.0"
|
version = "1.10.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
|
checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"either",
|
"either",
|
||||||
"rayon-core",
|
"rayon-core",
|
||||||
|
|
@ -458,7 +458,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.53",
|
"syn 2.0.55",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -476,9 +476,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "smallvec"
|
name = "smallvec"
|
||||||
version = "1.13.1"
|
version = "1.13.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
|
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "spade"
|
name = "spade"
|
||||||
|
|
@ -524,28 +524,15 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "syn"
|
name = "syn"
|
||||||
version = "2.0.53"
|
version = "2.0.55"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
|
checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "triturus"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"delaunator",
|
|
||||||
"geo",
|
|
||||||
"geo-types",
|
|
||||||
"itertools 0.12.1",
|
|
||||||
"rand",
|
|
||||||
"rayon",
|
|
||||||
"statrs",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "typenum"
|
name = "typenum"
|
||||||
version = "1.17.0"
|
version = "1.17.0"
|
||||||
|
|
@ -580,6 +567,19 @@ dependencies = [
|
||||||
"safe_arch",
|
"safe_arch",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "xenobalanus"
|
||||||
|
version = "0.1.1"
|
||||||
|
dependencies = [
|
||||||
|
"delaunator",
|
||||||
|
"geo",
|
||||||
|
"geo-types",
|
||||||
|
"itertools 0.12.1",
|
||||||
|
"rand",
|
||||||
|
"rayon",
|
||||||
|
"statrs",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zerocopy"
|
name = "zerocopy"
|
||||||
version = "0.7.32"
|
version = "0.7.32"
|
||||||
|
|
@ -597,5 +597,5 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.53",
|
"syn 2.0.55",
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
[package]
|
[package]
|
||||||
name = "triturus"
|
name = "xenobalanus"
|
||||||
version = "0.1.0"
|
version = "0.1.1"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
[lib]
|
||||||
|
name = "xenobalanus"
|
||||||
|
crate-type = ["cdylib"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
delaunator = "1.0.2"
|
delaunator = "1.0.2"
|
||||||
|
|
|
||||||
|
|
@ -286,30 +286,3 @@ fn dtscan(
|
||||||
|
|
||||||
clusters
|
clusters
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
|
||||||
let dots: u32 = 10000;
|
|
||||||
let side_length: f32 = 10000.0;
|
|
||||||
let points: Vec<Point<f32>> = random_points((0.0, 0.0), side_length, dots);
|
|
||||||
println!("Generated {:#?} random dots", dots);
|
|
||||||
let triangles_indices: Vec<usize> = delaunay(&points);
|
|
||||||
println!("Generated Delaunay triangulation");
|
|
||||||
|
|
||||||
let geometry_data: GeometryData = preprocess(&points, &triangles_indices, 0);
|
|
||||||
|
|
||||||
// Define minimum area and minimum distance for delfin function
|
|
||||||
let min_area: f32 = 1000.0; // threshold for voidness
|
|
||||||
let min_distance: f32 = 200.0; // threshold for minimum distance
|
|
||||||
|
|
||||||
// Parameters for DTSCAN
|
|
||||||
let min_pts: usize = 5; // threshold for minimum number of points
|
|
||||||
let max_closeness: f32 = 100.5; // threshold for maximum closeness
|
|
||||||
|
|
||||||
// Execute delfin function with the generated GeometryData
|
|
||||||
let void_polygons: Vec<HashSet<usize>> = delfin(&geometry_data, min_area, min_distance);
|
|
||||||
println!("Found {:#?} Voids", void_polygons.len());
|
|
||||||
|
|
||||||
// Execute DTSCAN with the prepared data
|
|
||||||
let clusters: Vec<Vec<usize>> = dtscan(&geometry_data, min_pts, max_closeness);
|
|
||||||
println!("Found {:#?} Attractors", clusters.len());
|
|
||||||
}
|
|
||||||
31
tests/test.rs
Normal file
31
tests/test.rs
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
use geo::Point;
|
||||||
|
use std::collections::{HashSet};
|
||||||
|
use xenobalanus::{delaunay, random_points, preprocess, dtscan, delfin, GeometryData};
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test() {
|
||||||
|
let dots: u32 = 10000;
|
||||||
|
let side_length: f32 = 10000.0;
|
||||||
|
let points: Vec<Point<f32>> = random_points((0.0, 0.0), side_length, dots);
|
||||||
|
println!("Generated {:#?} random dots", dots);
|
||||||
|
let triangles_indices: Vec<usize> = delaunay(&points);
|
||||||
|
println!("Generated Delaunay triangulation");
|
||||||
|
|
||||||
|
let geometry_data: GeometryData = preprocess(&points, &triangles_indices, 0);
|
||||||
|
|
||||||
|
// Define minimum area and minimum distance for delfin function
|
||||||
|
let min_area: f32 = 1000.0; // threshold for voidness
|
||||||
|
let min_distance: f32 = 200.0; // threshold for minimum distance
|
||||||
|
|
||||||
|
// Parameters for DTSCAN
|
||||||
|
let min_pts: usize = 5; // threshold for minimum number of points
|
||||||
|
let max_closeness: f32 = 100.5; // threshold for maximum closeness
|
||||||
|
|
||||||
|
// Execute delfin function with the generated GeometryData
|
||||||
|
let void_polygons: Vec<HashSet<usize>> = delfin(&geometry_data, min_area, min_distance);
|
||||||
|
println!("Found {:#?} Voids", void_polygons.len());
|
||||||
|
|
||||||
|
// Execute DTSCAN with the prepared data
|
||||||
|
let clusters: Vec<Vec<usize>> = dtscan(&geometry_data, min_pts, max_closeness);
|
||||||
|
println!("Found {:#?} Attractors", clusters.len());
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue