Running 'compute.animation_tests.R' [3s]
  Running 'd3_animation_tests.R' [5s]
  Running 'effects_tests.R' [6s]
  Running 'filmstrip_tests.R' [149s]
  Running 'layout_tests.R' [145s]
  Running 'networkAnimationTest.R' [2s]
  Running 'proximity.timeline_test.R' [147s]
  Running 'render.animation_test.R' [100s]
  Running 'timePrisimTest.R' [2s]
  Running 'timeline_test.R' [5s]
  Running 'transmissionTimelineTests.R' [2s]
  Running 'weighttest.R' [95s]
  Running 'writeFormatTests.R' [1s]
Running the tests in 'tests/filmstrip_tests.R' failed.
Complete output:
  > #  part of the Statnet suite
  > #  of packages for network analysis, http://statnet.org .
  > #
  > #  This software is distributed under the GPL-3 license.  It is free,
  > #  open source, and has the attribution requirements (GPL Section 7) at
  > #  http://statnet.org/attribution
  > #
  > #  Copyright 2012-2013 Statnet Commons
  > #######################################################################
  > 
  > require(ndtv)
  Loading required package: ndtv
  Loading required package: network
  
  'network' 1.18.2 (2023-12-04), part of the Statnet Project
  * 'news(package="network")' for changes since last version
  * 'citation("network")' for citation information
  * 'https://statnet.org' for help, support, and other information
  
  Loading required package: networkDynamic
  
  'networkDynamic' 0.11.4 (2023-12-10?), part of the Statnet Project
  * 'news(package="networkDynamic")' for changes since last version
  * 'citation("networkDynamic")' for citation information
  * 'https://statnet.org' for help, support, and other information
  
  Loading required package: animation
  Loading required package: sna
  Loading required package: statnet.common
  
  Attaching package: 'statnet.common'
  
  The following objects are masked from 'package:base':
  
      attr, order
  
  sna: Tools for Social Network Analysis
  Version 2.7-2 created on 2023-12-05.
  copyright (c) 2005, Carter T. Butts, University of California-Irvine
   For citation information, type citation("sna").
   Type help(package="sna") to get started.
  
  
  'ndtv' 0.13.3 (2022-11-20), part of the Statnet Project
  * 'news(package="ndtv")' for changes since last version
  * 'citation("ndtv")' for citation information
  * 'https://statnet.org' for help, support, and other information
  
  > require(testthat)
  Loading required package: testthat
  > 
  > # ------- tests for filmstrip funciton -----
  > data(stergm.sim.1)
  > 
  > #try a default
  > filmstrip(stergm.sim.1)
  No coordinate information found in network, running compute.animation
  > 
  > # check that par was reset back to original
  > expect_equal(par()$mfcol,c(1,1))
  > 
  > # try setting mfcol and exporting a wide version to a pdf
  > pdf('filmstripTest.pdf',width=7,height=2)
  > filmstrip(stergm.sim.1,frames=5,mfrow=c(1,5),displaylabels=FALSE)
  No coordinate information found in network, running compute.animation
  > dev.off()
  pdf 
    2 
  > 
  > 
  > # try pre-computed coords
  > 
  > data(stergm.sim.1)
  > compute.animation(stergm.sim.1,slice.par=list(start=5,end=15,interval=1, aggregate.dur=1,rule='latest'))
  Calculating layout for network slice from time  5 to 6
  Calculating layout for network slice from time  6 to 7
  Calculating layout for network slice from time  7 to 8
  Calculating layout for network slice from time  8 to 9
  Calculating layout for network slice from time  9 to 10
  Calculating layout for network slice from time  10 to 11
  Calculating layout for network slice from time  11 to 12
  Calculating layout for network slice from time  12 to 13
  Calculating layout for network slice from time  13 to 14
  Calculating layout for network slice from time  14 to 15
  Calculating layout for network slice from time  15 to 16
  > filmstrip(stergm.sim.1,frames=4)
  > 
  > # try overriding pre-computed
  > compute.animation(stergm.sim.1,slice.par=list(start=5,end=15,interval=5, aggregate.dur=1,rule='latest'))
  Calculating layout for network slice from time  5 to 6
  Calculating layout for network slice from time  10 to 11
  Calculating layout for network slice from time  15 to 16
  > 
  > proc.time()
     user  system elapsed 
     2.70    0.31    2.98 
