File: test_graph.eigen.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 (26 lines) | stat: -rw-r--r-- 686 bytes parent folder | download | duplicates (5)
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

context("Eigenproblems")

test_that("spectrum works for symmetric matrices", {
  library(igraph)
  set.seed(42)

  std <- function(x) {
    x <- zapsmall(x)
    apply(x, 2, function(col) {
      if (any(col < 0) && col[which(col != 0)[1]] < 0) { -col } else { col }
    })
  }
  
  g <- sample_gnp(50, 5/50)
  e0 <- eigen(as_adj(g, sparse=FALSE))

  e1 <- spectrum(g, which=list(howmany=4, pos="LA"))
  expect_that(e0$values[1:4], equals(e1$values))
  expect_that(std(e0$vectors[,1:4]), equals(std(e1$vectors)))

  e2 <- spectrum(g, which=list(howmany=4, pos="SA"))
  expect_that(e0$values[50:47], equals(e2$values))
  expect_that(std(e0$vectors[,50:47]), equals(std(e2$vectors)))

})