lib, rename, test (broken)

This commit is contained in:
randogoth 2024-03-26 11:00:28 +02:00
parent 59b29bb678
commit 3bddd780e5
4 changed files with 59 additions and 53 deletions

46
Cargo.lock generated
View file

@ -31,9 +31,9 @@ dependencies = [
[[package]]
name = "autocfg"
version = "1.1.0"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
[[package]]
name = "bytemuck"
@ -391,9 +391,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
[[package]]
name = "rayon"
version = "1.9.0"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
dependencies = [
"either",
"rayon-core",
@ -458,7 +458,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.53",
"syn 2.0.55",
]
[[package]]
@ -476,9 +476,9 @@ dependencies = [
[[package]]
name = "smallvec"
version = "1.13.1"
version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
name = "spade"
@ -524,28 +524,15 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.53"
version = "2.0.55"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "triturus"
version = "0.1.0"
dependencies = [
"delaunator",
"geo",
"geo-types",
"itertools 0.12.1",
"rand",
"rayon",
"statrs",
]
[[package]]
name = "typenum"
version = "1.17.0"
@ -580,6 +567,19 @@ dependencies = [
"safe_arch",
]
[[package]]
name = "xenobalanus"
version = "0.1.1"
dependencies = [
"delaunator",
"geo",
"geo-types",
"itertools 0.12.1",
"rand",
"rayon",
"statrs",
]
[[package]]
name = "zerocopy"
version = "0.7.32"
@ -597,5 +597,5 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.53",
"syn 2.0.55",
]

View file

@ -1,9 +1,11 @@
[package]
name = "triturus"
version = "0.1.0"
name = "xenobalanus"
version = "0.1.1"
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]
delaunator = "1.0.2"

View file

@ -285,31 +285,4 @@ fn dtscan(
}
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
View 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());
}