Algorithm-DBSCAN
view release on metacpan or search on metacpan
t/01-clustering.t view on Meta::CPAN
use warnings;
use 5.10.1;
use Test::More;
use File::Slurp;
BEGIN { chdir 't' if -d 't' }
use_ok( 'Algorithm::DBSCAN' ) || print "Bail out!\n";
sub validate_answer {
my ($dbscan, $results_file) = @_;
my %clusters;
foreach my $id (keys %{$dbscan->{dataset}}) {
my $point = $dbscan->{dataset}->{$id};
$clusters{$point->{cluster_id}}{$point->{point_id}}++;
}
#die Dumper(\%clusters);
t/01-clustering.t view on Meta::CPAN
my $dataset = Algorithm::DBSCAN::Dataset->new();
my @lines = split(/\n/, read_file('test_datasets/dbscan_test_dataset_1.txt'));
foreach my $line (@lines) {
$dataset->AddPoint(new Algorithm::DBSCAN::Point(split(/\s+/, $line)));
}
my $dbscan = Algorithm::DBSCAN->new($dataset, 3.1 * 3.1, 6);
$dbscan->FindClusters();
$dbscan->PrintClustersShort();
my $result = validate_answer($dbscan, 'test_datasets/dbscan_test_dataset_1_result.txt');
ok( $result eq '1', 'Clustering of dataset 1 ok' );
done_testing;
t/02-module-synopsis-code.t view on Meta::CPAN
use warnings;
use 5.10.1;
use Test::More;
use File::Slurp;
BEGIN { chdir 't' if -d 't' }
use_ok( 'Algorithm::DBSCAN' ) || print "Bail out!\n";
sub validate_answer {
my ($dbscan, $results_file) = @_;
my %clusters;
foreach my $id (keys %{$dbscan->{dataset}}) {
my $point = $dbscan->{dataset}->{$id};
$clusters{$point->{cluster_id}}{$point->{point_id}}++;
}
#die Dumper(\%clusters);
t/02-module-synopsis-code.t view on Meta::CPAN
my $dataset = Algorithm::DBSCAN::Dataset->new();
my @lines = split(/\n\s+/, $points_data_file);
foreach my $line (@lines) {
$dataset->AddPoint(new Algorithm::DBSCAN::Point(split(/\s+/, $line)));
}
my $dbscan = Algorithm::DBSCAN->new($dataset, 4 * 4, 2);
$dbscan->FindClusters();
my $result = validate_answer($dbscan, 'test_datasets/dbscan_test_dataset_module_synopsis_result.txt');
ok( $result eq '1', 'Clustering of dataset module-synopsis-code ok' );
done_testing;
t/03-region-index.t view on Meta::CPAN
use warnings;
use 5.10.1;
use Test::More;
use File::Slurp;
BEGIN { chdir 't' if -d 't' }
use_ok( 'Algorithm::DBSCAN' ) || print "Bail out!\n";
sub validate_answer {
my ($dbscan, $results_file) = @_;
my %clusters;
foreach my $id (keys %{$dbscan->{dataset}}) {
my $point = $dbscan->{dataset}->{$id};
$clusters{$point->{cluster_id}}{$point->{point_id}}++;
}
#die Dumper(\%clusters);
t/03-region-index.t view on Meta::CPAN
my @lines = split(/\n/, read_file('test_datasets/dbscan_test_dataset_2.txt'));
foreach my $line (@lines) {
$dataset->AddPoint(new Algorithm::DBSCAN::Point(split(/\s+/, $line)));
}
my $dbscan = Algorithm::DBSCAN->new($dataset, 4 * 4, 2);
$dbscan->UseRegionIndex('test_datasets/region_index_dataset_2.txt');
$dbscan->FindClusters();
$dbscan->PrintClustersShort();
my $result = validate_answer($dbscan, 'test_datasets/dbscan_test_dataset_2_result.txt');
ok( $result eq '1', 'Clustering of dataset 2 with usage of region index OK' );
done_testing;
( run in 0.250 second using v1.01-cache-2.11-cpan-a5abf4f5562 )