Running the tests in 'tests/layout_tests.R' failed.
Complete output:
  > #  part of the Statnet suite
  > #  of packages for network analysis, http://statnet.org .
  > #
  > #  This software is distributed under the GPL-3 license.  It is free,
  > #  open source, and has the attribution requirements (GPL Section 7) at
  > #  http://statnet.org/attribution
  > #
  > #  Copyright 2012-2014 Statnet Commons
  > #######################################################################
  > 
  > # tests for the network animation layout functions
  > require(ndtv)
  Loading required package: ndtv
  Loading required package: network
  
  'network' 1.18.2 (2023-12-04), part of the Statnet Project
  * 'news(package="network")' for changes since last version
  * 'citation("network")' for citation information
  * 'https://statnet.org' for help, support, and other information
  
  Loading required package: networkDynamic
  
  'networkDynamic' 0.11.4 (2023-12-10?), part of the Statnet Project
  * 'news(package="networkDynamic")' for changes since last version
  * 'citation("networkDynamic")' for citation information
  * 'https://statnet.org' for help, support, and other information
  
  Loading required package: animation
  Loading required package: sna
  Loading required package: statnet.common
  
  Attaching package: 'statnet.common'
  
  The following objects are masked from 'package:base':
  
      attr, order
  
  sna: Tools for Social Network Analysis
  Version 2.7-2 created on 2023-12-05.
  copyright (c) 2005, Carter T. Butts, University of California-Irvine
   For citation information, type citation("sna").
   Type help(package="sna") to get started.
  
  
  'ndtv' 0.13.3 (2022-11-20), part of the Statnet Project
  * 'news(package="ndtv")' for changes since last version
  * 'citation("ndtv")' for citation information
  * 'https://statnet.org' for help, support, and other information
  
  > require(testthat)
  Loading required package: testthat
  > # ---- test using a dynamic attribute for layout positions ----
  > 
  > # check what happens if coords not defined
  > nd <-as.networkDynamic(network.initialize(3))
  > expect_error(compute.animation(nd,animation.mode='useAttribute'), 'unable to find vertex attribute x containing x')
  No slice.par found, using
  slice parameters:
    start:0
    end:0
    interval:1
    aggregate.dur:1
    rule:latest
  
  Calculating layout for network slice from time  0 to 1
  Warning message:
  In guessSlicePar(net) :
    network does not appear to have any dynamic information. Using start=0 end=1
  > 
  > #check when coordinates specified
  > nd <-network.initialize(3)
  > activate.vertex.attribute(nd,'x',c(1,2,3),at=0)
  > activate.vertex.attribute(nd,'y',c(0,0,0),at=0)
  > activate.vertex.attribute(nd,'x',c(2,3,4),at=1)
  > activate.vertex.attribute(nd,'y',c(1,1,1),at=1)
  > activate.vertex.attribute(nd,'x',c(3,4,5),at=2)
  > activate.vertex.attribute(nd,'y',c(2,2,2),at=2)
  > 
  > compute.animation(nd,animation.mode='useAttribute',layout.par=list(x='x',y='y'))
  No slice.par found, using
  slice parameters:
    start:0
    end:2
    interval:1
    aggregate.dur:1
    rule:latest
  
  Calculating layout for network slice from time  0 to 1
  Calculating layout for network slice from time  1 to 2
  Calculating layout for network slice from time  2 to 3
  > expect_equal(unlist(get.vertex.attribute(nd,'x.active',unlist=FALSE)[[1]][[1]]),1:3)
  > 
  > 
  > # check what happens if coords missing for time period
  > nd <-network.initialize(3)
  > activate.vertex.attribute(nd,'x',c(1,2,3),at=0)
  > activate.vertex.attribute(nd,'y',c(0,0,0),at=0)
  > activate.vertex.attribute(nd,'x',c(2,3,4),at=3)
  > activate.vertex.attribute(nd,'y',c(1,1,1),at=3)
  > activate.vertex.attribute(nd,'x',c(3,4,5),at=4)
  > activate.vertex.attribute(nd,'y',c(2,2,2),at=4)
  > expect_error(compute.animation(nd,animation.mode='useAttribute',layout.par=list(x='x',y='y')),'coordinates must be numeric')
  No slice.par found, using
  slice parameters:
    start:0
    end:4
    interval:1
    aggregate.dur:1
    rule:latest
  
  Calculating layout for network slice from time  0 to 1
  Calculating layout for network slice from time  1 to 2
  > 
  > # ------ test layout.distance function ----
  > test<-network.initialize(4)
  > add.edges(test,tail=1:2,head=2:3)
  > expect_equal(layout.distance(test),matrix(c(0,1,2,2,1,0,1,2,2,1,0,2,2,2,2,0),ncol=4,byrow=TRUE), info='test layout distance')
  > expect_equal(layout.distance(test,.5),matrix(c(0,1,2,.5, 1,0,1,.5, 2,1,0,.5, .5,.5,.5,0),ncol=4,byrow=TRUE),info='test inf replace value for layout distance')
  > 
  > set.edge.attribute(test,'weight',c(3,6))
  > expect_equal(layout.distance(test,weight.attr='weight'),matrix(c(0, 6, 9, 2, 6, 0, 3, 2, 9, 3, 0, 2, 2, 2, 2, 0),ncol=4,byro=TRUE),info='test layout distance with weights')
  > 
  > expect_equal(layout.distance(test,weight.attr='weight',weight.dist=TRUE),matrix(c(0, 3, 9, 2, 3, 0, 6, 2, 9, 6, 0, 2, 2, 2, 2, 0),ncol=4,byro=TRUE),info='test layout distance with weights with weights as distance')
  > 
  > # test symetrization
  > test_that("symetrization of directed network according to weight.dist",{
  +   test<-network.initialize(2,directed=TRUE)
  +   test[1,2]<-1
  +   test[2,1]<-1
  +   set.edge.attribute(test,'count',value=c(1,2))
  +   expect_equal(as.vector(layout.distance(test,weight.attr='count',weight.dist=TRUE)),c(0,1,1,0))
  +   expect_equal(as.vector(layout.distance(test,weight.attr='count',weight.dist=FALSE)),c(0,2,2,0))
  + })
  Test passed 🥳
  > 
  > # ----- test layout centering ----
  > 
  > pos<-matrix(c(1:5,1:5),ncol=2,byrow=FALSE)
  > 
  > # center on 0,0
  > expect_equal(layout.center(pos,xlim=c(0,0),ylim=c(0,0)),pos-3)
  > 
  > # center in 100 px square
  > expect_equal(layout.center(pos,xlim=c(0,100),ylim=c(0,100)),matrix(c(48, 49, 50, 51, 52, 48, 49, 50, 51, 52),ncol=2))
  > 
  > 
  > # ----- test layout zooming ------
  > 
  > pos<-matrix(c(1:5,1:5),ncol=2,byrow=FALSE)
  > 
  > # factor 0 does nothing
  > expect_equal(ndtv:::layout.zoomfactor(pos,0),pos)
  > 
  > # factor 10 (scale at origin)
  > expect_equal(ndtv:::layout.zoomfactor(pos,10),pos*10)
  > 
  > # factor 10, scale at 1,1
  > expect_equal(ndtv:::layout.zoomfactor(pos,10,center=c(1,1)),(pos*10)-9)
  > 
  > # zoom on set of vertices
  > expect_equal(ndtv:::layout.zoomfactor(pos,2,v=2:3),matrix(c(-0.5, 1.5, 3.5, 5.5, 7.5, -0.5, 1.5, 3.5, 5.5, 7.5),ncol=2))
  > 
  > # ----- graphviz tests -----
  > 
  > # graphviz layout test
  > # set up a basic tree structure
  > tree<-network.initialize(21)
  > add.edges.active(tree,head=1,tail=2,onset=0,terminus=5)
  > add.edges.active(tree,head=c(2,2),tail=c(3,4),onset=1,terminus=5)
  > add.edges.active(tree,head=c(3,3,3,4,4),tail=5:9,onset=2,terminus=5)
  > add.edges.active(tree,head=c(6,6,8,9,9),tail=10:14,onset=3,terminus=5)
  > add.edges.active(tree,head=c(10,10,12,12,12,14,14),tail=15:21,onset=4,terminus=5)
  > 
  > # the tests below are contional on graphviz being installed on the system
  > if (ndtv:::check.graphviz()){
  + #plot.network(tree,coord=network.layout.animate.Graphviz(tree))
  + coords<-network.layout.animate.Graphviz(tree)
  + expect_equal(nrow(coords),21)
  + expect_equal(ncol(coords),2)
  + 
  + # check verbose
  + network.layout.animate.Graphviz(tree,verbose=FALSE)
  + 
  + # check using layout par to set differnet engines
  + network.layout.animate.Graphviz(tree,layout.par=list(gv.engine='dot'))
  + 
  + # check passing in gv.args
  + network.layout.animate.Graphviz(tree,layout.par=list(gv.engine='dot',gv.args='-Grankdir=LR'))
  + 
  + # check passing bad gv.args
  + expect_error(network.layout.animate.Graphviz(tree,layout.par=list(gv.args='-Xhelloworld'),verbose=FALSE),regexp = 'Unable to parse coordinates')
  + 
  + # test passing a weighted network into neato
  + wtest<-network.initialize(5)
  + add.edges.active(wtest,tail = 1,head=2,onset=0,terminus=10)
  + add.edges.active(wtest,tail = 2,head=3,onset=1,terminus=10)
  + add.edges.active(wtest,tail = 3,head=4,onset=2,terminus=10)
  + activate.edge.attribute(wtest,'len',0.5,onset=0,terminus=5,e = 1)
  + activate.edge.attribute(wtest,'len',2.5,onset=5,terminus=10,e=1)
  + activate.edge.attribute(wtest,'len',2,onset=1,terminus=5,e = 2)
  + activate.edge.attribute(wtest,'len',1,onset=5,terminus=10,e=2)
  + activate.edge.attribute(wtest,'len',5,onset=2,terminus=5,e = 3)
  + activate.edge.attribute(wtest,'len',0.1,onset=5,terminus=10,e=3)
  + 
  + # test rendering using the gv 'len' attrigute
  + compute.animation(wtest,animation.mode = 'Graphviz',layout.par=list(gv.len.mode='gv.edge.len',gv.edge.attrs='len'))
  + #render.animation(wtest,edge.lwd='len')
  + 
  + # test passing in matrix of distances
  + compute.animation(wtest,animation.mode = 'Graphviz',weight.attr='len',layout.par=list(gv.engine='neato',gv.len.mode='ndtv.distance.matrix'))
  + 
  + # test using default dist to generate a matrix
  + compute.animation(wtest,animation.mode = 'Graphviz',default.dist=5)
  + 
  + # test bad weight mode
  + expect_error(compute.animation(wtest,animation.mode = 'Graphviz',layout.par=list(gv.len.mode='bla')))
  + 
  + }  else {
  + # graphivz not installed, so check fallback to kk
  + warning("graphviz layout tests skipped because graphviz not installed on system")
  + expect_warning(coords<-network.layout.animate.Graphviz(tree),'KamadaKawai')
  + expect_equal(nrow(coords),21)
  + expect_equal(ncol(coords),2)
  + 
  + }
  Warning messages:
  1: In ndtv:::check.graphviz() :
    The Graphviz neato utility does not appear to be installed on this system. See ?install.graphviz for more information
  2: graphviz layout tests skipped because graphviz not installed on system 
  > 
  > # ------------- MDSJ tests -------
  > # COMMENTING BECAUSE SKIP_ON_CRAN_STOPPED_WORKING
  > # test_that("MDSJ algorithms",{
  > # these need to be optionally enabled because they won't run if java and mdsj library not installed
  > # skip_on_cran()
  > # if (!is.null(ndtv:::check.mdsj()) ){
  > #   wtest<-network.initialize(5)
  > #   add.edges.active(wtest,tail = 1,head=2,onset=0,terminus=10)
  > #   add.edges.active(wtest,tail = 2,head=3,onset=1,terminus=10)
  > #   add.edges.active(wtest,tail = 3,head=4,onset=2,terminus=10)
  > #   activate.edge.attribute(wtest,'len',0.5,onset=0,terminus=5,e = 1)
  > #   activate.edge.attribute(wtest,'len',2.5,onset=5,terminus=10,e=1)
  > #   activate.edge.attribute(wtest,'len',2,onset=1,terminus=5,e = 2)
  > #   activate.edge.attribute(wtest,'len',1,onset=5,terminus=10,e=2)
  > #   activate.edge.attribute(wtest,'len',5,onset=2,terminus=5,e = 3)
  > #   activate.edge.attribute(wtest,'len',0.1,onset=5,terminus=10,e=3)
  > #   
  > #   compute.animation(wtest,animation.mode = 'MDSJ',weight.attr='len')
  > # 
  > #  # dests for changing dimensions of MDSJ layout
  > # test<-network.initialize(10)
  > # dim2mat<-network.layout.animate.MDSJ(test,layout.par=list(dimensions=2))
  > # expect_equal(dim(dim2mat),c(10,2))
  > # dim1mat<-network.layout.animate.MDSJ(test,layout.par=list(dimensions=1))
  > # expect_equal(dim(dim1mat),c(10,1))
  > # }
  > # })
  > 
  > 
  > 
  > 
  > 
  > 
  > proc.time()
     user  system elapsed 
     2.25    0.29    2.51 
