tests/testthat/test_nng_clustering_types.R

# ==============================================================================
# scclust for R -- R wrapper for the scclust library
# https://github.com/fsavje/scclust-R
#
# Copyright (C) 2016-2017  Fredrik Savje -- http://fredriksavje.com
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/
# ==============================================================================

library(scclust)
context("nng_clustering_types")

source("config.R", local = TRUE)
source("../replica/replica_findseed.R", local = TRUE)
source("../replica/replica_make_nng.R", local = TRUE)
source("../replica/replica_nng.R", local = TRUE)
source("utils_nng.R", local = TRUE)


test_that("`nng_clustering_types` returns correct output", {
  skip_if_not(!compiled_with_stable_nng, "Only run this when scclust is *not* compiled with the -DSCC_STABLE_NNG flag.")
  skip_if_not(!compiled_with_stable_findseed, "Only run this when scclust is *not* compiled with the -DSCC_STABLE_FINDSEED flag.")

  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 5L,
                                 "lexical",
                                 "ignore",
                                 NULL,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "lexical",
                                 "ignore",
                                 NULL,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 3L, "1" = 3L, "2" = 3L, "3" = 3L),
                                 12L,
                                 "lexical",
                                 "ignore",
                                 NULL,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 0L),
                                 10L,
                                 "lexical",
                                 "ignore",
                                 NULL,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 5L,
                                 "inwards_order",
                                 "ignore",
                                 NULL,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "inwards_order",
                                 "ignore",
                                 NULL,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 5L,
                                 "exclusion_order",
                                 "ignore",
                                 NULL,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "exclusion_order",
                                 "ignore",
                                 NULL,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 5L,
                                 "lexical",
                                 "ignore",
                                 NULL,
                                 primary_data_points,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "lexical",
                                 "ignore",
                                 NULL,
                                 primary_data_points,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 5L,
                                 "inwards_order",
                                 "ignore",
                                 NULL,
                                 primary_data_points,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "inwards_order",
                                 "ignore",
                                 NULL,
                                 primary_data_points,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 5L,
                                 "exclusion_order",
                                 "ignore",
                                 NULL,
                                 primary_data_points,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "exclusion_order",
                                 "ignore",
                                 NULL,
                                 primary_data_points,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 5L,
                                 "lexical",
                                 "ignore",
                                 type_test_radius,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "lexical",
                                 "ignore",
                                 type_test_radius,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 0L),
                                 10L,
                                 "lexical",
                                 "ignore",
                                 type_test_radius,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 5L,
                                 "inwards_order",
                                 "ignore",
                                 type_test_radius,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "inwards_order",
                                 "ignore",
                                 type_test_radius,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 5L,
                                 "exclusion_order",
                                 "ignore",
                                 type_test_radius,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "exclusion_order",
                                 "ignore",
                                 type_test_radius,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 5L,
                                 "lexical",
                                 "ignore",
                                 type_test_radius,
                                 primary_data_points,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "lexical",
                                 "ignore",
                                 type_test_radius,
                                 primary_data_points,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 5L,
                                 "inwards_order",
                                 "ignore",
                                 type_test_radius,
                                 primary_data_points,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "inwards_order",
                                 "ignore",
                                 type_test_radius,
                                 primary_data_points,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 5L,
                                 "exclusion_order",
                                 "ignore",
                                 type_test_radius,
                                 primary_data_points,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "exclusion_order",
                                 "ignore",
                                 type_test_radius,
                                 primary_data_points,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "lexical",
                                 "closest_assigned",
                                 NULL,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "lexical",
                                 "closest_seed",
                                 NULL,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "lexical",
                                 "estimated_radius_closest_seed",
                                 NULL,
                                 NULL,
                                 "ignore",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "lexical",
                                 "ignore",
                                 NULL,
                                 primary_data_points,
                                 "closest_assigned",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "lexical",
                                 "ignore",
                                 NULL,
                                 primary_data_points,
                                 "closest_seed",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "lexical",
                                 "ignore",
                                 NULL,
                                 primary_data_points,
                                 "estimated_radius_closest_seed",
                                 NULL)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "lexical",
                                 "ignore",
                                 NULL,
                                 primary_data_points,
                                 "closest_assigned",
                                 test_radius)
  test_nng_types_against_replica(test_distances1,
                                 types1,
                                 c("0" = 1L, "1" = 2L, "2" = 1L, "3" = 1L),
                                 10L,
                                 "lexical",
                                 "ignore",
                                 NULL,
                                 primary_data_points,
                                 "closest_seed",
                                 test_radius)
})
fsavje/scclust-R documentation built on Jan. 5, 2024, 2:34 a.m.