File: test_graph.knn.R

package info (click to toggle)
r-cran-igraph 1.0.1-1%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 18,232 kB
  • sloc: ansic: 173,538; cpp: 19,365; fortran: 4,550; yacc: 1,164; tcl: 931; lex: 484; makefile: 149; sh: 9
file content (42 lines) | stat: -rw-r--r-- 1,362 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

context("knn")

test_that("knn works", {
  library(igraph)
  set.seed(42)

  ## Some trivial ones
  g <- make_ring(10)
  expect_that(knn(g), equals(list(knn=rep(2,10), knnk=c(NaN, 2))))

  g2 <- make_star(10)
  expect_that(knn(g2), equals(list(knn=c(1, rep(9,9)),
                                         knnk=c(9, rep(NaN, 7), 1))))

  ## A scale-free one, try to plot 'knnk'
  g3 <- simplify(sample_pa(1000, m=5))
  r3 <- knn(g3)
  expect_that(r3$knn[43], equals(46))
  expect_that(r3$knn[1000], equals(192.4))
  expect_that(r3$knnk[100], equals(18.78))
  expect_that(length(r3$knnk), equals(359))
  
  ## A random graph
  g4 <- sample_gnp(1000, p=5/1000)
  r4 <- knn(g4)
  expect_that(r4$knn[1000], equals(20/3))
  expect_that(length(r4$knnk), equals(15))
  expect_that(r4$knnk[12], equals(19/3))

  ## A weighted graph
  g5 <- make_star(10)
  E(g5)$weight <- seq(ecount(g5))
  r5 <- knn(g5)
  expect_that(r5, equals(structure(list(knn = c(1, 45, 22.5, 15,
                                          11.25, 9, 7.5, 6.42857142857143,
                                          5.625, 5), knnk =
                                        c(14.1448412698413, NaN, NaN,
                                          NaN, NaN, NaN, NaN, NaN,
                                          1)), .Names = c("knn",
                                                 "knnk")) ))
})