Running the tests in 'tests/proximity.timeline_test.R' failed.
Complete output:
  > # some tests tfor the proximity.timeline function
  > require(ndtv)
  Loading required package: ndtv
  Loading required package: network
  
  'network' 1.18.2 (2023-12-04), part of the Statnet Project
  * 'news(package="network")' for changes since last version
  * 'citation("network")' for citation information
  * 'https://statnet.org' for help, support, and other information
  
  Loading required package: networkDynamic
  
  'networkDynamic' 0.11.4 (2023-12-10?), part of the Statnet Project
  * 'news(package="networkDynamic")' for changes since last version
  * 'citation("networkDynamic")' for citation information
  * 'https://statnet.org' for help, support, and other information
  
  Loading required package: animation
  Loading required package: sna
  Loading required package: statnet.common
  
  Attaching package: 'statnet.common'
  
  The following objects are masked from 'package:base':
  
      attr, order
  
  sna: Tools for Social Network Analysis
  Version 2.7-2 created on 2023-12-05.
  copyright (c) 2005, Carter T. Butts, University of California-Irvine
   For citation information, type citation("sna").
   Type help(package="sna") to get started.
  
  
  'ndtv' 0.13.3 (2022-11-20), part of the Statnet Project
  * 'news(package="ndtv")' for changes since last version
  * 'citation("ndtv")' for citation information
  * 'https://statnet.org' for help, support, and other information
  
  > require(testthat)
  Loading required package: testthat
  > 
  > test<-network.initialize(10)
  > add.edges.active(test,head=1:9,tail=2:10,onset=0,terminus=10)
  > add.edges.active(test,head=1,tail=3,onset=1,terminus=2)
  > proximity.timeline(test)
  collapsing slice networks ...
  computing vertex positions using 1D isoMDS layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
  rendering splines for each vertex ...
  > 
  > data(McFarland_cls33_10_16_96)
  > proximity.timeline(cls33_10_16_96,onsets=seq(0,45,5),termini=seq(2.5,47.5,5),vertex.cex=(cls33_10_16_96%v%'type'=='instructor')*4+1,labels.at=45)
  collapsing slice networks ...
  computing vertex positions using 1D isoMDS layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
  rendering splines for each vertex ...
  > 
  > # test algorithm types
  > # COMMENTING BECAUSE SKIP ON CRAN NOT WORKING
  > # test_that("algorithms work",{
  > # # isoMDS is default, so already tested
  > # proximity.timeline(cls33_10_16_96,onsets=seq(0,45,5),termini=seq(2.5,47.5,5),mode='sammon')
  > # proximity.timeline(cls33_10_16_96,onsets=seq(0,45,5),termini=seq(2.5,47.5,5),mode='cmdscale')
  > # proximity.timeline(cls33_10_16_96,onsets=seq(0,45,5),termini=seq(2.5,47.5,5),mode='gvNeato')
  > # # only check MDSJ if allready installed (and not on CRAN)
  > # skip_on_cran()
  > # has.mdsj<-ndtv:::check.mdsj(ask=FALSE)
  > # if(!is.null(has.mdsj)){
  > # proximity.timeline(cls33_10_16_96,onsets=seq(0,45,5),termini=seq(2.5,47.5,5),mode='MDSJ')
  > # }
  > # 
  > # })
  > 
  > # test grid option and verbose options
  > proximity.timeline(cls33_10_16_96,onsets=seq(0,10,5),termini=seq(2.5,12.5,5),grid=FALSE,verbose=FALSE)
  > 
  > # this is too slow for automated test
  > #data(msm.sim)
  > #proximity.timeline(msm.sim,start=0,end=10,mode='sammon',vertex.col=ifelse(msm.sim%v%'race'==1,rgb(0,.5,0,0.2),rgb(0,0,.5,0.2)))
  > 
  > # sampson monestary
  > #require(ergm)
  > #data(samplk)
  > #sampdyn<-networkDynamic(network.list=list(samplk1,samplk2,samplk3))
  > #proximity.timeline(sampdyn,labels.at=2.5,vertex.col='group',mode='sammon',default.dist=1)
  > 
  > # tests for chunks missing data
  > # windsurfers  
  > data(windsurfers)
  > proximity.timeline(windsurfers,start=20,end=31,vertex.col=ifelse(windsurfers%v%'group1','#000055ff','#55555555'),grid=F,splines=.5,mode='sammon')
  collapsing slice networks ...
  computing vertex positions using 1D sammon layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
    computing positions for slice 11
  rendering splines for each vertex ...
  > 
  > # check the various spline styles # spline.style=c('default','inactive.ghost','inactive.gaps','inactive.ignore','color.attribute')
  > proximity.timeline(windsurfers,start=20,end=31,vertex.col=ifelse(windsurfers%v%'group1','#000055ff','#55555555'),grid=F,splines=.5,mode='sammon',spline.style='inactive.ghost')
  collapsing slice networks ...
  computing vertex positions using 1D sammon layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
    computing positions for slice 11
  rendering splines for each vertex ...
  > proximity.timeline(windsurfers,start=20,end=31,vertex.col=ifelse(windsurfers%v%'group1','#000055ff','#55555555'),grid=F,splines=.5,mode='sammon',spline.style='inactive.gaps')
  collapsing slice networks ...
  computing vertex positions using 1D sammon layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
    computing positions for slice 11
  rendering splines for each vertex ...
  > proximity.timeline(windsurfers,start=20,end=31,vertex.col=ifelse(windsurfers%v%'group1','#000055ff','#55555555'),grid=F,splines=.5,mode='sammon',spline.style='inactive.ignore')
  collapsing slice networks ...
  computing vertex positions using 1D sammon layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
    computing positions for slice 11
  rendering splines for each vertex ...
  > proximity.timeline(windsurfers,start=20,end=31,vertex.col=ifelse(windsurfers%v%'group1','#000055ff','#55555555'),grid=F,splines=.5,mode='sammon',spline.style='color.attribute')
  collapsing slice networks ...
  computing vertex positions using 1D sammon layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
    computing positions for slice 11
  rendering splines for each vertex ...
  > 
  > expect_error(proximity.timeline(windsurfers,start=20,end=31,draw.inactive='default'),regexp ='argument has been deprecated')
  > 
  > 
  > 
  > 
  > #data(newcomb)
  > #newDyn<-networkDynamic(network.list=newcomb,onsets=c(0:7,9:14),termini=c(1:8,10:15))
  > 
  > # test changing color attributes
  > test<-network.initialize(10,directed=FALSE)
  > activate.vertex.attribute(test,'color','gray',onset=-1,terminus=100)
  > add.edges.active(test,tail=c(9,7,3),head=c(7,3,9),onset=0,terminus=6)
  > activate.vertex.attribute(test,'color','red',onset=1,terminus=100,v=5)
  > add.edges.active(test,tail=5,head=6,onset=2,terminus=5)
  > activate.vertex.attribute(test,'color','red',onset=3,terminus=100,v=6)
  > add.edges.active(test,tail=6,head=1,onset=4,terminus=100)
  > activate.vertex.attribute(test,'color','red',onset=5,terminus=100,v=1)
  > 
  > # test tea color attribute
  > proximity.timeline(test,vertex.col='color',start=0,end=10,mode='sammon',spline.style='color.attribute',default.dist=20,labels.at=10)
  collapsing slice networks ...
  computing vertex positions using 1D sammon layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
  assuming dynamic colors
  rendering splines for each vertex ...
  > 
  > # test tea color but not using color.attribute splines
  > expect_error(proximity.timeline(test,vertex.col='color',start=0,end=10,default.dist=20,labels.at=10),regexp = "can only be used with spline.style='color.attribute'")
  collapsing slice networks ...
  computing vertex positions using 1D isoMDS layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
  > 
  > # test the static color attributes
  > proximity.timeline(test,vertex.col=1:10,start=0,end=10,mode='sammon',default.dist=20,labels.at=10) # should be a sort of rainbow
  collapsing slice networks ...
  computing vertex positions using 1D sammon layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
  rendering splines for each vertex ...
  > 
  > proximity.timeline(test,vertex.col='blue',start=0,end=10,mode='sammon',default.dist=20,labels.at=10) #all should be blue
  collapsing slice networks ...
  computing vertex positions using 1D sammon layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
  rendering splines for each vertex ...
  > 
  > # test functional color attribute
  > expect_error(proximity.timeline(test,vertex.col=function(net){ifelse(net%v%'color'=='red','yellow','green')},start=0,end=10,mode='sammon',default.dist=20,labels.at=10))
  collapsing slice networks ...
  computing vertex positions using 1D sammon layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
  > 
  > proximity.timeline(test,vertex.col=function(slice){ifelse(slice%v%'color'=='red','yellow','green')},start=0,end=10,mode='sammon',default.dist=20,labels.at=10,spline.style='color.attribute')
  collapsing slice networks ...
  computing vertex positions using 1D sammon layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
  rendering splines for each vertex ...
  > 
  > # test chain directions
  > proximity.timeline(test,start=0,end=10,default.dist=20,labels.at=10,chain.direction='forward')
  collapsing slice networks ...
  computing vertex positions using 1D isoMDS layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
  rendering splines for each vertex ...
  > proximity.timeline(test,start=0,end=10,default.dist=20,labels.at=10,chain.direction='reverse')
  collapsing slice networks ...
  computing vertex positions using 1D isoMDS layout ...
    computing positions for slice 10
    computing positions for slice 9
    computing positions for slice 8
    computing positions for slice 7
    computing positions for slice 6
    computing positions for slice 5
    computing positions for slice 4
    computing positions for slice 3
    computing positions for slice 2
    computing positions for slice 1
  rendering splines for each vertex ...
  > 
  > # test labels
  > # pass in vector of label values
  > proximity.timeline(test,start=0,end=10,labels.at=1,label=LETTERS[1:10])
  collapsing slice networks ...
  computing vertex positions using 1D isoMDS layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
  rendering splines for each vertex ...
  > test%v%'mylabel'<-LETTERS[10:20]
  > proximity.timeline(test,start=0,end=10,labels.at=1,label='mylabel')
  collapsing slice networks ...
  computing vertex positions using 1D isoMDS layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
  rendering splines for each vertex ...
  > # test showing labels at multiple times
  > proximity.timeline(test,start=0,end=10,labels.at=c(1,5,10),label='mylabel')
  collapsing slice networks ...
  computing vertex positions using 1D isoMDS layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
  rendering splines for each vertex ...
  > 
  > # test vertex.cex
  > proximity.timeline(test,start=0,end=10,vertex.cex=10)
  collapsing slice networks ...
  computing vertex positions using 1D isoMDS layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
  rendering splines for each vertex ...
  > proximity.timeline(test,start=0,end=10,vertex.cex=1:10)
  collapsing slice networks ...
  computing vertex positions using 1D isoMDS layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
  rendering splines for each vertex ...
  > test%v%'myVal'<-1:10
  > proximity.timeline(test,start=0,end=10,vertex.cex='myVal')
  collapsing slice networks ...
  computing vertex positions using 1D isoMDS layout ...
    computing positions for slice 1
    computing positions for slice 2
    computing positions for slice 3
    computing positions for slice 4
    computing positions for slice 5
    computing positions for slice 6
    computing positions for slice 7
    computing positions for slice 8
    computing positions for slice 9
    computing positions for slice 10
  rendering splines for each vertex ...
  > 
  > 
  > 
  > 
  > 
  > 
  > 
  > proc.time()
     user  system elapsed 
     4.25    0.31    4.56 
