

test_that("fromJSON Array, row major", {

  # test high dimensional arrays
  lapply(2:5, function(n){
    object <- array(1:prod(n), dim=1:n)
    newobject <- fromJSON(toJSON(object));
    expect_equal(object, newobject);
  });

  # adding some flat dimensions
  lapply(1:5, function(n){
    object <- array(1:prod(n), dim=c(1:n, 1))
    newobject <- fromJSON(toJSON(object));
    expect_equal(object, newobject);
  });
});

test_that("fromJSON Array, column major", {

  # test high dimensional arrays
  lapply(2:5, function(n){
    object <- array(1:prod(n), dim=1:n)
    newobject <- fromJSON(toJSON(object, matrix="columnmajor"), columnmajor=TRUE);
    expect_equal(object, newobject);
  });

  # adding some flat dimensions
  lapply(1:5, function(n){
    object <- array(1:prod(n), dim=c(1:n, 1))
    newobject <- fromJSON(toJSON(object, matrix="columnmajor"), columnmajor=TRUE);
    expect_equal(object, newobject);
  });
});


test_that("fromJSON Array, character strings", {

  # test high dimensional arrays
  lapply(2:5, function(n){
    object <- array(paste("cell", 1:prod(n)), dim=1:n)
    newobject <- fromJSON(toJSON(object, matrix="columnmajor"), columnmajor=TRUE);
    expect_equal(object, newobject);
  });

  # adding some flat dimensions
  lapply(1:5, function(n){
    object <- array(paste("cell", 1:prod(n)), dim=c(1:n, 1))
    newobject <- fromJSON(toJSON(object, matrix="columnmajor"), columnmajor=TRUE);
    expect_equal(object, newobject);
  });
});
