library("testthat")
context("upticking")
test_that("Upticking on a single Node", {
  # Default values. Ticks start at 0
  test_node <- Node$new()
  expect_equal(test_node$tick, 0)
  expect_equal(test_node$activation, 0)
  # First update from zero sets value
  test_node$cache <- .5
  test_node$uptick()
  expect_equal(test_node$activation, .5)
  # History tracking
  test_node$cache <- 1
  test_node$uptick()
  test_node$cache <- 1
  test_node$uptick()
  expect_equal(test_node$tick, 3)
  expect_equal(test_node$activation, 1)
  history <- test_node$remember()
  expect_equal(history$tick, 0:3)
  expect_equal(history$activation, c(0, .5, 1, 1))
})
context("bias nodes")
test_that("Bias nodes are constant", {
  # Default values
  test_timeslice <- 3:5
  bias <- InputNode$new(timeslice = test_timeslice)
  expect_equal(bias$activation, 0)
  expect_equal(bias$tick, 0)
  # Resting value of 0 until awakens
  replicate(10, bias$uptick()) %>% invisible
  expect_equal(bias$activation, 0)
  # History starts counting at 0.
  test_timeslice_index <- test_timeslice + 1
  # Only values during timeslice are 1
  are_all <- function(xs, y) all(xs == y)
  history <- bias$remember()
  expect_true(are_all(history[test_timeslice_index, "activation"], 1))
  expect_true(are_all(history[-test_timeslice_index, "activation"], 0))
  # Input does nothing
  bias$cache <- 100
  bias$receive()$uptick()
  expect_equal(bias$activation, 0)
  # Cannot attach edge onto bias
  test_node <- Node$new()
  connect(test_node, bias, 1)
  expect_identical(bias$edges_in, list())
})
context("features to phonemes")
test_that("dev functions", {
#   pool <- FeaturePool()
#   phoneme <- PhonemeNode$new("p")
#   connect_pool_to_phoneme(pool, phoneme)
})
# expect_equal(test_node$tick, 3)
# expect_equal(test_node$activation, .875)
# expect_equal(test_node$history, c(0, .5, .75))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.