Running the tests in 'tests/render.animation_test.R' failed.
Complete output:
  > #  File tests/render.animation_test.R in package ndtv, part of the Statnet suite
  > #  of packages for network analysis, http://statnet.org .
  > #
  > #  This software is distributed under the GPL-3 license.  It is free,
  > #  open source, and has the attribution requirements (GPL Section 7) at
  > #  http://statnet.org/attribution
  > #
  > #  Copyright 2003-2013 Statnet Commons
  > #######################################################################
  > #test some functions for calculating animated layouts and exporting movies.
  > require(ndtv)
  Loading required package: ndtv
  Loading required package: network
  
  'network' 1.18.2 (2023-12-04), part of the Statnet Project
  * 'news(package="network")' for changes since last version
  * 'citation("network")' for citation information
  * 'https://statnet.org' for help, support, and other information
  
  Loading required package: networkDynamic
  
  'networkDynamic' 0.11.4 (2023-12-10?), part of the Statnet Project
  * 'news(package="networkDynamic")' for changes since last version
  * 'citation("networkDynamic")' for citation information
  * 'https://statnet.org' for help, support, and other information
  
  Loading required package: animation
  Loading required package: sna
  Loading required package: statnet.common
  
  Attaching package: 'statnet.common'
  
  The following objects are masked from 'package:base':
  
      attr, order
  
  sna: Tools for Social Network Analysis
  Version 2.7-2 created on 2023-12-05.
  copyright (c) 2005, Carter T. Butts, University of California-Irvine
   For citation information, type citation("sna").
   Type help(package="sna") to get started.
  
  
  'ndtv' 0.13.3 (2022-11-20), part of the Statnet Project
  * 'news(package="ndtv")' for changes since last version
  * 'citation("ndtv")' for citation information
  * 'https://statnet.org' for help, support, and other information
  
  > require(testthat)
  Loading required package: testthat
  > 
  > # hard to write tests since most require a human looking at the output
  > # most overall tests are included as man examples or in the packae vignette
  > # this file should be mostly unit tests for functionality
  > data(newcomb)
  > dynNew <- networkDynamic(network.list=newcomb[1:5])
  Neither start or onsets specified, assuming start=0
  Onsets and termini not specified, assuming each network in network.list should have a discrete spell of length 1
  Argument base.net not specified, using first element of network.list instead
  Created net.obs.period to describe network
   Network observation period info:
    Number of observation spells: 1 
    Maximal time range observed: 0 until 5 
    Temporal mode: discrete 
    Time unit: step 
    Suggested time increment: 1 
  > 
  > #----- render animation ------
  > # does it crash on basic example
  > # shorten time range so wont dake as long
  > dyn<-network.extract(dynNew,onset=0,terminus=3,trim.spells=TRUE) 
  > render.animation(dyn,verbose=FALSE)
  > 
  > # does replay work 
  > ani.replay()
  > 
  > # can it run and record plots without creating alist of animations
  > saveVideo(render.animation(dyn,verbose=FALSE,render.cache='none'))
  Error in system(paste(ffmpeg, "-version"), intern = TRUE) : 
    '"ffmpeg"' not found
  NULL
  Warning message:
  In saveVideo(render.animation(dyn, verbose = FALSE, render.cache = "none")) :
    The command ""ffmpeg"" is not available in your system. Please install FFmpeg or avconv first: http://ffmpeg.org/download.html
  > 
  > 
  > # does increasing tween produce different results
  > 
  > # does show.time crash if changed from default
  > render.par<-list(tween.frames=2,show.time=FALSE)
  > render.animation(dyn,render.par=render.par,verbose=FALSE)
  > 
  > # does show.stats crashed if changed from default
  > render.par<-list(tween.frames=2,show.time=TRUE,show.stats=FALSE)
  > render.animation(dyn,render.par=render.par,verbose=FALSE)
  > 
  > # can it render arbitrary plotting comands?
  > render.par=list(tween.frames=2,show.time=TRUE,show.stats=NULL,extraPlotCmds=expression(text(0,0,"SOME TEXT ON THE PLOT",col='blue')))
  > render.animation(dyn,render.par=render.par,verbose=FALSE)
  > 
  > # test workaround for 0-coord label bug #322
  > test<-network.initialize(2)
  > activate.vertex.attribute(test,'x',0,onset=0,terminus=2)
  > activate.vertex.attribute(test,'y',0,onset=0,terminus=2)
  > compute.animation(test, animation.mode='useAttribute',layout.par = list(x = "x", y = "y"),slice.par=list(start=0,end=1,interval=1,aggregate.dur=0,rule='latest'))
  Calculating layout for network slice from time  0 to 0
  Calculating layout for network slice from time  1 to 1
  > render.animation(test,displaylabels=TRUE)
  rendering 10 frames for slice 0
  rendering 10 frames for slice 1
  > 
  > # try labels moving on edges, but only 5 edges
  > set.edge.attribute(dyn,"eLabel",1:network.edgecount(dyn))
  > render.par=list(tween.frames=10,show.time=TRUE,show.stats=NULL)
  > render.animation(dyn,render.par=render.par,verbose=FALSE,edge.col='gray',edge.label='eLabel',edge.label.cex=0.7,edge.label.col='blue')
  > 
  > # single vertex matrix collapse bug #332
  > compute.animation(as.networkDynamic(network.initialize(1)))
  No slice.par found, using
  slice parameters:
    start:0
    end:0
    interval:1
    aggregate.dur:1
    rule:latest
  
  Calculating layout for network slice from time  0 to 1
  Warning message:
  In guessSlicePar(net) :
    network does not appear to have any dynamic information. Using start=0 end=1
  > 
  > # test animation of single vertex
  > test<-network.initialize(3)
  > deactivate.vertices(test)
  > activate.vertices(test,v=2,onset=0,terminus=3)
  > compute.animation(test)
  No slice.par found, using
  slice parameters:
    start:0
    end:3
    interval:1
    aggregate.dur:1
    rule:latest
  
  Calculating layout for network slice from time  0 to 1
  Calculating layout for network slice from time  1 to 2
  Calculating layout for network slice from time  2 to 3
  Calculating layout for network slice from time  3 to 4
  > render.animation(test)
  rendering 10 frames for slice 0
  rendering 10 frames for slice 1
  rendering 10 frames for slice 2
  rendering 10 frames for slice 3
  > 
  > # test specifying xlim and ylim
  > render.animation(test,xlim=c(-1,1),ylim=c(-1,1))
  rendering 10 frames for slice 0
  rendering 10 frames for slice 1
  rendering 10 frames for slice 2
  rendering 10 frames for slice 3
  > 
  > proc.time()
     user  system elapsed 
     3.07    0.37    3.43 
Running the tests in 'tests/weighttest.R' failed.
Complete output:
  > #  part of the Statnet suite
  > #  of packages for network analysis, http://statnet.org .
  > #
  > #  This software is distributed under the GPL-3 license.  It is free,
  > #  open source, and has the attribution requirements (GPL Section 7) at
  > #  http://statnet.org/attribution
  > #
  > #  Copyright 2012-2013 Statnet Commons
  > #######################################################################
  > 
  > #test drawing networks with weighted edges
  > 
  > require(ndtv)
  Loading required package: ndtv
  Loading required package: network
  
  'network' 1.18.2 (2023-12-04), part of the Statnet Project
  * 'news(package="network")' for changes since last version
  * 'citation("network")' for citation information
  * 'https://statnet.org' for help, support, and other information
  
  Loading required package: networkDynamic
  
  'networkDynamic' 0.11.4 (2023-12-10?), part of the Statnet Project
  * 'news(package="networkDynamic")' for changes since last version
  * 'citation("networkDynamic")' for citation information
  * 'https://statnet.org' for help, support, and other information
  
  Loading required package: animation
  Loading required package: sna
  Loading required package: statnet.common
  
  Attaching package: 'statnet.common'
  
  The following objects are masked from 'package:base':
  
      attr, order
  
  sna: Tools for Social Network Analysis
  Version 2.7-2 created on 2023-12-05.
  copyright (c) 2005, Carter T. Butts, University of California-Irvine
   For citation information, type citation("sna").
   Type help(package="sna") to get started.
  
  
  'ndtv' 0.13.3 (2022-11-20), part of the Statnet Project
  * 'news(package="ndtv")' for changes since last version
  * 'citation("ndtv")' for citation information
  * 'https://statnet.org' for help, support, and other information
  
  > test <- network.initialize(5,directed=F)
  > test[1,2]<-1
  > test[3,2]<-1
  > test[1,3]<-1
  > test[1,4]<-1
  > test[5,1]<-1
  > test[4,5]<-1
  > activate.edge.attribute(test,'weight',value=1,onset=0,terminus=5)
  > activate.edge.attribute(test,'weight',value=2,onset=1,terminus=2,e=2)
  > activate.edge.attribute(test,'weight',value=3,onset=2,terminus=3,e=2)
  > activate.edge.attribute(test,'weight',value=10,onset=3,terminus=4,e=2)
  > activate.edge.attribute(test,'weight',value=0.8,onset=1,terminus=2,e=5)
  > activate.edge.attribute(test,'weight',value=0.5,onset=2,terminus=3,e=5)
  > activate.edge.attribute(test,'weight',value=0.2,onset=3,terminus=4,e=5)
  > 
  > 
  > # test drawing them with different widths
  > slice.par<-list(start=0,end=3,interval=1, aggregate.dur=1,rule="latest")
  > test <-compute.animation(test,slice.par=slice.par,animation.mode="kamadakawai")
  Calculating layout for network slice from time  0 to 1
  Calculating layout for network slice from time  1 to 2
  Calculating layout for network slice from time  2 to 3
  Calculating layout for network slice from time  3 to 4
  > render.animation(test,render.par=list(tween.frames=10,show.time=T),edge.lwd='weight',edge.label='weight')
  rendering 10 frames for slice 0
  rendering 10 frames for slice 1
  rendering 10 frames for slice 2
  rendering 10 frames for slice 3
  > 
  > # test using default weights created by network.collapse
  > test <- network.initialize(5,directed=F)
  > test[1,2]<-1
  > test[3,2]<-1
  > test[1,3]<-1
  > test[1,4]<-1
  > test[5,1]<-1
  > test[4,5]<-1
  > activate.edges(test,onset=c(1,3,5),terminus=c(2,4,6),e=c(1,1,1))
  > activate.edges(test,onset=0,terminus=6,e=2:6)
  > slice.par<-list(start=-3,end=6,interval=1, aggregate.dur=3,rule="latest")
  > test <-compute.animation(test,slice.par=slice.par,animation.mode="MDSJ",weight.attr='activity.duration')
  Calculating layout for network slice from time  -3 to 0
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  -2 to 1
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  -1 to 2
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  0 to 3
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  1 to 4
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  2 to 5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  3 to 6
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  4 to 7
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  5 to 8
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  6 to 9
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Warning messages:
  1: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  2: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  3: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  4: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  5: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  6: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  7: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  8: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  9: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  10: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  > render.animation(test,edge.label='activity.duration')
  rendering 10 frames for slice 0
  rendering 10 frames for slice 1
  rendering 10 frames for slice 2
  rendering 10 frames for slice 3
  rendering 10 frames for slice 4
  rendering 10 frames for slice 5
  rendering 10 frames for slice 6
  rendering 10 frames for slice 7
  rendering 10 frames for slice 8
  rendering 10 frames for slice 9
  > 
  > 
  > #test a network with edge weights as distances
  > test <- network.initialize(5,directed=F)
  > test[1,2]<-1
  > test[3,2]<-1
  > test[1,3]<-1
  > test[1,4]<-1
  > test[5,1]<-1
  > test[4,5]<-1
  > test <-activate.edge.attribute(test,'weight',value=1,onset=0,terminus=1,e=c(1,2,3)) 
  > test <- activate.edge.attribute(test,'weight',value=3,onset=0,terminus=1,e=c(4,5,6))
  > test <- activate.edge.attribute(test,'weight',value=3,onset=1,terminus=2,e=c(1,2,3))
  > test <- activate.edge.attribute(test,'weight',value=1,onset=1,terminus=2,e=c(4,5,6))
  > slice.par<-list(start=-1,end=3,interval=1, aggregate.dur=1,rule="latest")
  > test <-compute.animation(test,slice.par=slice.par,animation.mode="MDSJ",weight.attr='weight',weight.dist=TRUE)
  Calculating layout for network slice from time  -1 to 0
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  0 to 1
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  1 to 2
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  2 to 3
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  3 to 4
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Warning messages:
  1: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  2: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  3: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  4: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  5: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  > render.animation(test,edge.label='weight',render.par=list(tween.frames=10))
  rendering 10 frames for slice 0
  rendering 10 frames for slice 1
  rendering 10 frames for slice 2
  rendering 10 frames for slice 3
  rendering 10 frames for slice 4
  > 
  > #test a network with edge weights as similarities
  > slice.par<-list(start=-1,end=3,interval=1, aggregate.dur=1,rule="latest")
  > test <-compute.animation(test,slice.par=slice.par,animation.mode="MDSJ",weight.attr='weight',weight.dist=FALSE)
  Calculating layout for network slice from time  -1 to 0
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  0 to 1
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  1 to 2
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  2 to 3
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  3 to 4
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Warning messages:
  1: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  2: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  3: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  4: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  5: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  > render.animation(test,edge.label='weight',render.par=list(tween.frames=10))
  rendering 10 frames for slice 0
  rendering 10 frames for slice 1
  rendering 10 frames for slice 2
  rendering 10 frames for slice 3
  rendering 10 frames for slice 4
  > 
  > #test symetrizing an asymetric network
  > test <- network.initialize(5,directed=T)
  > test[1,2]<-1
  > test[3,2]<-1
  > test[1,3]<-1
  > test[1,4]<-1
  > test[5,1]<-1
  > test[4,5]<-1
  > test[2,1]<-1
  > test[2,3]<-1
  > test[3,1]<-1
  > test[4,1]<-1
  > test[1,5]<-1
  > test[5,4]<-1
  > test <-activate.edge.attribute(test,'weight',value=1,onset=0,terminus=1,e=c(1,2,3)) 
  > test <- activate.edge.attribute(test,'weight',value=3,onset=0,terminus=1,e=c(4,5,6))
  > test <- activate.edge.attribute(test,'weight',value=3,onset=1,terminus=2,e=c(1,2,3))
  > test <- activate.edge.attribute(test,'weight',value=1,onset=1,terminus=2,e=c(4,5,6))
  > test <- activate.edge.attribute(test,'weight',value=5, onset=0,terminus=4,e=7:12)
  > slice.par<-list(start=-1,end=3,interval=1, aggregate.dur=1,rule="latest")
  > test <-compute.animation(test,slice.par=slice.par,animation.mode="MDSJ",weight.attr='weight',weight.dist=FALSE)
  Calculating layout for network slice from time  -1 to 0
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  0 to 1
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  1 to 2
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  2 to 3
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  3 to 4
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Warning messages:
  1: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  2: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  3: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  4: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  5: In layout.fun(slice, dist.mat = dist.mat, default.dist = default.dist,  :
    Unable to locate the MDSJ library, using KamadaKawai layout instead
  > render.animation(test,edge.label='weight',render.par=list(tween.frames=20))
  rendering 20 frames for slice 0
  rendering 20 frames for slice 1
  rendering 20 frames for slice 2
  rendering 20 frames for slice 3
  rendering 20 frames for slice 4
  > layout.distance(network.collapse(test,at=3),weight.attr='weight')
           [,1]     [,2]     [,3]     [,4]     [,5]
  [1,] 0.000000 2.236068 2.236068 2.236068 2.236068
  [2,] 2.236068 0.000000 2.236068 2.236068 2.236068
  [3,] 2.236068 2.236068 0.000000 2.236068 2.236068
  [4,] 2.236068 2.236068 2.236068 0.000000 2.236068
  [5,] 2.236068 2.236068 2.236068 2.236068 0.000000
  > 
  > 
  > data(McFarland_cls33_10_16_96)
  > slice.par<-list(start=0,end=30,interval=1, aggregate.dur=2.5,rule="latest")
  > cls33_10_16_96 <-compute.animation(cls33_10_16_96,slice.par=slice.par,animation.mode="MDSJ",weight.attr='activity.count',default.dist=5)
  Calculating layout for network slice from time  0 to 2.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  1 to 3.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  2 to 4.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  3 to 5.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  4 to 6.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  5 to 7.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  6 to 8.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  7 to 9.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  8 to 10.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  9 to 11.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  10 to 12.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  11 to 13.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  12 to 14.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  13 to 15.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  14 to 16.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  15 to 17.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  16 to 18.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  17 to 19.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  18 to 20.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  19 to 21.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  20 to 22.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  21 to 23.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  22 to 24.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  23 to 25.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  24 to 26.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  25 to 27.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  26 to 28.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  27 to 29.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  28 to 30.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  29 to 31.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  Calculating layout for network slice from time  30 to 32.5
  The MDSJ Java library does not appear to be installed. The ndtv package can use MDSJ to provide a fast accurate layout algorithm. As the original hosting site is offline, it can temporarily be downloaded from https://github.com/skyebend/mdsj
  Do you want to automatically download and install the MDSJ Java library? (y/N): 
  The MDSJ library was not installed.
  There were 31 warnings (use warnings() to see them)
  > #saveVideo(render.animation(cls33_10_16_96,edge.lwd='activity.count',edge.label='activity.count',edge.col='gray',render.cache='none'))
  > 
  > 
  > 
  > proc.time()
     user  system elapsed 
     4.98    0.45    5.42