tests/testthat/test-subscripting.R

context("UFO vector subscripting")

#context <- function(n) n
#test_that <- function(name, code) code
#expect_equal <- function(x, y) ifelse(x == y, T, F)

test_ufo_subscript <- function (n, subscript, ufo_constructor, named=FALSE, index_type=as.integer) {
  ufo <- ufo_constructor(n)
  data <- index_type(1:n)
  if (named) {
      ufo <- setNames(ufo, as.character(1:n))
      data <- setNames(data, as.character(1:n))
  }
  result <- ufovectors::ufo_subscript(ufo, subscript)
  expected <- data[subscript]
  if (named) {
      # subscripting does not return names, so remove those from expected
      expected <- setNames(expected, NULL)
  }
  expect_equal(result, expected)
}

test_that("ufo integer subscript: null",                              {test_ufo_subscript(n=100000, NULL,                                                                ufo_integer         )})
test_that("ufo integer subscript: logical(0)",                        {test_ufo_subscript(n=100000, logical(0),                                                          ufo_integer         )})
test_that("ufo integer subscript: F",                                 {test_ufo_subscript(n=100000, c(T),                                                                ufo_integer         )})
test_that("ufo integer subscript: T",                                 {test_ufo_subscript(n=100000, c(F),                                                                ufo_integer         )})
test_that("ufo integer subscript: logical(NA)",                       {test_ufo_subscript(n=100000, as.logical(NA),                                                      ufo_integer         )})
test_that("ufo integer subscript: F,F",                               {test_ufo_subscript(n=100000, c(F, F),                                                             ufo_integer         )})
test_that("ufo integer subscript: F,T",                               {test_ufo_subscript(n=100000, c(F, T),                                                             ufo_integer         )})
test_that("ufo integer subscript: T,F",                               {test_ufo_subscript(n=100000, c(T, F),                                                             ufo_integer         )})
test_that("ufo integer subscript: T,T",                               {test_ufo_subscript(n=100000, c(T, T),                                                             ufo_integer         )})
test_that("ufo integer subscript: F,NA",                              {test_ufo_subscript(n=100000, c(F, NA),                                                            ufo_integer         )})
test_that("ufo integer subscript: NA,F",                              {test_ufo_subscript(n=100000, c(NA, F),                                                            ufo_integer         )})
test_that("ufo integer subscript: NA,T",                              {test_ufo_subscript(n=100000, c(NA, T),                                                            ufo_integer         )})
test_that("ufo integer subscript: T,NA",                              {test_ufo_subscript(n=100000, c(T, NA),                                                            ufo_integer         )})
test_that("ufo integer subscript: F,F,F",                             {test_ufo_subscript(n=100000, c(F, F, F),                                                          ufo_integer         )})
test_that("ufo integer subscript: F,F,T",                             {test_ufo_subscript(n=100000, c(F, F, T),                                                          ufo_integer         )})
test_that("ufo integer subscript: F,T,F",                             {test_ufo_subscript(n=100000, c(F, T, F),                                                          ufo_integer         )})
test_that("ufo integer subscript: F,T,T",                             {test_ufo_subscript(n=100000, c(F, T, T),                                                          ufo_integer         )})
test_that("ufo integer subscript: T,F,F",                             {test_ufo_subscript(n=100000, c(T, F, F),                                                          ufo_integer         )})
test_that("ufo integer subscript: T,F,T",                             {test_ufo_subscript(n=100000, c(T, F, T),                                                          ufo_integer         )})
test_that("ufo integer subscript: T,T,F",                             {test_ufo_subscript(n=100000, c(T, T, F),                                                          ufo_integer         )})
test_that("ufo integer subscript: T,T,T",                             {test_ufo_subscript(n=100000, c(T, T, T),                                                          ufo_integer         )})
test_that("ufo integer subscript: F,F,NA",                            {test_ufo_subscript(n=100000, c(F, F, NA),                                                         ufo_integer         )})
test_that("ufo integer subscript: F,NA,F",                            {test_ufo_subscript(n=100000, c(F, NA, F),                                                         ufo_integer         )})
test_that("ufo integer subscript: F,NA,NA",                           {test_ufo_subscript(n=100000, c(F, NA, NA),                                                        ufo_integer         )})
test_that("ufo integer subscript: NA,F,F",                            {test_ufo_subscript(n=100000, c(NA, F, F),                                                         ufo_integer         )})
test_that("ufo integer subscript: NA,F,NA",                           {test_ufo_subscript(n=100000, c(NA, F, NA),                                                        ufo_integer         )})
test_that("ufo integer subscript: NA,NA,F",                           {test_ufo_subscript(n=100000, c(NA, NA, F),                                                        ufo_integer         )})
test_that("ufo integer subscript: F,F,T",                             {test_ufo_subscript(n=100000, c(F, F, T),                                                          ufo_integer         )})
test_that("ufo integer subscript: F,NA,T",                            {test_ufo_subscript(n=100000, c(F, NA, T),                                                         ufo_integer         )})
test_that("ufo integer subscript: NA,F,T",                            {test_ufo_subscript(n=100000, c(NA, F, T),                                                         ufo_integer         )})
test_that("ufo integer subscript: NA,NA,T",                           {test_ufo_subscript(n=100000, c(NA, NA, T),                                                        ufo_integer         )})
test_that("ufo integer subscript: F,T,NA",                            {test_ufo_subscript(n=100000, c(F, T, NA),                                                         ufo_integer         )})
test_that("ufo integer subscript: NA,T,F",                            {test_ufo_subscript(n=100000, c(NA, T, F),                                                         ufo_integer         )})
test_that("ufo integer subscript: NA,T,NA",                           {test_ufo_subscript(n=100000, c(NA, T, NA),                                                        ufo_integer         )})
test_that("ufo integer subscript: F,NA,T",                            {test_ufo_subscript(n=100000, c(F, NA, T),                                                         ufo_integer         )})
test_that("ufo integer subscript: NA,T,T",                            {test_ufo_subscript(n=100000, c(NA, T, T),                                                         ufo_integer         )})
test_that("ufo integer subscript: T,F,NA",                            {test_ufo_subscript(n=100000, c(T, F, NA),                                                         ufo_integer         )})
test_that("ufo integer subscript: T,NA,F",                            {test_ufo_subscript(n=100000, c(T, NA, F),                                                         ufo_integer         )})
test_that("ufo integer subscript: T,NA,NA",                           {test_ufo_subscript(n=100000, c(T, NA, NA),                                                        ufo_integer         )})
test_that("ufo integer subscript: T,NA,T",                            {test_ufo_subscript(n=100000, c(T, NA, T),                                                         ufo_integer         )})
test_that("ufo integer subscript: T,T,NA",                            {test_ufo_subscript(n=100000, c(T, T, NA),                                                         ufo_integer         )})
test_that("ufo integer subscript: T,NA,NA",                           {test_ufo_subscript(n=100000, c(T, NA, NA),                                                        ufo_integer         )})
test_that("ufo integer subscript: T..",                               {test_ufo_subscript(n=100000, rep(T, 100000),                                                      ufo_integer         )})
test_that("ufo integer subscript: F..",                               {test_ufo_subscript(n=100000, rep(F, 100000),                                                      ufo_integer         )})
test_that("ufo integer subscript: T,F..",                             {test_ufo_subscript(n=100000, rep(c(T,F), 100000),                                                 ufo_integer         )})
test_that("ufo integer subscript: F,T..",                             {test_ufo_subscript(n=100000, rep(c(F,T), 100000),                                                 ufo_integer         )})
test_that("ufo integer subscript: int integer(0)",                    {test_ufo_subscript(n=100000, integer(0),                                                          ufo_integer         )})
test_that("ufo integer subscript: int 0",                             {test_ufo_subscript(n=100000, as.integer(0),                                                       ufo_integer         )})
test_that("ufo integer subscript: int 1",                             {test_ufo_subscript(n=100000, as.integer(1),                                                       ufo_integer         )})
test_that("ufo integer subscript: int 10",                            {test_ufo_subscript(n=100000, as.integer(10),                                                      ufo_integer         )})
test_that("ufo integer subscript: int 42",                            {test_ufo_subscript(n=100000, as.integer(42),                                                      ufo_integer         )})
test_that("ufo integer subscript: int N+1",                           {test_ufo_subscript(n=100000, as.integer(100001),                                                  ufo_integer         )})
test_that("ufo integer subscript: int 0,0",                           {test_ufo_subscript(n=100000, as.integer(c(0, 0)),                                                 ufo_integer         )})
test_that("ufo integer subscript: int 0,1,0,N,0",                     {test_ufo_subscript(n=100000, as.integer(c(0, 1, 0, 100000, 0)),                                   ufo_integer         )})
test_that("ufo integer subscript: int 1,10,100,1000,100",             {test_ufo_subscript(n=100000, as.integer(c(1, 10, 100, 1000, 100)),                                ufo_integer         )})
test_that("ufo integer subscript: int -1",                            {test_ufo_subscript(n=100000, as.integer(-1),                                                      ufo_integer         )})
test_that("ufo integer subscript: int -10",                           {test_ufo_subscript(n=100000, as.integer(-10),                                                     ufo_integer         )})
test_that("ufo integer subscript: int -42",                           {test_ufo_subscript(n=100000, as.integer(-42),                                                     ufo_integer         )})
test_that("ufo integer subscript: int -1,-10,-100,-1000,-100",        {test_ufo_subscript(n=100000, as.integer(-c(1, 10, 100, 1000, 100)),                               ufo_integer         )})
test_that("ufo integer subscript: int few",                           {test_ufo_subscript(n=100000, as.integer(c(4, 10, 7, 100)),                                        ufo_integer         )})
test_that("ufo integer subscript: int many",                          {test_ufo_subscript(n=100000, as.integer(c(1:1000, 2000:5000, 10:1000, 6000:10000)),               ufo_integer         )})
test_that("ufo integer subscript: int all",                           {test_ufo_subscript(n=100000, as.integer(1:100000),                                                ufo_integer         )})
test_that("ufo integer subscript: int few with NAs",                  {test_ufo_subscript(n=100000, as.integer(c(4, 10, NA, 7, NA, 100, NA)),                            ufo_integer         )})
test_that("ufo integer subscript: int many with NAs",                 {test_ufo_subscript(n=100000, as.integer(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)),   ufo_integer         )})
test_that("ufo integer subscript: int all with NAs",                  {test_ufo_subscript(n=100000, as.integer(c(1:100000, NA)),                                         ufo_integer         )})
test_that("ufo integer subscript: int few negative",                  {test_ufo_subscript(n=100000, as.integer(-c(4, 10, 7, 100)),                                       ufo_integer         )})
test_that("ufo integer subscript: int many negative",                 {test_ufo_subscript(n=100000, as.integer(-c(1:1000, 2000:5000, 10:1000, 6000:10000)),              ufo_integer         )})
test_that("ufo integer subscript: int all negative",                  {test_ufo_subscript(n=100000, as.integer(-(1:100000)),                                             ufo_integer         )})
test_that("ufo integer subscript: num integer(0)",                    {test_ufo_subscript(n=100000, numeric(0),                                                          ufo_integer         )})
test_that("ufo integer subscript: num 0",                             {test_ufo_subscript(n=100000, as.numeric(0),                                                       ufo_integer         )})
test_that("ufo integer subscript: num 1",                             {test_ufo_subscript(n=100000, as.numeric(1),                                                       ufo_integer         )})
test_that("ufo integer subscript: num 10",                            {test_ufo_subscript(n=100000, as.numeric(10),                                                      ufo_integer         )})
test_that("ufo integer subscript: num 42",                            {test_ufo_subscript(n=100000, as.numeric(42),                                                      ufo_integer         )})
test_that("ufo integer subscript: num N+1",                           {test_ufo_subscript(n=100000, as.numeric(100001),                                                  ufo_integer         )})
test_that("ufo integer subscript: num 0,0",                           {test_ufo_subscript(n=100000, as.numeric(c(0, 0)),                                                 ufo_integer         )})
test_that("ufo integer subscript: num 0,1,0,N,0",                     {test_ufo_subscript(n=100000, as.numeric(c(0, 1, 0, 100000, 0)),                                   ufo_integer         )})
test_that("ufo integer subscript: num 1,10,100,1000,100",             {test_ufo_subscript(n=100000, as.numeric(c(1, 10, 100, 1000, 100)),                                ufo_integer         )})
test_that("ufo integer subscript: num -1",                            {test_ufo_subscript(n=100000, as.numeric(-1),                                                      ufo_integer         )})
test_that("ufo integer subscript: num -10",                           {test_ufo_subscript(n=100000, as.numeric(-10),                                                     ufo_integer         )})
test_that("ufo integer subscript: num -42",                           {test_ufo_subscript(n=100000, as.numeric(-42),                                                     ufo_integer         )})
test_that("ufo integer subscript: num -1,-10,-100,-1000,-100",        {test_ufo_subscript(n=100000, as.numeric(-c(1, 10, 100, 1000, 100)),                               ufo_integer         )})
test_that("ufo integer subscript: num few",                           {test_ufo_subscript(n=100000, as.numeric(c(4, 10, 7, 100)),                                        ufo_integer         )})
test_that("ufo integer subscript: num many",                          {test_ufo_subscript(n=100000, as.numeric(c(1:1000, 2000:5000, 10:1000, 6000:10000)),               ufo_integer         )})
test_that("ufo integer subscript: num all",                           {test_ufo_subscript(n=100000, as.numeric(1:100000),                                                ufo_integer         )})
test_that("ufo integer subscript: num few with NAs",                  {test_ufo_subscript(n=100000, as.numeric(c(4, 10, NA, 7, NA, 100, NA)),                            ufo_integer         )})
test_that("ufo integer subscript: num many with NAs",                 {test_ufo_subscript(n=100000, as.numeric(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)),   ufo_integer         )})
test_that("ufo integer subscript: num all with NAs",                  {test_ufo_subscript(n=100000, as.numeric(c(1:100000, NA)),                                         ufo_integer         )})
test_that("ufo integer subscript: num few negative",                  {test_ufo_subscript(n=100000, as.numeric(-c(4, 10, 7, 100)),                                       ufo_integer         )})
test_that("ufo integer subscript: num many negative",                 {test_ufo_subscript(n=100000, as.numeric(-c(1:1000, 2000:5000, 10:1000, 6000:10000)),              ufo_integer         )})
test_that("ufo integer subscript: num all negative",                  {test_ufo_subscript(n=100000, as.numeric(-(1:100000)),                                             ufo_integer         )})
test_that("ufo integer subscript: num 0.1",                           {test_ufo_subscript(n=100000, as.numeric(0.1),                                                     ufo_integer         )})
test_that("ufo integer subscript: num 1.1",                           {test_ufo_subscript(n=100000, as.numeric(1.1),                                                     ufo_integer         )})
test_that("ufo integer subscript: num 10.5",                          {test_ufo_subscript(n=100000, as.numeric(10.5),                                                    ufo_integer         )})
test_that("ufo integer subscript: num 42.9",                          {test_ufo_subscript(n=100000, as.numeric(42.9),                                                    ufo_integer         )})
test_that("ufo integer subscript: num -0.1",                          {test_ufo_subscript(n=100000, as.numeric(-0.1),                                                    ufo_integer         )})
test_that("ufo integer subscript: num -1.1",                          {test_ufo_subscript(n=100000, as.numeric(-1.1),                                                    ufo_integer         )})
test_that("ufo integer subscript: num -10.5",                         {test_ufo_subscript(n=100000, as.numeric(-10.5),                                                   ufo_integer         )})
test_that("ufo integer subscript: num -42.9",                         {test_ufo_subscript(n=100000, as.numeric(-42.9),                                                   ufo_integer         )})
test_that("ufo integer subscript: hash str character(0)",             {test_ufo_subscript(n=100000, character(0),                                                        ufo_integer         )})
test_that("ufo integer subscript: hash str 0",                        {test_ufo_subscript(n=100000, as.character(0),                                                     ufo_integer         )})
test_that("ufo integer subscript: hash str 1",                        {test_ufo_subscript(n=100000, as.character(1),                                                     ufo_integer         )})
test_that("ufo integer subscript: hash str 10",                       {test_ufo_subscript(n=100000, as.character(10),                                                    ufo_integer         )})
test_that("ufo integer subscript: hash str 42",                       {test_ufo_subscript(n=100000, as.character(42),                                                    ufo_integer         )})
test_that("ufo integer subscript: hash str N+1",                      {test_ufo_subscript(n=100000, as.character(100001),                                                ufo_integer         )})
test_that("ufo integer subscript: hash str 0,0",                      {test_ufo_subscript(n=100000, as.character(c(0, 0)),                                               ufo_integer         )})
test_that("ufo integer subscript: hash str 0,1,0,N,0",                {test_ufo_subscript(n=100000, as.character(c(0, 1, 0, 100000, 0)),                                 ufo_integer         )})
test_that("ufo integer subscript: hash str 1,10,100,1000,100",        {test_ufo_subscript(n=100000, as.character(c(1, 10, 100, 1000, 100)),                              ufo_integer         )})
test_that("ufo integer subscript: hash str few",                      {test_ufo_subscript(n=100000, as.character(c(4, 10, 7, 100)),                                      ufo_integer         )})
test_that("ufo integer subscript: hash str many",                     {test_ufo_subscript(n=100000, as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_integer         )})
test_that("ufo integer subscript: hash str all",                      {test_ufo_subscript(n=100000, as.character(1:100000),                                              ufo_integer         )})
test_that("ufo integer subscript: hash str few with NAs",             {test_ufo_subscript(n=100000, as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_integer         )})
test_that("ufo integer subscript: hash str many with NAs",            {test_ufo_subscript(n=100000, as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_integer         )})
test_that("ufo integer subscript: hash str all with NAs",             {test_ufo_subscript(n=100000, as.character(c(1:100000, NA)),                                       ufo_integer         )})
test_that("ufo integer subscript: loop str character(0)",             {test_ufo_subscript(n=10,     character(0),                                                        ufo_integer         )})
test_that("ufo integer subscript: loop str 0",                        {test_ufo_subscript(n=10,     as.character(0),                                                     ufo_integer         )})
test_that("ufo integer subscript: loop str 1",                        {test_ufo_subscript(n=10,     as.character(1),                                                     ufo_integer         )})
test_that("ufo integer subscript: loop str 10",                       {test_ufo_subscript(n=10,     as.character(10),                                                    ufo_integer         )})
test_that("ufo integer subscript: loop str 42",                       {test_ufo_subscript(n=10,     as.character(42),                                                    ufo_integer         )})
test_that("ufo integer subscript: loop str N+1",                      {test_ufo_subscript(n=10,     as.character(11),                                                    ufo_integer         )})
test_that("ufo integer subscript: loop str 0,0",                      {test_ufo_subscript(n=10,     as.character(c(0, 0)),                                               ufo_integer         )})
test_that("ufo integer subscript: loop str 0,1,0,N,0",                {test_ufo_subscript(n=10,     as.character(c(0, 1, 0, 10, 0)),                                     ufo_integer         )})
test_that("ufo integer subscript: loop str 1,10,100,1000,100",        {test_ufo_subscript(n=10,     as.character(c(1, 10, 100, 1000, 100)),                              ufo_integer         )})
test_that("ufo integer subscript: loop str few",                      {test_ufo_subscript(n=10,     as.character(c(4, 10, 7, 100)),                                      ufo_integer         )})
test_that("ufo integer subscript: loop str many",                     {test_ufo_subscript(n=10,     as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_integer         )})
test_that("ufo integer subscript: loop str all",                      {test_ufo_subscript(n=10,     as.character(1:100000),                                              ufo_integer         )})
test_that("ufo integer subscript: loop str few with NAs",             {test_ufo_subscript(n=10,     as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_integer         )})
test_that("ufo integer subscript: loop str many with NAs",            {test_ufo_subscript(n=10,     as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_integer         )})
test_that("ufo integer subscript: loop str all with NAs",             {test_ufo_subscript(n=10,     as.character(c(1:100000, NA)),                                       ufo_integer         )})
test_that("ufo integer+names subscript: hash str character(0)",       {test_ufo_subscript(n=100000, character(0),                                                        ufo_integer, named=T)})
test_that("ufo integer+names subscript: hash str 0",                  {test_ufo_subscript(n=100000, as.character(0),                                                     ufo_integer, named=T)})
test_that("ufo integer+names subscript: hash str 1",                  {test_ufo_subscript(n=100000, as.character(1),                                                     ufo_integer, named=T)})
test_that("ufo integer+names subscript: hash str 10",                 {test_ufo_subscript(n=100000, as.character(10),                                                    ufo_integer, named=T)})
test_that("ufo integer+names subscript: hash str 42",                 {test_ufo_subscript(n=100000, as.character(42),                                                    ufo_integer, named=T)})
test_that("ufo integer+names subscript: hash str N+1",                {test_ufo_subscript(n=100000, as.character(100001),                                                ufo_integer, named=T)})
test_that("ufo integer+names subscript: hash str 0,0",                {test_ufo_subscript(n=100000, as.character(c(0, 0)),                                               ufo_integer, named=T)})
test_that("ufo integer+names subscript: hash str 0,1,0,N,0",          {test_ufo_subscript(n=100000, as.character(c(0, 1, 0, 100000, 0)),                                 ufo_integer, named=T)})
test_that("ufo integer+names subscript: hash str 1,10,100,1000,100",  {test_ufo_subscript(n=100000, as.character(c(1, 10, 100, 1000, 100)),                              ufo_integer, named=T)})
test_that("ufo integer+names subscript: hash str few",                {test_ufo_subscript(n=100000, as.character(c(4, 10, 7, 100)),                                      ufo_integer, named=T)})
test_that("ufo integer+names subscript: hash str many",               {test_ufo_subscript(n=100000, as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_integer, named=T)})
test_that("ufo integer+names subscript: hash str all",                {test_ufo_subscript(n=100000, as.character(1:100000),                                              ufo_integer, named=T)})
test_that("ufo integer+names subscript: hash str few with NAs",       {test_ufo_subscript(n=100000, as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_integer, named=T)})
test_that("ufo integer+names subscript: hash str many with NAs",      {test_ufo_subscript(n=100000, as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_integer, named=T)})
test_that("ufo integer+names subscript: hash str all with NAs",       {test_ufo_subscript(n=100000, as.character(c(1:100000, NA)),                                       ufo_integer, named=T)})
test_that("ufo integer+names subscript: loop str character(0)",       {test_ufo_subscript(n=10,     character(0),                                                        ufo_integer, named=T)})
test_that("ufo integer+names subscript: loop str 0",                  {test_ufo_subscript(n=10,     as.character(0),                                                     ufo_integer, named=T)})
test_that("ufo integer+names subscript: loop str 1",                  {test_ufo_subscript(n=10,     as.character(1),                                                     ufo_integer, named=T)})
test_that("ufo integer+names subscript: loop str 10",                 {test_ufo_subscript(n=10,     as.character(10),                                                    ufo_integer, named=T)})
test_that("ufo integer+names subscript: loop str 42",                 {test_ufo_subscript(n=10,     as.character(42),                                                    ufo_integer, named=T)})
test_that("ufo integer+names subscript: loop str N+1",                {test_ufo_subscript(n=10,     as.character(11),                                                    ufo_integer, named=T)})
test_that("ufo integer+names subscript: loop str 0,0",                {test_ufo_subscript(n=10,     as.character(c(0, 0)),                                               ufo_integer, named=T)})
test_that("ufo integer+names subscript: loop str 0,1,0,N,0",          {test_ufo_subscript(n=10,     as.character(c(0, 1, 0, 10, 0)),                                     ufo_integer, named=T)})
test_that("ufo integer+names subscript: loop str 1,10,100,1000,100",  {test_ufo_subscript(n=10,     as.character(c(1, 10, 100, 1000, 100)),                              ufo_integer, named=T)})
test_that("ufo integer+names subscript: loop str few",                {test_ufo_subscript(n=10,     as.character(c(4, 10, 7, 100)),                                      ufo_integer, named=T)})
test_that("ufo integer+names subscript: loop str many",               {test_ufo_subscript(n=10,     as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_integer, named=T)})
test_that("ufo integer+names subscript: loop str all",                {test_ufo_subscript(n=10,     as.character(1:100000),                                              ufo_integer, named=T)})
test_that("ufo integer+names subscript: loop str few with NAs",       {test_ufo_subscript(n=10,     as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_integer, named=T)})
test_that("ufo integer+names subscript: loop str many with NAs",      {test_ufo_subscript(n=10,     as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_integer, named=T)})
test_that("ufo integer+names subscript: loop str all with NAs",       {test_ufo_subscript(n=10,     as.character(c(1:100000, NA)),                                       ufo_integer, named=T)})

test_that("ufo numeric subscript: null",                              {test_ufo_subscript(n=10,     NULL,                                                                ufo_numeric         )})
test_that("ufo numeric subscript: logical(0)",                        {test_ufo_subscript(n=100000, logical(0),                                                          ufo_numeric         )})
test_that("ufo numeric subscript: F",                                 {test_ufo_subscript(n=100000, c(T),                                                                ufo_numeric         )})
test_that("ufo numeric subscript: T",                                 {test_ufo_subscript(n=100000, c(F),                                                                ufo_numeric         )})
test_that("ufo numeric subscript: logical(NA)",                       {test_ufo_subscript(n=100000, as.logical(NA),                                                      ufo_numeric         )})
test_that("ufo numeric subscript: F,F",                               {test_ufo_subscript(n=100000, c(F, F),                                                             ufo_numeric         )})
test_that("ufo numeric subscript: F,T",                               {test_ufo_subscript(n=100000, c(F, T),                                                             ufo_numeric         )})
test_that("ufo numeric subscript: T,F",                               {test_ufo_subscript(n=100000, c(T, F),                                                             ufo_numeric         )})
test_that("ufo numeric subscript: T,T",                               {test_ufo_subscript(n=100000, c(T, T),                                                             ufo_numeric         )})
test_that("ufo numeric subscript: F,NA",                              {test_ufo_subscript(n=100000, c(F, NA),                                                            ufo_numeric         )})
test_that("ufo numeric subscript: NA,F",                              {test_ufo_subscript(n=100000, c(NA, F),                                                            ufo_numeric         )})
test_that("ufo numeric subscript: NA,T",                              {test_ufo_subscript(n=100000, c(NA, T),                                                            ufo_numeric         )})
test_that("ufo numeric subscript: T,NA",                              {test_ufo_subscript(n=100000, c(T, NA),                                                            ufo_numeric         )})
test_that("ufo numeric subscript: F,F,F",                             {test_ufo_subscript(n=100000, c(F, F, F),                                                          ufo_numeric         )})
test_that("ufo numeric subscript: F,F,T",                             {test_ufo_subscript(n=100000, c(F, F, T),                                                          ufo_numeric         )})
test_that("ufo numeric subscript: F,T,F",                             {test_ufo_subscript(n=100000, c(F, T, F),                                                          ufo_numeric         )})
test_that("ufo numeric subscript: F,T,T",                             {test_ufo_subscript(n=100000, c(F, T, T),                                                          ufo_numeric         )})
test_that("ufo numeric subscript: T,F,F",                             {test_ufo_subscript(n=100000, c(T, F, F),                                                          ufo_numeric         )})
test_that("ufo numeric subscript: T,F,T",                             {test_ufo_subscript(n=100000, c(T, F, T),                                                          ufo_numeric         )})
test_that("ufo numeric subscript: T,T,F",                             {test_ufo_subscript(n=100000, c(T, T, F),                                                          ufo_numeric         )})
test_that("ufo numeric subscript: T,T,T",                             {test_ufo_subscript(n=100000, c(T, T, T),                                                          ufo_numeric         )})
test_that("ufo numeric subscript: F,F,NA",                            {test_ufo_subscript(n=100000, c(F, F, NA),                                                         ufo_numeric         )})
test_that("ufo numeric subscript: F,NA,F",                            {test_ufo_subscript(n=100000, c(F, NA, F),                                                         ufo_numeric         )})
test_that("ufo numeric subscript: F,NA,NA",                           {test_ufo_subscript(n=100000, c(F, NA, NA),                                                        ufo_numeric         )})
test_that("ufo numeric subscript: NA,F,F",                            {test_ufo_subscript(n=100000, c(NA, F, F),                                                         ufo_numeric         )})
test_that("ufo numeric subscript: NA,F,NA",                           {test_ufo_subscript(n=100000, c(NA, F, NA),                                                        ufo_numeric         )})
test_that("ufo numeric subscript: NA,NA,F",                           {test_ufo_subscript(n=100000, c(NA, NA, F),                                                        ufo_numeric         )})
test_that("ufo numeric subscript: F,F,T",                             {test_ufo_subscript(n=100000, c(F, F, T),                                                          ufo_numeric         )})
test_that("ufo numeric subscript: F,NA,T",                            {test_ufo_subscript(n=100000, c(F, NA, T),                                                         ufo_numeric         )})
test_that("ufo numeric subscript: NA,F,T",                            {test_ufo_subscript(n=100000, c(NA, F, T),                                                         ufo_numeric         )})
test_that("ufo numeric subscript: NA,NA,T",                           {test_ufo_subscript(n=100000, c(NA, NA, T),                                                        ufo_numeric         )})
test_that("ufo numeric subscript: F,T,NA",                            {test_ufo_subscript(n=100000, c(F, T, NA),                                                         ufo_numeric         )})
test_that("ufo numeric subscript: NA,T,F",                            {test_ufo_subscript(n=100000, c(NA, T, F),                                                         ufo_numeric         )})
test_that("ufo numeric subscript: NA,T,NA",                           {test_ufo_subscript(n=100000, c(NA, T, NA),                                                        ufo_numeric         )})
test_that("ufo numeric subscript: F,NA,T",                            {test_ufo_subscript(n=100000, c(F, NA, T),                                                         ufo_numeric         )})
test_that("ufo numeric subscript: NA,T,T",                            {test_ufo_subscript(n=100000, c(NA, T, T),                                                         ufo_numeric         )})
test_that("ufo numeric subscript: T,F,NA",                            {test_ufo_subscript(n=100000, c(T, F, NA),                                                         ufo_numeric         )})
test_that("ufo numeric subscript: T,NA,F",                            {test_ufo_subscript(n=100000, c(T, NA, F),                                                         ufo_numeric         )})
test_that("ufo numeric subscript: T,NA,NA",                           {test_ufo_subscript(n=100000, c(T, NA, NA),                                                        ufo_numeric         )})
test_that("ufo numeric subscript: T,NA,T",                            {test_ufo_subscript(n=100000, c(T, NA, T),                                                         ufo_numeric         )})
test_that("ufo numeric subscript: T,T,NA",                            {test_ufo_subscript(n=100000, c(T, T, NA),                                                         ufo_numeric         )})
test_that("ufo numeric subscript: T,NA,NA",                           {test_ufo_subscript(n=100000, c(T, NA, NA),                                                        ufo_numeric         )})
test_that("ufo numeric subscript: T..",                               {test_ufo_subscript(n=100000, rep(T, 100000),                                                      ufo_numeric         )})
test_that("ufo numeric subscript: F..",                               {test_ufo_subscript(n=100000, rep(F, 100000),                                                      ufo_numeric         )})
test_that("ufo numeric subscript: T,F..",                             {test_ufo_subscript(n=100000, rep(c(T,F), 100000),                                                 ufo_numeric         )})
test_that("ufo numeric subscript: F,T..",                             {test_ufo_subscript(n=100000, rep(c(F,T), 100000),                                                 ufo_numeric         )})
test_that("ufo numeric subscript: int integer(0)",                    {test_ufo_subscript(n=100000, integer(0),                                                          ufo_numeric         )})
test_that("ufo numeric subscript: int 0",                             {test_ufo_subscript(n=100000, as.integer(0),                                                       ufo_numeric         )})
test_that("ufo numeric subscript: int 1",                             {test_ufo_subscript(n=100000, as.integer(1),                                                       ufo_numeric         )})
test_that("ufo numeric subscript: int 10",                            {test_ufo_subscript(n=100000, as.integer(10),                                                      ufo_numeric         )})
test_that("ufo numeric subscript: int 42",                            {test_ufo_subscript(n=100000, as.integer(42),                                                      ufo_numeric         )})
test_that("ufo numeric subscript: int N+1",                           {test_ufo_subscript(n=100000, as.integer(100001),                                                  ufo_numeric         )})
test_that("ufo numeric subscript: int 0,0",                           {test_ufo_subscript(n=100000, as.integer(c(0, 0)),                                                 ufo_numeric         )})
test_that("ufo numeric subscript: int 0,1,0,N,0",                     {test_ufo_subscript(n=100000, as.integer(c(0, 1, 0, 100000, 0)),                                   ufo_numeric         )})
test_that("ufo numeric subscript: int 1,10,100,1000,100",             {test_ufo_subscript(n=100000, as.integer(c(1, 10, 100, 1000, 100)),                                ufo_numeric         )})
test_that("ufo numeric subscript: int -1",                            {test_ufo_subscript(n=100000, as.integer(-1),                                                      ufo_numeric         )})
test_that("ufo numeric subscript: int -10",                           {test_ufo_subscript(n=100000, as.integer(-10),                                                     ufo_numeric         )})
test_that("ufo numeric subscript: int -42",                           {test_ufo_subscript(n=100000, as.integer(-42),                                                     ufo_numeric         )})
test_that("ufo numeric subscript: int -1,-10,-100,-1000,-100",        {test_ufo_subscript(n=100000, as.integer(-c(1, 10, 100, 1000, 100)),                               ufo_numeric         )})
test_that("ufo numeric subscript: int few",                           {test_ufo_subscript(n=100000, as.integer(c(4, 10, 7, 100)),                                        ufo_numeric         )})
test_that("ufo numeric subscript: int many",                          {test_ufo_subscript(n=100000, as.integer(c(1:1000, 2000:5000, 10:1000, 6000:10000)),               ufo_numeric         )})
test_that("ufo numeric subscript: int all",                           {test_ufo_subscript(n=100000, as.integer(1:100000),                                                ufo_numeric         )})
test_that("ufo numeric subscript: int few with NAs",                  {test_ufo_subscript(n=100000, as.integer(c(4, 10, NA, 7, NA, 100, NA)),                            ufo_numeric         )})
test_that("ufo numeric subscript: int many with NAs",                 {test_ufo_subscript(n=100000, as.integer(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)),   ufo_numeric         )})
test_that("ufo numeric subscript: int all with NAs",                  {test_ufo_subscript(n=100000, as.integer(c(1:100000, NA)),                                         ufo_numeric         )})
test_that("ufo numeric subscript: int few negative",                  {test_ufo_subscript(n=100000, as.integer(-c(4, 10, 7, 100)),                                       ufo_numeric         )})
test_that("ufo numeric subscript: int many negative",                 {test_ufo_subscript(n=100000, as.integer(-c(1:1000, 2000:5000, 10:1000, 6000:10000)),              ufo_numeric         )})
test_that("ufo numeric subscript: int all negative",                  {test_ufo_subscript(n=100000, as.integer(-(1:100000)),                                             ufo_numeric         )})
test_that("ufo numeric subscript: num integer(0)",                    {test_ufo_subscript(n=100000, numeric(0),                                                          ufo_numeric         )})
test_that("ufo numeric subscript: num 0",                             {test_ufo_subscript(n=100000, as.numeric(0),                                                       ufo_numeric         )})
test_that("ufo numeric subscript: num 1",                             {test_ufo_subscript(n=100000, as.numeric(1),                                                       ufo_numeric         )})
test_that("ufo numeric subscript: num 10",                            {test_ufo_subscript(n=100000, as.numeric(10),                                                      ufo_numeric         )})
test_that("ufo numeric subscript: num 42",                            {test_ufo_subscript(n=100000, as.numeric(42),                                                      ufo_numeric         )})
test_that("ufo numeric subscript: num N+1",                           {test_ufo_subscript(n=100000, as.numeric(100001),                                                  ufo_numeric         )})
test_that("ufo numeric subscript: num 0,0",                           {test_ufo_subscript(n=100000, as.numeric(c(0, 0)),                                                 ufo_numeric         )})
test_that("ufo numeric subscript: num 0,1,0,N,0",                     {test_ufo_subscript(n=100000, as.numeric(c(0, 1, 0, 100000, 0)),                                   ufo_numeric         )})
test_that("ufo numeric subscript: num 1,10,100,1000,100",             {test_ufo_subscript(n=100000, as.numeric(c(1, 10, 100, 1000, 100)),                                ufo_numeric         )})
test_that("ufo numeric subscript: num -1",                            {test_ufo_subscript(n=100000, as.numeric(-1),                                                      ufo_numeric         )})
test_that("ufo numeric subscript: num -10",                           {test_ufo_subscript(n=100000, as.numeric(-10),                                                     ufo_numeric         )})
test_that("ufo numeric subscript: num -42",                           {test_ufo_subscript(n=100000, as.numeric(-42),                                                     ufo_numeric         )})
test_that("ufo numeric subscript: num -1,-10,-100,-1000,-100",        {test_ufo_subscript(n=100000, as.numeric(-c(1, 10, 100, 1000, 100)),                               ufo_numeric         )})
test_that("ufo numeric subscript: num few",                           {test_ufo_subscript(n=100000, as.numeric(c(4, 10, 7, 100)),                                        ufo_numeric         )})
test_that("ufo numeric subscript: num many",                          {test_ufo_subscript(n=100000, as.numeric(c(1:1000, 2000:5000, 10:1000, 6000:10000)),               ufo_numeric         )})
test_that("ufo numeric subscript: num all",                           {test_ufo_subscript(n=100000, as.numeric(1:100000),                                                ufo_numeric         )})
test_that("ufo numeric subscript: num few with NAs",                  {test_ufo_subscript(n=100000, as.numeric(c(4, 10, NA, 7, NA, 100, NA)),                            ufo_numeric         )})
test_that("ufo numeric subscript: num many with NAs",                 {test_ufo_subscript(n=100000, as.numeric(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)),   ufo_numeric         )})
test_that("ufo numeric subscript: num all with NAs",                  {test_ufo_subscript(n=100000, as.numeric(c(1:100000, NA)),                                         ufo_numeric         )})
test_that("ufo numeric subscript: num few negative",                  {test_ufo_subscript(n=100000, as.numeric(-c(4, 10, 7, 100)),                                       ufo_numeric         )})
test_that("ufo numeric subscript: num many negative",                 {test_ufo_subscript(n=100000, as.numeric(-c(1:1000, 2000:5000, 10:1000, 6000:10000)),              ufo_numeric         )})
test_that("ufo numeric subscript: num all negative",                  {test_ufo_subscript(n=100000, as.numeric(-(1:100000)),                                             ufo_numeric         )})
test_that("ufo numeric subscript: num 0.1",                           {test_ufo_subscript(n=100000, as.numeric(0.1),                                                     ufo_numeric         )})
test_that("ufo numeric subscript: num 1.1",                           {test_ufo_subscript(n=100000, as.numeric(1.1),                                                     ufo_numeric         )})
test_that("ufo numeric subscript: num 10.5",                          {test_ufo_subscript(n=100000, as.numeric(10.5),                                                    ufo_numeric         )})
test_that("ufo numeric subscript: num 42.9",                          {test_ufo_subscript(n=100000, as.numeric(42.9),                                                    ufo_numeric         )})
test_that("ufo numeric subscript: num -0.1",                          {test_ufo_subscript(n=100000, as.numeric(-0.1),                                                    ufo_numeric         )})
test_that("ufo numeric subscript: num -1.1",                          {test_ufo_subscript(n=100000, as.numeric(-1.1),                                                    ufo_numeric         )})
test_that("ufo numeric subscript: num -10.5",                         {test_ufo_subscript(n=100000, as.numeric(-10.5),                                                   ufo_numeric         )})
test_that("ufo numeric subscript: num -42.9",                         {test_ufo_subscript(n=100000, as.numeric(-42.9),                                                   ufo_numeric         )})
test_that("ufo numeric subscript: hash str character(0)",             {test_ufo_subscript(n=100000, character(0),                                                        ufo_numeric         )})
test_that("ufo numeric subscript: hash str 0",                        {test_ufo_subscript(n=100000, as.character(0),                                                     ufo_numeric         )})
test_that("ufo numeric subscript: hash str 1",                        {test_ufo_subscript(n=100000, as.character(1),                                                     ufo_numeric         )})
test_that("ufo numeric subscript: hash str 10",                       {test_ufo_subscript(n=100000, as.character(10),                                                    ufo_numeric         )})
test_that("ufo numeric subscript: hash str 42",                       {test_ufo_subscript(n=100000, as.character(42),                                                    ufo_numeric         )})
test_that("ufo numeric subscript: hash str N+1",                      {test_ufo_subscript(n=100000, as.character(100001),                                                ufo_numeric         )})
test_that("ufo numeric subscript: hash str 0,0",                      {test_ufo_subscript(n=100000, as.character(c(0, 0)),                                               ufo_numeric         )})
test_that("ufo numeric subscript: hash str 0,1,0,N,0",                {test_ufo_subscript(n=100000, as.character(c(0, 1, 0, 100000, 0)),                                 ufo_numeric         )})
test_that("ufo numeric subscript: hash str 1,10,100,1000,100",        {test_ufo_subscript(n=100000, as.character(c(1, 10, 100, 1000, 100)),                              ufo_numeric         )})
test_that("ufo numeric subscript: hash str few",                      {test_ufo_subscript(n=100000, as.character(c(4, 10, 7, 100)),                                      ufo_numeric         )})
test_that("ufo numeric subscript: hash str many",                     {test_ufo_subscript(n=100000, as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_numeric         )})
test_that("ufo numeric subscript: hash str all",                      {test_ufo_subscript(n=100000, as.character(1:100000),                                              ufo_numeric         )})
test_that("ufo numeric subscript: hash str few with NAs",             {test_ufo_subscript(n=100000, as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_numeric         )})
test_that("ufo numeric subscript: hash str many with NAs",            {test_ufo_subscript(n=100000, as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_numeric         )})
test_that("ufo numeric subscript: hash str all with NAs",             {test_ufo_subscript(n=100000, as.character(c(1:100000, NA)),                                       ufo_numeric         )})
test_that("ufo numeric subscript: loop str character(0)",             {test_ufo_subscript(n=10,     character(0),                                                        ufo_numeric         )})
test_that("ufo numeric subscript: loop str 0",                        {test_ufo_subscript(n=10,     as.character(0),                                                     ufo_numeric         )})
test_that("ufo numeric subscript: loop str 1",                        {test_ufo_subscript(n=10,     as.character(1),                                                     ufo_numeric         )})
test_that("ufo numeric subscript: loop str 10",                       {test_ufo_subscript(n=10,     as.character(10),                                                    ufo_numeric         )})
test_that("ufo numeric subscript: loop str 42",                       {test_ufo_subscript(n=10,     as.character(42),                                                    ufo_numeric         )})
test_that("ufo numeric subscript: loop str N+1",                      {test_ufo_subscript(n=10,     as.character(11),                                                    ufo_numeric         )})
test_that("ufo numeric subscript: loop str 0,0",                      {test_ufo_subscript(n=10,     as.character(c(0, 0)),                                               ufo_numeric         )})
test_that("ufo numeric subscript: loop str 0,1,0,N,0",                {test_ufo_subscript(n=10,     as.character(c(0, 1, 0, 10, 0)),                                     ufo_numeric         )})
test_that("ufo numeric subscript: loop str 1,10,100,1000,100",        {test_ufo_subscript(n=10,     as.character(c(1, 10, 100, 1000, 100)),                              ufo_numeric         )})
test_that("ufo numeric subscript: loop str few",                      {test_ufo_subscript(n=10,     as.character(c(4, 10, 7, 100)),                                      ufo_numeric         )})
test_that("ufo numeric subscript: loop str many",                     {test_ufo_subscript(n=10,     as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_numeric         )})
test_that("ufo numeric subscript: loop str all",                      {test_ufo_subscript(n=10,     as.character(1:100000),                                              ufo_numeric         )})
test_that("ufo numeric subscript: loop str few with NAs",             {test_ufo_subscript(n=10,     as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_numeric         )})
test_that("ufo numeric subscript: loop str many with NAs",            {test_ufo_subscript(n=10,     as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_numeric         )})
test_that("ufo numeric subscript: loop str all with NAs",             {test_ufo_subscript(n=10,     as.character(c(1:100000, NA)),                                       ufo_numeric         )})
test_that("ufo numeric+names subscript: hash str character(0)",       {test_ufo_subscript(n=100000, character(0),                                                        ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: hash str 0",                  {test_ufo_subscript(n=100000, as.character(0),                                                     ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: hash str 1",                  {test_ufo_subscript(n=100000, as.character(1),                                                     ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: hash str 10",                 {test_ufo_subscript(n=100000, as.character(10),                                                    ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: hash str 42",                 {test_ufo_subscript(n=100000, as.character(42),                                                    ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: hash str N+1",                {test_ufo_subscript(n=100000, as.character(100001),                                                ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: hash str 0,0",                {test_ufo_subscript(n=100000, as.character(c(0, 0)),                                               ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: hash str 0,1,0,N,0",          {test_ufo_subscript(n=100000, as.character(c(0, 1, 0, 100000, 0)),                                 ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: hash str 1,10,100,1000,100",  {test_ufo_subscript(n=100000, as.character(c(1, 10, 100, 1000, 100)),                              ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: hash str few",                {test_ufo_subscript(n=100000, as.character(c(4, 10, 7, 100)),                                      ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: hash str many",               {test_ufo_subscript(n=100000, as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: hash str all",                {test_ufo_subscript(n=100000, as.character(1:100000),                                              ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: hash str few with NAs",       {test_ufo_subscript(n=100000, as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: hash str many with NAs",      {test_ufo_subscript(n=100000, as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: hash str all with NAs",       {test_ufo_subscript(n=100000, as.character(c(1:100000, NA)),                                       ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: loop str character(0)",       {test_ufo_subscript(n=10,     character(0),                                                        ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: loop str 0",                  {test_ufo_subscript(n=10,     as.character(0),                                                     ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: loop str 1",                  {test_ufo_subscript(n=10,     as.character(1),                                                     ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: loop str 10",                 {test_ufo_subscript(n=10,     as.character(10),                                                    ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: loop str 42",                 {test_ufo_subscript(n=10,     as.character(42),                                                    ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: loop str N+1",                {test_ufo_subscript(n=10,     as.character(11),                                                    ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: loop str 0,0",                {test_ufo_subscript(n=10,     as.character(c(0, 0)),                                               ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: loop str 0,1,0,N,0",          {test_ufo_subscript(n=10,     as.character(c(0, 1, 0, 10, 0)),                                     ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: loop str 1,10,100,1000,100",  {test_ufo_subscript(n=10,     as.character(c(1, 10, 100, 1000, 100)),                              ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: loop str few",                {test_ufo_subscript(n=10,     as.character(c(4, 10, 7, 100)),                                      ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: loop str many",               {test_ufo_subscript(n=10,     as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: loop str all",                {test_ufo_subscript(n=10,     as.character(1:100000),                                              ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: loop str few with NAs",       {test_ufo_subscript(n=10,     as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: loop str many with NAs",      {test_ufo_subscript(n=10,     as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_numeric, named=T)})
test_that("ufo numeric+names subscript: loop str all with NAs",       {test_ufo_subscript(n=10,     as.character(c(1:100000, NA)),                                       ufo_numeric, named=T)})

test_that("ufo logical subscript: null",                              {test_ufo_subscript(n=100000, NULL,                                                                ufo_logical         )})
test_that("ufo logical subscript: logical(0)",                        {test_ufo_subscript(n=100000, logical(0),                                                          ufo_logical         )})
test_that("ufo logical subscript: F",                                 {test_ufo_subscript(n=100000, c(T),                                                                ufo_logical         )})
test_that("ufo logical subscript: T",                                 {test_ufo_subscript(n=100000, c(F),                                                                ufo_logical         )})
test_that("ufo logical subscript: logical(NA)",                       {test_ufo_subscript(n=100000, as.logical(NA),                                                      ufo_logical         )})
test_that("ufo logical subscript: F,F",                               {test_ufo_subscript(n=100000, c(F, F),                                                             ufo_logical         )})
test_that("ufo logical subscript: F,T",                               {test_ufo_subscript(n=100000, c(F, T),                                                             ufo_logical         )})
test_that("ufo logical subscript: T,F",                               {test_ufo_subscript(n=100000, c(T, F),                                                             ufo_logical         )})
test_that("ufo logical subscript: T,T",                               {test_ufo_subscript(n=100000, c(T, T),                                                             ufo_logical         )})
test_that("ufo logical subscript: F,NA",                              {test_ufo_subscript(n=100000, c(F, NA),                                                            ufo_logical         )})
test_that("ufo logical subscript: NA,F",                              {test_ufo_subscript(n=100000, c(NA, F),                                                            ufo_logical         )})
test_that("ufo logical subscript: NA,T",                              {test_ufo_subscript(n=100000, c(NA, T),                                                            ufo_logical         )})
test_that("ufo logical subscript: T,NA",                              {test_ufo_subscript(n=100000, c(T, NA),                                                            ufo_logical         )})
test_that("ufo logical subscript: F,F,F",                             {test_ufo_subscript(n=100000, c(F, F, F),                                                          ufo_logical         )})
test_that("ufo logical subscript: F,F,T",                             {test_ufo_subscript(n=100000, c(F, F, T),                                                          ufo_logical         )})
test_that("ufo logical subscript: F,T,F",                             {test_ufo_subscript(n=100000, c(F, T, F),                                                          ufo_logical         )})
test_that("ufo logical subscript: F,T,T",                             {test_ufo_subscript(n=100000, c(F, T, T),                                                          ufo_logical         )})
test_that("ufo logical subscript: T,F,F",                             {test_ufo_subscript(n=100000, c(T, F, F),                                                          ufo_logical         )})
test_that("ufo logical subscript: T,F,T",                             {test_ufo_subscript(n=100000, c(T, F, T),                                                          ufo_logical         )})
test_that("ufo logical subscript: T,T,F",                             {test_ufo_subscript(n=100000, c(T, T, F),                                                          ufo_logical         )})
test_that("ufo logical subscript: T,T,T",                             {test_ufo_subscript(n=100000, c(T, T, T),                                                          ufo_logical         )})
test_that("ufo logical subscript: F,F,NA",                            {test_ufo_subscript(n=100000, c(F, F, NA),                                                         ufo_logical         )})
test_that("ufo logical subscript: F,NA,F",                            {test_ufo_subscript(n=100000, c(F, NA, F),                                                         ufo_logical         )})
test_that("ufo logical subscript: F,NA,NA",                           {test_ufo_subscript(n=100000, c(F, NA, NA),                                                        ufo_logical         )})
test_that("ufo logical subscript: NA,F,F",                            {test_ufo_subscript(n=100000, c(NA, F, F),                                                         ufo_logical         )})
test_that("ufo logical subscript: NA,F,NA",                           {test_ufo_subscript(n=100000, c(NA, F, NA),                                                        ufo_logical         )})
test_that("ufo logical subscript: NA,NA,F",                           {test_ufo_subscript(n=100000, c(NA, NA, F),                                                        ufo_logical         )})
test_that("ufo logical subscript: F,F,T",                             {test_ufo_subscript(n=100000, c(F, F, T),                                                          ufo_logical         )})
test_that("ufo logical subscript: F,NA,T",                            {test_ufo_subscript(n=100000, c(F, NA, T),                                                         ufo_logical         )})
test_that("ufo logical subscript: NA,F,T",                            {test_ufo_subscript(n=100000, c(NA, F, T),                                                         ufo_logical         )})
test_that("ufo logical subscript: NA,NA,T",                           {test_ufo_subscript(n=100000, c(NA, NA, T),                                                        ufo_logical         )})
test_that("ufo logical subscript: F,T,NA",                            {test_ufo_subscript(n=100000, c(F, T, NA),                                                         ufo_logical         )})
test_that("ufo logical subscript: NA,T,F",                            {test_ufo_subscript(n=100000, c(NA, T, F),                                                         ufo_logical         )})
test_that("ufo logical subscript: NA,T,NA",                           {test_ufo_subscript(n=100000, c(NA, T, NA),                                                        ufo_logical         )})
test_that("ufo logical subscript: F,NA,T",                            {test_ufo_subscript(n=100000, c(F, NA, T),                                                         ufo_logical         )})
test_that("ufo logical subscript: NA,T,T",                            {test_ufo_subscript(n=100000, c(NA, T, T),                                                         ufo_logical         )})
test_that("ufo logical subscript: T,F,NA",                            {test_ufo_subscript(n=100000, c(T, F, NA),                                                         ufo_logical         )})
test_that("ufo logical subscript: T,NA,F",                            {test_ufo_subscript(n=100000, c(T, NA, F),                                                         ufo_logical         )})
test_that("ufo logical subscript: T,NA,NA",                           {test_ufo_subscript(n=100000, c(T, NA, NA),                                                        ufo_logical         )})
test_that("ufo logical subscript: T,NA,T",                            {test_ufo_subscript(n=100000, c(T, NA, T),                                                         ufo_logical         )})
test_that("ufo logical subscript: T,T,NA",                            {test_ufo_subscript(n=100000, c(T, T, NA),                                                         ufo_logical         )})
test_that("ufo logical subscript: T,NA,NA",                           {test_ufo_subscript(n=100000, c(T, NA, NA),                                                        ufo_logical         )})
test_that("ufo logical subscript: T..",                               {test_ufo_subscript(n=100000, rep(T, 100000),                                                      ufo_logical         )})
test_that("ufo logical subscript: F..",                               {test_ufo_subscript(n=100000, rep(F, 100000),                                                      ufo_logical         )})
test_that("ufo logical subscript: T,F..",                             {test_ufo_subscript(n=100000, rep(c(T,F), 100000),                                                 ufo_logical         )})
test_that("ufo logical subscript: F,T..",                             {test_ufo_subscript(n=100000, rep(c(F,T), 100000),                                                 ufo_logical         )})
test_that("ufo logical subscript: int integer(0)",                    {test_ufo_subscript(n=100000, integer(0),                                                          ufo_logical         )})
test_that("ufo logical subscript: int 0",                             {test_ufo_subscript(n=100000, as.integer(0),                                                       ufo_logical         )})
test_that("ufo logical subscript: int 1",                             {test_ufo_subscript(n=100000, as.integer(1),                                                       ufo_logical         )})
test_that("ufo logical subscript: int 10",                            {test_ufo_subscript(n=100000, as.integer(10),                                                      ufo_logical         )})
test_that("ufo logical subscript: int 42",                            {test_ufo_subscript(n=100000, as.integer(42),                                                      ufo_logical         )})
test_that("ufo logical subscript: int N+1",                           {test_ufo_subscript(n=100000, as.integer(100001),                                                  ufo_logical         )})
test_that("ufo logical subscript: int 0,0",                           {test_ufo_subscript(n=100000, as.integer(c(0, 0)),                                                 ufo_logical         )})
test_that("ufo logical subscript: int 0,1,0,N,0",                     {test_ufo_subscript(n=100000, as.integer(c(0, 1, 0, 100000, 0)),                                   ufo_logical         )})
test_that("ufo logical subscript: int 1,10,100,1000,100",             {test_ufo_subscript(n=100000, as.integer(c(1, 10, 100, 1000, 100)),                                ufo_logical         )})
test_that("ufo logical subscript: int -1",                            {test_ufo_subscript(n=100000, as.integer(-1),                                                      ufo_logical         )})
test_that("ufo logical subscript: int -10",                           {test_ufo_subscript(n=100000, as.integer(-10),                                                     ufo_logical         )})
test_that("ufo logical subscript: int -42",                           {test_ufo_subscript(n=100000, as.integer(-42),                                                     ufo_logical         )})
test_that("ufo logical subscript: int -1,-10,-100,-1000,-100",        {test_ufo_subscript(n=100000, as.integer(-c(1, 10, 100, 1000, 100)),                               ufo_logical         )})
test_that("ufo logical subscript: int few",                           {test_ufo_subscript(n=100000, as.integer(c(4, 10, 7, 100)),                                        ufo_logical         )})
test_that("ufo logical subscript: int many",                          {test_ufo_subscript(n=100000, as.integer(c(1:1000, 2000:5000, 10:1000, 6000:10000)),               ufo_logical         )})
test_that("ufo logical subscript: int all",                           {test_ufo_subscript(n=100000, as.integer(1:100000),                                                ufo_logical         )})
test_that("ufo logical subscript: int few with NAs",                  {test_ufo_subscript(n=100000, as.integer(c(4, 10, NA, 7, NA, 100, NA)),                            ufo_logical         )})
test_that("ufo logical subscript: int many with NAs",                 {test_ufo_subscript(n=100000, as.integer(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)),   ufo_logical         )})
test_that("ufo logical subscript: int all with NAs",                  {test_ufo_subscript(n=100000, as.integer(c(1:100000, NA)),                                         ufo_logical         )})
test_that("ufo logical subscript: int few negative",                  {test_ufo_subscript(n=100000, as.integer(-c(4, 10, 7, 100)),                                       ufo_logical         )})
test_that("ufo logical subscript: int many negative",                 {test_ufo_subscript(n=100000, as.integer(-c(1:1000, 2000:5000, 10:1000, 6000:10000)),              ufo_logical         )})
test_that("ufo logical subscript: int all negative",                  {test_ufo_subscript(n=100000, as.integer(-(1:100000)),                                             ufo_logical         )})
test_that("ufo logical subscript: num integer(0)",                    {test_ufo_subscript(n=100000, numeric(0),                                                          ufo_logical         )})
test_that("ufo logical subscript: num 0",                             {test_ufo_subscript(n=100000, as.numeric(0),                                                       ufo_logical         )})
test_that("ufo logical subscript: num 1",                             {test_ufo_subscript(n=100000, as.numeric(1),                                                       ufo_logical         )})
test_that("ufo logical subscript: num 10",                            {test_ufo_subscript(n=100000, as.numeric(10),                                                      ufo_logical         )})
test_that("ufo logical subscript: num 42",                            {test_ufo_subscript(n=100000, as.numeric(42),                                                      ufo_logical         )})
test_that("ufo logical subscript: num N+1",                           {test_ufo_subscript(n=100000, as.numeric(100001),                                                  ufo_logical         )})
test_that("ufo logical subscript: num 0,0",                           {test_ufo_subscript(n=100000, as.numeric(c(0, 0)),                                                 ufo_logical         )})
test_that("ufo logical subscript: num 0,1,0,N,0",                     {test_ufo_subscript(n=100000, as.numeric(c(0, 1, 0, 100000, 0)),                                   ufo_logical         )})
test_that("ufo logical subscript: num 1,10,100,1000,100",             {test_ufo_subscript(n=100000, as.numeric(c(1, 10, 100, 1000, 100)),                                ufo_logical         )})
test_that("ufo logical subscript: num -1",                            {test_ufo_subscript(n=100000, as.numeric(-1),                                                      ufo_logical         )})
test_that("ufo logical subscript: num -10",                           {test_ufo_subscript(n=100000, as.numeric(-10),                                                     ufo_logical         )})
test_that("ufo logical subscript: num -42",                           {test_ufo_subscript(n=100000, as.numeric(-42),                                                     ufo_logical         )})
test_that("ufo logical subscript: num -1,-10,-100,-1000,-100",        {test_ufo_subscript(n=100000, as.numeric(-c(1, 10, 100, 1000, 100)),                               ufo_logical         )})
test_that("ufo logical subscript: num few",                           {test_ufo_subscript(n=100000, as.numeric(c(4, 10, 7, 100)),                                        ufo_logical         )})
test_that("ufo logical subscript: num many",                          {test_ufo_subscript(n=100000, as.numeric(c(1:1000, 2000:5000, 10:1000, 6000:10000)),               ufo_logical         )})
test_that("ufo logical subscript: num all",                           {test_ufo_subscript(n=100000, as.numeric(1:100000),                                                ufo_logical         )})
test_that("ufo logical subscript: num few with NAs",                  {test_ufo_subscript(n=100000, as.numeric(c(4, 10, NA, 7, NA, 100, NA)),                            ufo_logical         )})
test_that("ufo logical subscript: num many with NAs",                 {test_ufo_subscript(n=100000, as.numeric(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)),   ufo_logical         )})
test_that("ufo logical subscript: num all with NAs",                  {test_ufo_subscript(n=100000, as.numeric(c(1:100000, NA)),                                         ufo_logical         )})
test_that("ufo logical subscript: num few negative",                  {test_ufo_subscript(n=100000, as.numeric(-c(4, 10, 7, 100)),                                       ufo_logical         )})
test_that("ufo logical subscript: num many negative",                 {test_ufo_subscript(n=100000, as.numeric(-c(1:1000, 2000:5000, 10:1000, 6000:10000)),              ufo_logical         )})
test_that("ufo logical subscript: num all negative",                  {test_ufo_subscript(n=100000, as.numeric(-(1:100000)),                                             ufo_logical         )})
test_that("ufo logical subscript: num 0.1",                           {test_ufo_subscript(n=100000, as.numeric(0.1),                                                     ufo_logical         )})
test_that("ufo logical subscript: num 1.1",                           {test_ufo_subscript(n=100000, as.numeric(1.1),                                                     ufo_logical         )})
test_that("ufo logical subscript: num 10.5",                          {test_ufo_subscript(n=100000, as.numeric(10.5),                                                    ufo_logical         )})
test_that("ufo logical subscript: num 42.9",                          {test_ufo_subscript(n=100000, as.numeric(42.9),                                                    ufo_logical         )})
test_that("ufo logical subscript: num -0.1",                          {test_ufo_subscript(n=100000, as.numeric(-0.1),                                                    ufo_logical         )})
test_that("ufo logical subscript: num -1.1",                          {test_ufo_subscript(n=100000, as.numeric(-1.1),                                                    ufo_logical         )})
test_that("ufo logical subscript: num -10.5",                         {test_ufo_subscript(n=100000, as.numeric(-10.5),                                                   ufo_logical         )})
test_that("ufo logical subscript: num -42.9",                         {test_ufo_subscript(n=100000, as.numeric(-42.9),                                                   ufo_logical         )})
test_that("ufo logical subscript: hash str character(0)",             {test_ufo_subscript(n=100000, character(0),                                                        ufo_logical         )})
test_that("ufo logical subscript: hash str 0",                        {test_ufo_subscript(n=100000, as.character(0),                                                     ufo_logical         )})
test_that("ufo logical subscript: hash str 1",                        {test_ufo_subscript(n=100000, as.character(1),                                                     ufo_logical         )})
test_that("ufo logical subscript: hash str 10",                       {test_ufo_subscript(n=100000, as.character(10),                                                    ufo_logical         )})
test_that("ufo logical subscript: hash str 42",                       {test_ufo_subscript(n=100000, as.character(42),                                                    ufo_logical         )})
test_that("ufo logical subscript: hash str N+1",                      {test_ufo_subscript(n=100000, as.character(100001),                                                ufo_logical         )})
test_that("ufo logical subscript: hash str 0,0",                      {test_ufo_subscript(n=100000, as.character(c(0, 0)),                                               ufo_logical         )})
test_that("ufo logical subscript: hash str 0,1,0,N,0",                {test_ufo_subscript(n=100000, as.character(c(0, 1, 0, 100000, 0)),                                 ufo_logical         )})
test_that("ufo logical subscript: hash str 1,10,100,1000,100",        {test_ufo_subscript(n=100000, as.character(c(1, 10, 100, 1000, 100)),                              ufo_logical         )})
test_that("ufo logical subscript: hash str few",                      {test_ufo_subscript(n=100000, as.character(c(4, 10, 7, 100)),                                      ufo_logical         )})
test_that("ufo logical subscript: hash str many",                     {test_ufo_subscript(n=100000, as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_logical         )})
test_that("ufo logical subscript: hash str all",                      {test_ufo_subscript(n=100000, as.character(1:100000),                                              ufo_logical         )})
test_that("ufo logical subscript: hash str few with NAs",             {test_ufo_subscript(n=100000, as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_logical         )})
test_that("ufo logical subscript: hash str many with NAs",            {test_ufo_subscript(n=100000, as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_logical         )})
test_that("ufo logical subscript: hash str all with NAs",             {test_ufo_subscript(n=100000, as.character(c(1:100000, NA)),                                       ufo_logical         )})
test_that("ufo logical subscript: loop str character(0)",             {test_ufo_subscript(n=10,     character(0),                                                        ufo_logical         )})
test_that("ufo logical subscript: loop str 0",                        {test_ufo_subscript(n=10,     as.character(0),                                                     ufo_logical         )})
test_that("ufo logical subscript: loop str 1",                        {test_ufo_subscript(n=10,     as.character(1),                                                     ufo_logical         )})
test_that("ufo logical subscript: loop str 10",                       {test_ufo_subscript(n=10,     as.character(10),                                                    ufo_logical         )})
test_that("ufo logical subscript: loop str 42",                       {test_ufo_subscript(n=10,     as.character(42),                                                    ufo_logical         )})
test_that("ufo logical subscript: loop str N+1",                      {test_ufo_subscript(n=10,     as.character(11),                                                    ufo_logical         )})
test_that("ufo logical subscript: loop str 0,0",                      {test_ufo_subscript(n=10,     as.character(c(0, 0)),                                               ufo_logical         )})
test_that("ufo logical subscript: loop str 0,1,0,N,0",                {test_ufo_subscript(n=10,     as.character(c(0, 1, 0, 10, 0)),                                     ufo_logical         )})
test_that("ufo logical subscript: loop str 1,10,100,1000,100",        {test_ufo_subscript(n=10,     as.character(c(1, 10, 100, 1000, 100)),                              ufo_logical         )})
test_that("ufo logical subscript: loop str few",                      {test_ufo_subscript(n=10,     as.character(c(4, 10, 7, 100)),                                      ufo_logical         )})
test_that("ufo logical subscript: loop str many",                     {test_ufo_subscript(n=10,     as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_logical         )})
test_that("ufo logical subscript: loop str all",                      {test_ufo_subscript(n=10,     as.character(1:100000),                                              ufo_logical         )})
test_that("ufo logical subscript: loop str few with NAs",             {test_ufo_subscript(n=10,     as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_logical         )})
test_that("ufo logical subscript: loop str many with NAs",            {test_ufo_subscript(n=10,     as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_logical         )})
test_that("ufo logical subscript: loop str all with NAs",             {test_ufo_subscript(n=10,     as.character(c(1:100000, NA)),                                       ufo_logical         )})
test_that("ufo logical+names subscript: hash str character(0)",       {test_ufo_subscript(n=100000, character(0),                                                        ufo_logical, named=T)})
test_that("ufo logical+names subscript: hash str 0",                  {test_ufo_subscript(n=100000, as.character(0),                                                     ufo_logical, named=T)})
test_that("ufo logical+names subscript: hash str 1",                  {test_ufo_subscript(n=100000, as.character(1),                                                     ufo_logical, named=T)})
test_that("ufo logical+names subscript: hash str 10",                 {test_ufo_subscript(n=100000, as.character(10),                                                    ufo_logical, named=T)})
test_that("ufo logical+names subscript: hash str 42",                 {test_ufo_subscript(n=100000, as.character(42),                                                    ufo_logical, named=T)})
test_that("ufo logical+names subscript: hash str N+1",                {test_ufo_subscript(n=100000, as.character(100001),                                                ufo_logical, named=T)})
test_that("ufo logical+names subscript: hash str 0,0",                {test_ufo_subscript(n=100000, as.character(c(0, 0)),                                               ufo_logical, named=T)})
test_that("ufo logical+names subscript: hash str 0,1,0,N,0",          {test_ufo_subscript(n=100000, as.character(c(0, 1, 0, 100000, 0)),                                 ufo_logical, named=T)})
test_that("ufo logical+names subscript: hash str 1,10,100,1000,100",  {test_ufo_subscript(n=100000, as.character(c(1, 10, 100, 1000, 100)),                              ufo_logical, named=T)})
test_that("ufo logical+names subscript: hash str few",                {test_ufo_subscript(n=100000, as.character(c(4, 10, 7, 100)),                                      ufo_logical, named=T)})
test_that("ufo logical+names subscript: hash str many",               {test_ufo_subscript(n=100000, as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_logical, named=T)})
test_that("ufo logical+names subscript: hash str all",                {test_ufo_subscript(n=100000, as.character(1:100000),                                              ufo_logical, named=T)})
test_that("ufo logical+names subscript: hash str few with NAs",       {test_ufo_subscript(n=100000, as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_logical, named=T)})
test_that("ufo logical+names subscript: hash str many with NAs",      {test_ufo_subscript(n=100000, as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_logical, named=T)})
test_that("ufo logical+names subscript: hash str all with NAs",       {test_ufo_subscript(n=100000, as.character(c(1:100000, NA)),                                       ufo_logical, named=T)})
test_that("ufo logical+names subscript: loop str character(0)",       {test_ufo_subscript(n=10,     character(0),                                                        ufo_logical, named=T)})
test_that("ufo logical+names subscript: loop str 0",                  {test_ufo_subscript(n=10,     as.character(0),                                                     ufo_logical, named=T)})
test_that("ufo logical+names subscript: loop str 1",                  {test_ufo_subscript(n=10,     as.character(1),                                                     ufo_logical, named=T)})
test_that("ufo logical+names subscript: loop str 10",                 {test_ufo_subscript(n=10,     as.character(10),                                                    ufo_logical, named=T)})
test_that("ufo logical+names subscript: loop str 42",                 {test_ufo_subscript(n=10,     as.character(42),                                                    ufo_logical, named=T)})
test_that("ufo logical+names subscript: loop str N+1",                {test_ufo_subscript(n=10,     as.character(11),                                                    ufo_logical, named=T)})
test_that("ufo logical+names subscript: loop str 0,0",                {test_ufo_subscript(n=10,     as.character(c(0, 0)),                                               ufo_logical, named=T)})
test_that("ufo logical+names subscript: loop str 0,1,0,N,0",          {test_ufo_subscript(n=10,     as.character(c(0, 1, 0, 10, 0)),                                     ufo_logical, named=T)})
test_that("ufo logical+names subscript: loop str 1,10,100,1000,100",  {test_ufo_subscript(n=10,     as.character(c(1, 10, 100, 1000, 100)),                              ufo_logical, named=T)})
test_that("ufo logical+names subscript: loop str few",                {test_ufo_subscript(n=10,     as.character(c(4, 10, 7, 100)),                                      ufo_logical, named=T)})
test_that("ufo logical+names subscript: loop str many",               {test_ufo_subscript(n=10,     as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_logical, named=T)})
test_that("ufo logical+names subscript: loop str all",                {test_ufo_subscript(n=10,     as.character(1:100000),                                              ufo_logical, named=T)})
test_that("ufo logical+names subscript: loop str few with NAs",       {test_ufo_subscript(n=10,     as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_logical, named=T)})
test_that("ufo logical+names subscript: loop str many with NAs",      {test_ufo_subscript(n=10,     as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_logical, named=T)})
test_that("ufo logical+names subscript: loop str all with NAs",       {test_ufo_subscript(n=10,     as.character(c(1:100000, NA)),                                       ufo_logical, named=T)})

test_that("ufo complex subscript: null",                              {test_ufo_subscript(n=100000, NULL,                                                                ufo_complex         )})
test_that("ufo complex subscript: logical(0)",                        {test_ufo_subscript(n=100000, logical(0),                                                          ufo_complex         )})
test_that("ufo complex subscript: F",                                 {test_ufo_subscript(n=100000, c(T),                                                                ufo_complex         )})
test_that("ufo complex subscript: T",                                 {test_ufo_subscript(n=100000, c(F),                                                                ufo_complex         )})
test_that("ufo complex subscript: logical(NA)",                       {test_ufo_subscript(n=100000, as.logical(NA),                                                      ufo_complex         )})
test_that("ufo complex subscript: F,F",                               {test_ufo_subscript(n=100000, c(F, F),                                                             ufo_complex         )})
test_that("ufo complex subscript: F,T",                               {test_ufo_subscript(n=100000, c(F, T),                                                             ufo_complex         )})
test_that("ufo complex subscript: T,F",                               {test_ufo_subscript(n=100000, c(T, F),                                                             ufo_complex         )})
test_that("ufo complex subscript: T,T",                               {test_ufo_subscript(n=100000, c(T, T),                                                             ufo_complex         )})
test_that("ufo complex subscript: F,NA",                              {test_ufo_subscript(n=100000, c(F, NA),                                                            ufo_complex         )})
test_that("ufo complex subscript: NA,F",                              {test_ufo_subscript(n=100000, c(NA, F),                                                            ufo_complex         )})
test_that("ufo complex subscript: NA,T",                              {test_ufo_subscript(n=100000, c(NA, T),                                                            ufo_complex         )})
test_that("ufo complex subscript: T,NA",                              {test_ufo_subscript(n=100000, c(T, NA),                                                            ufo_complex         )})
test_that("ufo complex subscript: F,F,F",                             {test_ufo_subscript(n=100000, c(F, F, F),                                                          ufo_complex         )})
test_that("ufo complex subscript: F,F,T",                             {test_ufo_subscript(n=100000, c(F, F, T),                                                          ufo_complex         )})
test_that("ufo complex subscript: F,T,F",                             {test_ufo_subscript(n=100000, c(F, T, F),                                                          ufo_complex         )})
test_that("ufo complex subscript: F,T,T",                             {test_ufo_subscript(n=100000, c(F, T, T),                                                          ufo_complex         )})
test_that("ufo complex subscript: T,F,F",                             {test_ufo_subscript(n=100000, c(T, F, F),                                                          ufo_complex         )})
test_that("ufo complex subscript: T,F,T",                             {test_ufo_subscript(n=100000, c(T, F, T),                                                          ufo_complex         )})
test_that("ufo complex subscript: T,T,F",                             {test_ufo_subscript(n=100000, c(T, T, F),                                                          ufo_complex         )})
test_that("ufo complex subscript: T,T,T",                             {test_ufo_subscript(n=100000, c(T, T, T),                                                          ufo_complex         )})
test_that("ufo complex subscript: F,F,NA",                            {test_ufo_subscript(n=100000, c(F, F, NA),                                                         ufo_complex         )})
test_that("ufo complex subscript: F,NA,F",                            {test_ufo_subscript(n=100000, c(F, NA, F),                                                         ufo_complex         )})
test_that("ufo complex subscript: F,NA,NA",                           {test_ufo_subscript(n=100000, c(F, NA, NA),                                                        ufo_complex         )})
test_that("ufo complex subscript: NA,F,F",                            {test_ufo_subscript(n=100000, c(NA, F, F),                                                         ufo_complex         )})
test_that("ufo complex subscript: NA,F,NA",                           {test_ufo_subscript(n=100000, c(NA, F, NA),                                                        ufo_complex         )})
test_that("ufo complex subscript: NA,NA,F",                           {test_ufo_subscript(n=100000, c(NA, NA, F),                                                        ufo_complex         )})
test_that("ufo complex subscript: F,F,T",                             {test_ufo_subscript(n=100000, c(F, F, T),                                                          ufo_complex         )})
test_that("ufo complex subscript: F,NA,T",                            {test_ufo_subscript(n=100000, c(F, NA, T),                                                         ufo_complex         )})
test_that("ufo complex subscript: NA,F,T",                            {test_ufo_subscript(n=100000, c(NA, F, T),                                                         ufo_complex         )})
test_that("ufo complex subscript: NA,NA,T",                           {test_ufo_subscript(n=100000, c(NA, NA, T),                                                        ufo_complex         )})
test_that("ufo complex subscript: F,T,NA",                            {test_ufo_subscript(n=100000, c(F, T, NA),                                                         ufo_complex         )})
test_that("ufo complex subscript: NA,T,F",                            {test_ufo_subscript(n=100000, c(NA, T, F),                                                         ufo_complex         )})
test_that("ufo complex subscript: NA,T,NA",                           {test_ufo_subscript(n=100000, c(NA, T, NA),                                                        ufo_complex         )})
test_that("ufo complex subscript: F,NA,T",                            {test_ufo_subscript(n=100000, c(F, NA, T),                                                         ufo_complex         )})
test_that("ufo complex subscript: NA,T,T",                            {test_ufo_subscript(n=100000, c(NA, T, T),                                                         ufo_complex         )})
test_that("ufo complex subscript: T,F,NA",                            {test_ufo_subscript(n=100000, c(T, F, NA),                                                         ufo_complex         )})
test_that("ufo complex subscript: T,NA,F",                            {test_ufo_subscript(n=100000, c(T, NA, F),                                                         ufo_complex         )})
test_that("ufo complex subscript: T,NA,NA",                           {test_ufo_subscript(n=100000, c(T, NA, NA),                                                        ufo_complex         )})
test_that("ufo complex subscript: T,NA,T",                            {test_ufo_subscript(n=100000, c(T, NA, T),                                                         ufo_complex         )})
test_that("ufo complex subscript: T,T,NA",                            {test_ufo_subscript(n=100000, c(T, T, NA),                                                         ufo_complex         )})
test_that("ufo complex subscript: T,NA,NA",                           {test_ufo_subscript(n=100000, c(T, NA, NA),                                                        ufo_complex         )})
test_that("ufo complex subscript: T..",                               {test_ufo_subscript(n=100000, rep(T, 100000),                                                      ufo_complex         )})
test_that("ufo complex subscript: F..",                               {test_ufo_subscript(n=100000, rep(F, 100000),                                                      ufo_complex         )})
test_that("ufo complex subscript: T,F..",                             {test_ufo_subscript(n=100000, rep(c(T,F), 100000),                                                 ufo_complex         )})
test_that("ufo complex subscript: F,T..",                             {test_ufo_subscript(n=100000, rep(c(F,T), 100000),                                                 ufo_complex         )})
test_that("ufo complex subscript: int integer(0)",                    {test_ufo_subscript(n=100000, integer(0),                                                          ufo_complex         )})
test_that("ufo complex subscript: int 0",                             {test_ufo_subscript(n=100000, as.integer(0),                                                       ufo_complex         )})
test_that("ufo complex subscript: int 1",                             {test_ufo_subscript(n=100000, as.integer(1),                                                       ufo_complex         )})
test_that("ufo complex subscript: int 10",                            {test_ufo_subscript(n=100000, as.integer(10),                                                      ufo_complex         )})
test_that("ufo complex subscript: int 42",                            {test_ufo_subscript(n=100000, as.integer(42),                                                      ufo_complex         )})
test_that("ufo complex subscript: int N+1",                           {test_ufo_subscript(n=100000, as.integer(100001),                                                  ufo_complex         )})
test_that("ufo complex subscript: int 0,0",                           {test_ufo_subscript(n=100000, as.integer(c(0, 0)),                                                 ufo_complex         )})
test_that("ufo complex subscript: int 0,1,0,N,0",                     {test_ufo_subscript(n=100000, as.integer(c(0, 1, 0, 100000, 0)),                                   ufo_complex         )})
test_that("ufo complex subscript: int 1,10,100,1000,100",             {test_ufo_subscript(n=100000, as.integer(c(1, 10, 100, 1000, 100)),                                ufo_complex         )})
test_that("ufo complex subscript: int -1",                            {test_ufo_subscript(n=100000, as.integer(-1),                                                      ufo_complex         )})
test_that("ufo complex subscript: int -10",                           {test_ufo_subscript(n=100000, as.integer(-10),                                                     ufo_complex         )})
test_that("ufo complex subscript: int -42",                           {test_ufo_subscript(n=100000, as.integer(-42),                                                     ufo_complex         )})
test_that("ufo complex subscript: int -1,-10,-100,-1000,-100",        {test_ufo_subscript(n=100000, as.integer(-c(1, 10, 100, 1000, 100)),                               ufo_complex         )})
test_that("ufo complex subscript: int few",                           {test_ufo_subscript(n=100000, as.integer(c(4, 10, 7, 100)),                                        ufo_complex         )})
test_that("ufo complex subscript: int many",                          {test_ufo_subscript(n=100000, as.integer(c(1:1000, 2000:5000, 10:1000, 6000:10000)),               ufo_complex         )})
test_that("ufo complex subscript: int all",                           {test_ufo_subscript(n=100000, as.integer(1:100000),                                                ufo_complex         )})
test_that("ufo complex subscript: int few with NAs",                  {test_ufo_subscript(n=100000, as.integer(c(4, 10, NA, 7, NA, 100, NA)),                            ufo_complex         )})
test_that("ufo complex subscript: int many with NAs",                 {test_ufo_subscript(n=100000, as.integer(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)),   ufo_complex         )})
test_that("ufo complex subscript: int all with NAs",                  {test_ufo_subscript(n=100000, as.integer(c(1:100000, NA)),                                         ufo_complex         )})
test_that("ufo complex subscript: int few negative",                  {test_ufo_subscript(n=100000, as.integer(-c(4, 10, 7, 100)),                                       ufo_complex         )})
test_that("ufo complex subscript: int many negative",                 {test_ufo_subscript(n=100000, as.integer(-c(1:1000, 2000:5000, 10:1000, 6000:10000)),              ufo_complex         )})
test_that("ufo complex subscript: int all negative",                  {test_ufo_subscript(n=100000, as.integer(-(1:100000)),                                             ufo_complex         )})
test_that("ufo complex subscript: num integer(0)",                    {test_ufo_subscript(n=100000, numeric(0),                                                          ufo_complex         )})
test_that("ufo complex subscript: num 0",                             {test_ufo_subscript(n=100000, as.numeric(0),                                                       ufo_complex         )})
test_that("ufo complex subscript: num 1",                             {test_ufo_subscript(n=100000, as.numeric(1),                                                       ufo_complex         )})
test_that("ufo complex subscript: num 10",                            {test_ufo_subscript(n=100000, as.numeric(10),                                                      ufo_complex         )})
test_that("ufo complex subscript: num 42",                            {test_ufo_subscript(n=100000, as.numeric(42),                                                      ufo_complex         )})
test_that("ufo complex subscript: num N+1",                           {test_ufo_subscript(n=100000, as.numeric(100001),                                                  ufo_complex         )})
test_that("ufo complex subscript: num 0,0",                           {test_ufo_subscript(n=100000, as.numeric(c(0, 0)),                                                 ufo_complex         )})
test_that("ufo complex subscript: num 0,1,0,N,0",                     {test_ufo_subscript(n=100000, as.numeric(c(0, 1, 0, 100000, 0)),                                   ufo_complex         )})
test_that("ufo complex subscript: num 1,10,100,1000,100",             {test_ufo_subscript(n=100000, as.numeric(c(1, 10, 100, 1000, 100)),                                ufo_complex         )})
test_that("ufo complex subscript: num -1",                            {test_ufo_subscript(n=100000, as.numeric(-1),                                                      ufo_complex         )})
test_that("ufo complex subscript: num -10",                           {test_ufo_subscript(n=100000, as.numeric(-10),                                                     ufo_complex         )})
test_that("ufo complex subscript: num -42",                           {test_ufo_subscript(n=100000, as.numeric(-42),                                                     ufo_complex         )})
test_that("ufo complex subscript: num -1,-10,-100,-1000,-100",        {test_ufo_subscript(n=100000, as.numeric(-c(1, 10, 100, 1000, 100)),                               ufo_complex         )})
test_that("ufo complex subscript: num few",                           {test_ufo_subscript(n=100000, as.numeric(c(4, 10, 7, 100)),                                        ufo_complex         )})
test_that("ufo complex subscript: num many",                          {test_ufo_subscript(n=100000, as.numeric(c(1:1000, 2000:5000, 10:1000, 6000:10000)),               ufo_complex         )})
test_that("ufo complex subscript: num all",                           {test_ufo_subscript(n=100000, as.numeric(1:100000),                                                ufo_complex         )})
test_that("ufo complex subscript: num few with NAs",                  {test_ufo_subscript(n=100000, as.numeric(c(4, 10, NA, 7, NA, 100, NA)),                            ufo_complex         )})
test_that("ufo complex subscript: num many with NAs",                 {test_ufo_subscript(n=100000, as.numeric(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)),   ufo_complex         )})
test_that("ufo complex subscript: num all with NAs",                  {test_ufo_subscript(n=100000, as.numeric(c(1:100000, NA)),                                         ufo_complex         )})
test_that("ufo complex subscript: num few negative",                  {test_ufo_subscript(n=100000, as.numeric(-c(4, 10, 7, 100)),                                       ufo_complex         )})
test_that("ufo complex subscript: num many negative",                 {test_ufo_subscript(n=100000, as.numeric(-c(1:1000, 2000:5000, 10:1000, 6000:10000)),              ufo_complex         )})
test_that("ufo complex subscript: num all negative",                  {test_ufo_subscript(n=100000, as.numeric(-(1:100000)),                                             ufo_complex         )})
test_that("ufo complex subscript: num 0.1",                           {test_ufo_subscript(n=100000, as.numeric(0.1),                                                     ufo_complex         )})
test_that("ufo complex subscript: num 1.1",                           {test_ufo_subscript(n=100000, as.numeric(1.1),                                                     ufo_complex         )})
test_that("ufo complex subscript: num 10.5",                          {test_ufo_subscript(n=100000, as.numeric(10.5),                                                    ufo_complex         )})
test_that("ufo complex subscript: num 42.9",                          {test_ufo_subscript(n=100000, as.numeric(42.9),                                                    ufo_complex         )})
test_that("ufo complex subscript: num -0.1",                          {test_ufo_subscript(n=100000, as.numeric(-0.1),                                                    ufo_complex         )})
test_that("ufo complex subscript: num -1.1",                          {test_ufo_subscript(n=100000, as.numeric(-1.1),                                                    ufo_complex         )})
test_that("ufo complex subscript: num -10.5",                         {test_ufo_subscript(n=100000, as.numeric(-10.5),                                                   ufo_complex         )})
test_that("ufo complex subscript: num -42.9",                         {test_ufo_subscript(n=100000, as.numeric(-42.9),                                                   ufo_complex         )})
test_that("ufo complex subscript: hash str character(0)",             {test_ufo_subscript(n=100000, character(0),                                                        ufo_complex         )})
test_that("ufo complex subscript: hash str 0",                        {test_ufo_subscript(n=100000, as.character(0),                                                     ufo_complex         )})
test_that("ufo complex subscript: hash str 1",                        {test_ufo_subscript(n=100000, as.character(1),                                                     ufo_complex         )})
test_that("ufo complex subscript: hash str 10",                       {test_ufo_subscript(n=100000, as.character(10),                                                    ufo_complex         )})
test_that("ufo complex subscript: hash str 42",                       {test_ufo_subscript(n=100000, as.character(42),                                                    ufo_complex         )})
test_that("ufo complex subscript: hash str N+1",                      {test_ufo_subscript(n=100000, as.character(100001),                                                ufo_complex         )})
test_that("ufo complex subscript: hash str 0,0",                      {test_ufo_subscript(n=100000, as.character(c(0, 0)),                                               ufo_complex         )})
test_that("ufo complex subscript: hash str 0,1,0,N,0",                {test_ufo_subscript(n=100000, as.character(c(0, 1, 0, 100000, 0)),                                 ufo_complex         )})
test_that("ufo complex subscript: hash str 1,10,100,1000,100",        {test_ufo_subscript(n=100000, as.character(c(1, 10, 100, 1000, 100)),                              ufo_complex         )})
test_that("ufo complex subscript: hash str few",                      {test_ufo_subscript(n=100000, as.character(c(4, 10, 7, 100)),                                      ufo_complex         )})
test_that("ufo complex subscript: hash str many",                     {test_ufo_subscript(n=100000, as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_complex         )})
test_that("ufo complex subscript: hash str all",                      {test_ufo_subscript(n=100000, as.character(1:100000),                                              ufo_complex         )})
test_that("ufo complex subscript: hash str few with NAs",             {test_ufo_subscript(n=100000, as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_complex         )})
test_that("ufo complex subscript: hash str many with NAs",            {test_ufo_subscript(n=100000, as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_complex         )})
test_that("ufo complex subscript: hash str all with NAs",             {test_ufo_subscript(n=100000, as.character(c(1:100000, NA)),                                       ufo_complex         )})
test_that("ufo complex subscript: loop str character(0)",             {test_ufo_subscript(n=10,     character(0),                                                        ufo_complex         )})
test_that("ufo complex subscript: loop str 0",                        {test_ufo_subscript(n=10,     as.character(0),                                                     ufo_complex         )})
test_that("ufo complex subscript: loop str 1",                        {test_ufo_subscript(n=10,     as.character(1),                                                     ufo_complex         )})
test_that("ufo complex subscript: loop str 10",                       {test_ufo_subscript(n=10,     as.character(10),                                                    ufo_complex         )})
test_that("ufo complex subscript: loop str 42",                       {test_ufo_subscript(n=10,     as.character(42),                                                    ufo_complex         )})
test_that("ufo complex subscript: loop str N+1",                      {test_ufo_subscript(n=10,     as.character(11),                                                    ufo_complex         )})
test_that("ufo complex subscript: loop str 0,0",                      {test_ufo_subscript(n=10,     as.character(c(0, 0)),                                               ufo_complex         )})
test_that("ufo complex subscript: loop str 0,1,0,N,0",                {test_ufo_subscript(n=10,     as.character(c(0, 1, 0, 10, 0)),                                     ufo_complex         )})
test_that("ufo complex subscript: loop str 1,10,100,1000,100",        {test_ufo_subscript(n=10,     as.character(c(1, 10, 100, 1000, 100)),                              ufo_complex         )})
test_that("ufo complex subscript: loop str few",                      {test_ufo_subscript(n=10,     as.character(c(4, 10, 7, 100)),                                      ufo_complex         )})
test_that("ufo complex subscript: loop str many",                     {test_ufo_subscript(n=10,     as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_complex         )})
test_that("ufo complex subscript: loop str all",                      {test_ufo_subscript(n=10,     as.character(1:100000),                                              ufo_complex         )})
test_that("ufo complex subscript: loop str few with NAs",             {test_ufo_subscript(n=10,     as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_complex         )})
test_that("ufo complex subscript: loop str many with NAs",            {test_ufo_subscript(n=10,     as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_complex         )})
test_that("ufo complex subscript: loop str all with NAs",             {test_ufo_subscript(n=10,     as.character(c(1:100000, NA)),                                       ufo_complex         )})
test_that("ufo complex+names subscript: hash str character(0)",       {test_ufo_subscript(n=100000, character(0),                                                        ufo_complex, named=T)})
test_that("ufo complex+names subscript: hash str 0",                  {test_ufo_subscript(n=100000, as.character(0),                                                     ufo_complex, named=T)})
test_that("ufo complex+names subscript: hash str 1",                  {test_ufo_subscript(n=100000, as.character(1),                                                     ufo_complex, named=T)})
test_that("ufo complex+names subscript: hash str 10",                 {test_ufo_subscript(n=100000, as.character(10),                                                    ufo_complex, named=T)})
test_that("ufo complex+names subscript: hash str 42",                 {test_ufo_subscript(n=100000, as.character(42),                                                    ufo_complex, named=T)})
test_that("ufo complex+names subscript: hash str N+1",                {test_ufo_subscript(n=100000, as.character(100001),                                                ufo_complex, named=T)})
test_that("ufo complex+names subscript: hash str 0,0",                {test_ufo_subscript(n=100000, as.character(c(0, 0)),                                               ufo_complex, named=T)})
test_that("ufo complex+names subscript: hash str 0,1,0,N,0",          {test_ufo_subscript(n=100000, as.character(c(0, 1, 0, 100000, 0)),                                 ufo_complex, named=T)})
test_that("ufo complex+names subscript: hash str 1,10,100,1000,100",  {test_ufo_subscript(n=100000, as.character(c(1, 10, 100, 1000, 100)),                              ufo_complex, named=T)})
test_that("ufo complex+names subscript: hash str few",                {test_ufo_subscript(n=100000, as.character(c(4, 10, 7, 100)),                                      ufo_complex, named=T)})
test_that("ufo complex+names subscript: hash str many",               {test_ufo_subscript(n=100000, as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_complex, named=T)})
test_that("ufo complex+names subscript: hash str all",                {test_ufo_subscript(n=100000, as.character(1:100000),                                              ufo_complex, named=T)})
test_that("ufo complex+names subscript: hash str few with NAs",       {test_ufo_subscript(n=100000, as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_complex, named=T)})
test_that("ufo complex+names subscript: hash str many with NAs",      {test_ufo_subscript(n=100000, as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_complex, named=T)})
test_that("ufo complex+names subscript: hash str all with NAs",       {test_ufo_subscript(n=100000, as.character(c(1:100000, NA)),                                       ufo_complex, named=T)})
test_that("ufo complex+names subscript: loop str character(0)",       {test_ufo_subscript(n=10,     character(0),                                                        ufo_complex, named=T)})
test_that("ufo complex+names subscript: loop str 0",                  {test_ufo_subscript(n=10,     as.character(0),                                                     ufo_complex, named=T)})
test_that("ufo complex+names subscript: loop str 1",                  {test_ufo_subscript(n=10,     as.character(1),                                                     ufo_complex, named=T)})
test_that("ufo complex+names subscript: loop str 10",                 {test_ufo_subscript(n=10,     as.character(10),                                                    ufo_complex, named=T)})
test_that("ufo complex+names subscript: loop str 42",                 {test_ufo_subscript(n=10,     as.character(42),                                                    ufo_complex, named=T)})
test_that("ufo complex+names subscript: loop str N+1",                {test_ufo_subscript(n=10,     as.character(11),                                                    ufo_complex, named=T)})
test_that("ufo complex+names subscript: loop str 0,0",                {test_ufo_subscript(n=10,     as.character(c(0, 0)),                                               ufo_complex, named=T)})
test_that("ufo complex+names subscript: loop str 0,1,0,N,0",          {test_ufo_subscript(n=10,     as.character(c(0, 1, 0, 10, 0)),                                     ufo_complex, named=T)})
test_that("ufo complex+names subscript: loop str 1,10,100,1000,100",  {test_ufo_subscript(n=10,     as.character(c(1, 10, 100, 1000, 100)),                              ufo_complex, named=T)})
test_that("ufo complex+names subscript: loop str few",                {test_ufo_subscript(n=10,     as.character(c(4, 10, 7, 100)),                                      ufo_complex, named=T)})
test_that("ufo complex+names subscript: loop str many",               {test_ufo_subscript(n=10,     as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_complex, named=T)})
test_that("ufo complex+names subscript: loop str all",                {test_ufo_subscript(n=10,     as.character(1:100000),                                              ufo_complex, named=T)})
test_that("ufo complex+names subscript: loop str few with NAs",       {test_ufo_subscript(n=10,     as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_complex, named=T)})
test_that("ufo complex+names subscript: loop str many with NAs",      {test_ufo_subscript(n=10,     as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_complex, named=T)})
test_that("ufo complex+names subscript: loop str all with NAs",       {test_ufo_subscript(n=10,     as.character(c(1:100000, NA)),                                       ufo_complex, named=T)})

test_that("ufo raw subscript: null",                                  {test_ufo_subscript(n=100000, NULL,                                                                ufo_raw             )})
test_that("ufo raw subscript: logical(0)",                            {test_ufo_subscript(n=100000, logical(0),                                                          ufo_raw             )})
test_that("ufo raw subscript: F",                                     {test_ufo_subscript(n=100000, c(T),                                                                ufo_raw             )})
test_that("ufo raw subscript: T",                                     {test_ufo_subscript(n=100000, c(F),                                                                ufo_raw             )})
test_that("ufo raw subscript: logical(NA)",                           {test_ufo_subscript(n=100000, as.logical(NA),                                                      ufo_raw             )})
test_that("ufo raw subscript: F,F",                                   {test_ufo_subscript(n=100000, c(F, F),                                                             ufo_raw             )})
test_that("ufo raw subscript: F,T",                                   {test_ufo_subscript(n=100000, c(F, T),                                                             ufo_raw             )})
test_that("ufo raw subscript: T,F",                                   {test_ufo_subscript(n=100000, c(T, F),                                                             ufo_raw             )})
test_that("ufo raw subscript: T,T",                                   {test_ufo_subscript(n=100000, c(T, T),                                                             ufo_raw             )})
test_that("ufo raw subscript: F,NA",                                  {test_ufo_subscript(n=100000, c(F, NA),                                                            ufo_raw             )})
test_that("ufo raw subscript: NA,F",                                  {test_ufo_subscript(n=100000, c(NA, F),                                                            ufo_raw             )})
test_that("ufo raw subscript: NA,T",                                  {test_ufo_subscript(n=100000, c(NA, T),                                                            ufo_raw             )})
test_that("ufo raw subscript: T,NA",                                  {test_ufo_subscript(n=100000, c(T, NA),                                                            ufo_raw             )})
test_that("ufo raw subscript: F,F,F",                                 {test_ufo_subscript(n=100000, c(F, F, F),                                                          ufo_raw             )})
test_that("ufo raw subscript: F,F,T",                                 {test_ufo_subscript(n=100000, c(F, F, T),                                                          ufo_raw             )})
test_that("ufo raw subscript: F,T,F",                                 {test_ufo_subscript(n=100000, c(F, T, F),                                                          ufo_raw             )})
test_that("ufo raw subscript: F,T,T",                                 {test_ufo_subscript(n=100000, c(F, T, T),                                                          ufo_raw             )})
test_that("ufo raw subscript: T,F,F",                                 {test_ufo_subscript(n=100000, c(T, F, F),                                                          ufo_raw             )})
test_that("ufo raw subscript: T,F,T",                                 {test_ufo_subscript(n=100000, c(T, F, T),                                                          ufo_raw             )})
test_that("ufo raw subscript: T,T,F",                                 {test_ufo_subscript(n=100000, c(T, T, F),                                                          ufo_raw             )})
test_that("ufo raw subscript: T,T,T",                                 {test_ufo_subscript(n=100000, c(T, T, T),                                                          ufo_raw             )})
test_that("ufo raw subscript: F,F,NA",                                {test_ufo_subscript(n=100000, c(F, F, NA),                                                         ufo_raw             )})
test_that("ufo raw subscript: F,NA,F",                                {test_ufo_subscript(n=100000, c(F, NA, F),                                                         ufo_raw             )})
test_that("ufo raw subscript: F,NA,NA",                               {test_ufo_subscript(n=100000, c(F, NA, NA),                                                        ufo_raw             )})
test_that("ufo raw subscript: NA,F,F",                                {test_ufo_subscript(n=100000, c(NA, F, F),                                                         ufo_raw             )})
test_that("ufo raw subscript: NA,F,NA",                               {test_ufo_subscript(n=100000, c(NA, F, NA),                                                        ufo_raw             )})
test_that("ufo raw subscript: NA,NA,F",                               {test_ufo_subscript(n=100000, c(NA, NA, F),                                                        ufo_raw             )})
test_that("ufo raw subscript: F,F,T",                                 {test_ufo_subscript(n=100000, c(F, F, T),                                                          ufo_raw             )})
test_that("ufo raw subscript: F,NA,T",                                {test_ufo_subscript(n=100000, c(F, NA, T),                                                         ufo_raw             )})
test_that("ufo raw subscript: NA,F,T",                                {test_ufo_subscript(n=100000, c(NA, F, T),                                                         ufo_raw             )})
test_that("ufo raw subscript: NA,NA,T",                               {test_ufo_subscript(n=100000, c(NA, NA, T),                                                        ufo_raw             )})
test_that("ufo raw subscript: F,T,NA",                                {test_ufo_subscript(n=100000, c(F, T, NA),                                                         ufo_raw             )})
test_that("ufo raw subscript: NA,T,F",                                {test_ufo_subscript(n=100000, c(NA, T, F),                                                         ufo_raw             )})
test_that("ufo raw subscript: NA,T,NA",                               {test_ufo_subscript(n=100000, c(NA, T, NA),                                                        ufo_raw             )})
test_that("ufo raw subscript: F,NA,T",                                {test_ufo_subscript(n=100000, c(F, NA, T),                                                         ufo_raw             )})
test_that("ufo raw subscript: NA,T,T",                                {test_ufo_subscript(n=100000, c(NA, T, T),                                                         ufo_raw             )})
test_that("ufo raw subscript: T,F,NA",                                {test_ufo_subscript(n=100000, c(T, F, NA),                                                         ufo_raw             )})
test_that("ufo raw subscript: T,NA,F",                                {test_ufo_subscript(n=100000, c(T, NA, F),                                                         ufo_raw             )})
test_that("ufo raw subscript: T,NA,NA",                               {test_ufo_subscript(n=100000, c(T, NA, NA),                                                        ufo_raw             )})
test_that("ufo raw subscript: T,NA,T",                                {test_ufo_subscript(n=100000, c(T, NA, T),                                                         ufo_raw             )})
test_that("ufo raw subscript: T,T,NA",                                {test_ufo_subscript(n=100000, c(T, T, NA),                                                         ufo_raw             )})
test_that("ufo raw subscript: T,NA,NA",                               {test_ufo_subscript(n=100000, c(T, NA, NA),                                                        ufo_raw             )})
test_that("ufo raw subscript: T..",                                   {test_ufo_subscript(n=100000, rep(T, 100000),                                                      ufo_raw             )})
test_that("ufo raw subscript: F..",                                   {test_ufo_subscript(n=100000, rep(F, 100000),                                                      ufo_raw             )})
test_that("ufo raw subscript: T,F..",                                 {test_ufo_subscript(n=100000, rep(c(T,F), 100000),                                                 ufo_raw             )})
test_that("ufo raw subscript: F,T..",                                 {test_ufo_subscript(n=100000, rep(c(F,T), 100000),                                                 ufo_raw             )})
test_that("ufo raw subscript: int integer(0)",                        {test_ufo_subscript(n=100000, integer(0),                                                          ufo_raw             )})
test_that("ufo raw subscript: int 0",                                 {test_ufo_subscript(n=100000, as.integer(0),                                                       ufo_raw             )})
test_that("ufo raw subscript: int 1",                                 {test_ufo_subscript(n=100000, as.integer(1),                                                       ufo_raw             )})
test_that("ufo raw subscript: int 10",                                {test_ufo_subscript(n=100000, as.integer(10),                                                      ufo_raw             )})
test_that("ufo raw subscript: int 42",                                {test_ufo_subscript(n=100000, as.integer(42),                                                      ufo_raw             )})
test_that("ufo raw subscript: int N+1",                               {test_ufo_subscript(n=100000, as.integer(100001),                                                  ufo_raw             )})
test_that("ufo raw subscript: int 0,0",                               {test_ufo_subscript(n=100000, as.integer(c(0, 0)),                                                 ufo_raw             )})
test_that("ufo raw subscript: int 0,1,0,N,0",                         {test_ufo_subscript(n=100000, as.integer(c(0, 1, 0, 100000, 0)),                                   ufo_raw             )})
test_that("ufo raw subscript: int 1,10,100,1000,100",                 {test_ufo_subscript(n=100000, as.integer(c(1, 10, 100, 1000, 100)),                                ufo_raw             )})
test_that("ufo raw subscript: int -1",                                {test_ufo_subscript(n=100000, as.integer(-1),                                                      ufo_raw             )})
test_that("ufo raw subscript: int -10",                               {test_ufo_subscript(n=100000, as.integer(-10),                                                     ufo_raw             )})
test_that("ufo raw subscript: int -42",                               {test_ufo_subscript(n=100000, as.integer(-42),                                                     ufo_raw             )})
test_that("ufo raw subscript: int -1,-10,-100,-1000,-100",            {test_ufo_subscript(n=100000, as.integer(-c(1, 10, 100, 1000, 100)),                               ufo_raw             )})
test_that("ufo raw subscript: int few",                               {test_ufo_subscript(n=100000, as.integer(c(4, 10, 7, 100)),                                        ufo_raw             )})
test_that("ufo raw subscript: int many",                              {test_ufo_subscript(n=100000, as.integer(c(1:1000, 2000:5000, 10:1000, 6000:10000)),               ufo_raw             )})
test_that("ufo raw subscript: int all",                               {test_ufo_subscript(n=100000, as.integer(1:100000),                                                ufo_raw             )})
test_that("ufo raw subscript: int few with NAs",                      {test_ufo_subscript(n=100000, as.integer(c(4, 10, NA, 7, NA, 100, NA)),                            ufo_raw             )})
test_that("ufo raw subscript: int many with NAs",                     {test_ufo_subscript(n=100000, as.integer(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)),   ufo_raw             )})
test_that("ufo raw subscript: int all with NAs",                      {test_ufo_subscript(n=100000, as.integer(c(1:100000, NA)),                                         ufo_raw             )})
test_that("ufo raw subscript: int few negative",                      {test_ufo_subscript(n=100000, as.integer(-c(4, 10, 7, 100)),                                       ufo_raw             )})
test_that("ufo raw subscript: int many negative",                     {test_ufo_subscript(n=100000, as.integer(-c(1:1000, 2000:5000, 10:1000, 6000:10000)),              ufo_raw             )})
test_that("ufo raw subscript: int all negative",                      {test_ufo_subscript(n=100000, as.integer(-(1:100000)),                                             ufo_raw             )})
test_that("ufo raw subscript: num integer(0)",                        {test_ufo_subscript(n=100000, numeric(0),                                                          ufo_raw             )})
test_that("ufo raw subscript: num 0",                                 {test_ufo_subscript(n=100000, as.numeric(0),                                                       ufo_raw             )})
test_that("ufo raw subscript: num 1",                                 {test_ufo_subscript(n=100000, as.numeric(1),                                                       ufo_raw             )})
test_that("ufo raw subscript: num 10",                                {test_ufo_subscript(n=100000, as.numeric(10),                                                      ufo_raw             )})
test_that("ufo raw subscript: num 42",                                {test_ufo_subscript(n=100000, as.numeric(42),                                                      ufo_raw             )})
test_that("ufo raw subscript: num N+1",                               {test_ufo_subscript(n=100000, as.numeric(100001),                                                  ufo_raw             )})
test_that("ufo raw subscript: num 0,0",                               {test_ufo_subscript(n=100000, as.numeric(c(0, 0)),                                                 ufo_raw             )})
test_that("ufo raw subscript: num 0,1,0,N,0",                         {test_ufo_subscript(n=100000, as.numeric(c(0, 1, 0, 100000, 0)),                                   ufo_raw             )})
test_that("ufo raw subscript: num 1,10,100,1000,100",                 {test_ufo_subscript(n=100000, as.numeric(c(1, 10, 100, 1000, 100)),                                ufo_raw             )})
test_that("ufo raw subscript: num -1",                                {test_ufo_subscript(n=100000, as.numeric(-1),                                                      ufo_raw             )})
test_that("ufo raw subscript: num -10",                               {test_ufo_subscript(n=100000, as.numeric(-10),                                                     ufo_raw             )})
test_that("ufo raw subscript: num -42",                               {test_ufo_subscript(n=100000, as.numeric(-42),                                                     ufo_raw             )})
test_that("ufo raw subscript: num -1,-10,-100,-1000,-100",            {test_ufo_subscript(n=100000, as.numeric(-c(1, 10, 100, 1000, 100)),                               ufo_raw             )})
test_that("ufo raw subscript: num few",                               {test_ufo_subscript(n=100000, as.numeric(c(4, 10, 7, 100)),                                        ufo_raw             )})
test_that("ufo raw subscript: num many",                              {test_ufo_subscript(n=100000, as.numeric(c(1:1000, 2000:5000, 10:1000, 6000:10000)),               ufo_raw             )})
test_that("ufo raw subscript: num all",                               {test_ufo_subscript(n=100000, as.numeric(1:100000),                                                ufo_raw             )})
test_that("ufo raw subscript: num few with NAs",                      {test_ufo_subscript(n=100000, as.numeric(c(4, 10, NA, 7, NA, 100, NA)),                            ufo_raw             )})
test_that("ufo raw subscript: num many with NAs",                     {test_ufo_subscript(n=100000, as.numeric(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)),   ufo_raw             )})
test_that("ufo raw subscript: num all with NAs",                      {test_ufo_subscript(n=100000, as.numeric(c(1:100000, NA)),                                         ufo_raw             )})
test_that("ufo raw subscript: num few negative",                      {test_ufo_subscript(n=100000, as.numeric(-c(4, 10, 7, 100)),                                       ufo_raw             )})
test_that("ufo raw subscript: num many negative",                     {test_ufo_subscript(n=100000, as.numeric(-c(1:1000, 2000:5000, 10:1000, 6000:10000)),              ufo_raw             )})
test_that("ufo raw subscript: num all negative",                      {test_ufo_subscript(n=100000, as.numeric(-(1:100000)),                                             ufo_raw             )})
test_that("ufo raw subscript: num 0.1",                               {test_ufo_subscript(n=100000, as.numeric(0.1),                                                     ufo_raw             )})
test_that("ufo raw subscript: num 1.1",                               {test_ufo_subscript(n=100000, as.numeric(1.1),                                                     ufo_raw             )})
test_that("ufo raw subscript: num 10.5",                              {test_ufo_subscript(n=100000, as.numeric(10.5),                                                    ufo_raw             )})
test_that("ufo raw subscript: num 42.9",                              {test_ufo_subscript(n=100000, as.numeric(42.9),                                                    ufo_raw             )})
test_that("ufo raw subscript: num -0.1",                              {test_ufo_subscript(n=100000, as.numeric(-0.1),                                                    ufo_raw             )})
test_that("ufo raw subscript: num -1.1",                              {test_ufo_subscript(n=100000, as.numeric(-1.1),                                                    ufo_raw             )})
test_that("ufo raw subscript: num -10.5",                             {test_ufo_subscript(n=100000, as.numeric(-10.5),                                                   ufo_raw             )})
test_that("ufo raw subscript: num -42.9",                             {test_ufo_subscript(n=100000, as.numeric(-42.9),                                                   ufo_raw             )})
test_that("ufo raw subscript: hash str character(0)",                 {test_ufo_subscript(n=100000, character(0),                                                        ufo_raw             )})
test_that("ufo raw subscript: hash str 0",                            {test_ufo_subscript(n=100000, as.character(0),                                                     ufo_raw             )})
test_that("ufo raw subscript: hash str 1",                            {test_ufo_subscript(n=100000, as.character(1),                                                     ufo_raw             )})
test_that("ufo raw subscript: hash str 10",                           {test_ufo_subscript(n=100000, as.character(10),                                                    ufo_raw             )})
test_that("ufo raw subscript: hash str 42",                           {test_ufo_subscript(n=100000, as.character(42),                                                    ufo_raw             )})
test_that("ufo raw subscript: hash str N+1",                          {test_ufo_subscript(n=100000, as.character(100001),                                                ufo_raw             )})
test_that("ufo raw subscript: hash str 0,0",                          {test_ufo_subscript(n=100000, as.character(c(0, 0)),                                               ufo_raw             )})
test_that("ufo raw subscript: hash str 0,1,0,N,0",                    {test_ufo_subscript(n=100000, as.character(c(0, 1, 0, 100000, 0)),                                 ufo_raw             )})
test_that("ufo raw subscript: hash str 1,10,100,1000,100",            {test_ufo_subscript(n=100000, as.character(c(1, 10, 100, 1000, 100)),                              ufo_raw             )})
test_that("ufo raw subscript: hash str few",                          {test_ufo_subscript(n=100000, as.character(c(4, 10, 7, 100)),                                      ufo_raw             )})
test_that("ufo raw subscript: hash str many",                         {test_ufo_subscript(n=100000, as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_raw             )})
test_that("ufo raw subscript: hash str all",                          {test_ufo_subscript(n=100000, as.character(1:100000),                                              ufo_raw             )})
test_that("ufo raw subscript: hash str few with NAs",                 {test_ufo_subscript(n=100000, as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_raw             )})
test_that("ufo raw subscript: hash str many with NAs",                {test_ufo_subscript(n=100000, as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_raw             )})
test_that("ufo raw subscript: hash str all with NAs",                 {test_ufo_subscript(n=100000, as.character(c(1:100000, NA)),                                       ufo_raw             )})
test_that("ufo raw subscript: loop str character(0)",                 {test_ufo_subscript(n=10,     character(0),                                                        ufo_raw             )})
test_that("ufo raw subscript: loop str 0",                            {test_ufo_subscript(n=10,     as.character(0),                                                     ufo_raw             )})
test_that("ufo raw subscript: loop str 1",                            {test_ufo_subscript(n=10,     as.character(1),                                                     ufo_raw             )})
test_that("ufo raw subscript: loop str 10",                           {test_ufo_subscript(n=10,     as.character(10),                                                    ufo_raw             )})
test_that("ufo raw subscript: loop str 42",                           {test_ufo_subscript(n=10,     as.character(42),                                                    ufo_raw             )})
test_that("ufo raw subscript: loop str N+1",                          {test_ufo_subscript(n=10,     as.character(11),                                                    ufo_raw             )})
test_that("ufo raw subscript: loop str 0,0",                          {test_ufo_subscript(n=10,     as.character(c(0, 0)),                                               ufo_raw             )})
test_that("ufo raw subscript: loop str 0,1,0,N,0",                    {test_ufo_subscript(n=10,     as.character(c(0, 1, 0, 10, 0)),                                     ufo_raw             )})
test_that("ufo raw subscript: loop str 1,10,100,1000,100",            {test_ufo_subscript(n=10,     as.character(c(1, 10, 100, 1000, 100)),                              ufo_raw             )})
test_that("ufo raw subscript: loop str few",                          {test_ufo_subscript(n=10,     as.character(c(4, 10, 7, 100)),                                      ufo_raw             )})
test_that("ufo raw subscript: loop str many",                         {test_ufo_subscript(n=10,     as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_raw             )})
test_that("ufo raw subscript: loop str all",                          {test_ufo_subscript(n=10,     as.character(1:100000),                                              ufo_raw             )})
test_that("ufo raw subscript: loop str few with NAs",                 {test_ufo_subscript(n=10,     as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_raw             )})
test_that("ufo raw subscript: loop str many with NAs",                {test_ufo_subscript(n=10,     as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_raw             )})
test_that("ufo raw subscript: loop str all with NAs",                 {test_ufo_subscript(n=10,     as.character(c(1:100000, NA)),                                       ufo_raw             )})
test_that("ufo raw+names subscript: hash str character(0)",           {test_ufo_subscript(n=100000, character(0),                                                        ufo_raw,     named=T)})
test_that("ufo raw+names subscript: hash str 0",                      {test_ufo_subscript(n=100000, as.character(0),                                                     ufo_raw,     named=T)})
test_that("ufo raw+names subscript: hash str 1",                      {test_ufo_subscript(n=100000, as.character(1),                                                     ufo_raw,     named=T)})
test_that("ufo raw+names subscript: hash str 10",                     {test_ufo_subscript(n=100000, as.character(10),                                                    ufo_raw,     named=T)})
test_that("ufo raw+names subscript: hash str 42",                     {test_ufo_subscript(n=100000, as.character(42),                                                    ufo_raw,     named=T)})
test_that("ufo raw+names subscript: hash str N+1",                    {test_ufo_subscript(n=100000, as.character(100001),                                                ufo_raw,     named=T)})
test_that("ufo raw+names subscript: hash str 0,0",                    {test_ufo_subscript(n=100000, as.character(c(0, 0)),                                               ufo_raw,     named=T)})
test_that("ufo raw+names subscript: hash str 0,1,0,N,0",              {test_ufo_subscript(n=100000, as.character(c(0, 1, 0, 100000, 0)),                                 ufo_raw,     named=T)})
test_that("ufo raw+names subscript: hash str 1,10,100,1000,100",      {test_ufo_subscript(n=100000, as.character(c(1, 10, 100, 1000, 100)),                              ufo_raw,     named=T)})
test_that("ufo raw+names subscript: hash str few",                    {test_ufo_subscript(n=100000, as.character(c(4, 10, 7, 100)),                                      ufo_raw,     named=T)})
test_that("ufo raw+names subscript: hash str many",                   {test_ufo_subscript(n=100000, as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_raw,     named=T)})
test_that("ufo raw+names subscript: hash str all",                    {test_ufo_subscript(n=100000, as.character(1:100000),                                              ufo_raw,     named=T)})
test_that("ufo raw+names subscript: hash str few with NAs",           {test_ufo_subscript(n=100000, as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_raw,     named=T)})
test_that("ufo raw+names subscript: hash str many with NAs",          {test_ufo_subscript(n=100000, as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_raw,     named=T)})
test_that("ufo raw+names subscript: hash str all with NAs",           {test_ufo_subscript(n=100000, as.character(c(1:100000, NA)),                                       ufo_raw,     named=T)})
test_that("ufo raw+names subscript: loop str character(0)",           {test_ufo_subscript(n=10,     character(0),                                                        ufo_raw,     named=T)})
test_that("ufo raw+names subscript: loop str 0",                      {test_ufo_subscript(n=10,     as.character(0),                                                     ufo_raw,     named=T)})
test_that("ufo raw+names subscript: loop str 1",                      {test_ufo_subscript(n=10,     as.character(1),                                                     ufo_raw,     named=T)})
test_that("ufo raw+names subscript: loop str 10",                     {test_ufo_subscript(n=10,     as.character(10),                                                    ufo_raw,     named=T)})
test_that("ufo raw+names subscript: loop str 42",                     {test_ufo_subscript(n=10,     as.character(42),                                                    ufo_raw,     named=T)})
test_that("ufo raw+names subscript: loop str N+1",                    {test_ufo_subscript(n=10,     as.character(11),                                                    ufo_raw,     named=T)})
test_that("ufo raw+names subscript: loop str 0,0",                    {test_ufo_subscript(n=10,     as.character(c(0, 0)),                                               ufo_raw,     named=T)})
test_that("ufo raw+names subscript: loop str 0,1,0,N,0",              {test_ufo_subscript(n=10,     as.character(c(0, 1, 0, 10, 0)),                                     ufo_raw,     named=T)})
test_that("ufo raw+names subscript: loop str 1,10,100,1000,100",      {test_ufo_subscript(n=10,     as.character(c(1, 10, 100, 1000, 100)),                              ufo_raw,     named=T)})
test_that("ufo raw+names subscript: loop str few",                    {test_ufo_subscript(n=10,     as.character(c(4, 10, 7, 100)),                                      ufo_raw,     named=T)})
test_that("ufo raw+names subscript: loop str many",                   {test_ufo_subscript(n=10,     as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_raw,     named=T)})
test_that("ufo raw+names subscript: loop str all",                    {test_ufo_subscript(n=10,     as.character(1:100000),                                              ufo_raw,     named=T)})
test_that("ufo raw+names subscript: loop str few with NAs",           {test_ufo_subscript(n=10,     as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_raw,     named=T)})
test_that("ufo raw+names subscript: loop str many with NAs",          {test_ufo_subscript(n=10,     as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_raw,     named=T)})
test_that("ufo raw+names subscript: loop str all with NAs",           {test_ufo_subscript(n=10,     as.character(c(1:100000, NA)),                                       ufo_raw,     named=T)})

test_that("ufo character subscript: null",                             {test_ufo_subscript(n=100000, NULL,                                                                ufo_character         )})
test_that("ufo character subscript: logical(0)",                       {test_ufo_subscript(n=100000, logical(0),                                                          ufo_character         )})
test_that("ufo character subscript: F",                                {test_ufo_subscript(n=100000, c(T),                                                                ufo_character         )})
test_that("ufo character subscript: T",                                {test_ufo_subscript(n=100000, c(F),                                                                ufo_character         )})
test_that("ufo character subscript: logical(NA)",                      {test_ufo_subscript(n=100000, as.logical(NA),                                                      ufo_character         )})
test_that("ufo character subscript: F,F",                              {test_ufo_subscript(n=100000, c(F, F),                                                             ufo_character         )})
test_that("ufo character subscript: F,T",                              {test_ufo_subscript(n=100000, c(F, T),                                                             ufo_character         )})
test_that("ufo character subscript: T,F",                              {test_ufo_subscript(n=100000, c(T, F),                                                             ufo_character         )})
test_that("ufo character subscript: T,T",                              {test_ufo_subscript(n=100000, c(T, T),                                                             ufo_character         )})
test_that("ufo character subscript: F,NA",                             {test_ufo_subscript(n=100000, c(F, NA),                                                            ufo_character         )})
test_that("ufo character subscript: NA,F",                             {test_ufo_subscript(n=100000, c(NA, F),                                                            ufo_character         )})
test_that("ufo character subscript: NA,T",                             {test_ufo_subscript(n=100000, c(NA, T),                                                            ufo_character         )})
test_that("ufo character subscript: T,NA",                             {test_ufo_subscript(n=100000, c(T, NA),                                                            ufo_character         )})
test_that("ufo character subscript: F,F,F",                            {test_ufo_subscript(n=100000, c(F, F, F),                                                          ufo_character         )})
test_that("ufo character subscript: F,F,T",                            {test_ufo_subscript(n=100000, c(F, F, T),                                                          ufo_character         )})
test_that("ufo character subscript: F,T,F",                            {test_ufo_subscript(n=100000, c(F, T, F),                                                          ufo_character         )})
test_that("ufo character subscript: F,T,T",                            {test_ufo_subscript(n=100000, c(F, T, T),                                                          ufo_character         )})
test_that("ufo character subscript: T,F,F",                            {test_ufo_subscript(n=100000, c(T, F, F),                                                          ufo_character         )})
test_that("ufo character subscript: T,F,T",                            {test_ufo_subscript(n=100000, c(T, F, T),                                                          ufo_character         )})
test_that("ufo character subscript: T,T,F",                            {test_ufo_subscript(n=100000, c(T, T, F),                                                          ufo_character         )})
test_that("ufo character subscript: T,T,T",                            {test_ufo_subscript(n=100000, c(T, T, T),                                                          ufo_character         )})
test_that("ufo character subscript: F,F,NA",                           {test_ufo_subscript(n=100000, c(F, F, NA),                                                         ufo_character         )})
test_that("ufo character subscript: F,NA,F",                           {test_ufo_subscript(n=100000, c(F, NA, F),                                                         ufo_character         )})
test_that("ufo character subscript: F,NA,NA",                          {test_ufo_subscript(n=100000, c(F, NA, NA),                                                        ufo_character         )})
test_that("ufo character subscript: NA,F,F",                           {test_ufo_subscript(n=100000, c(NA, F, F),                                                         ufo_character         )})
test_that("ufo character subscript: NA,F,NA",                          {test_ufo_subscript(n=100000, c(NA, F, NA),                                                        ufo_character         )})
test_that("ufo character subscript: NA,NA,F",                          {test_ufo_subscript(n=100000, c(NA, NA, F),                                                        ufo_character         )})
test_that("ufo character subscript: F,F,T",                            {test_ufo_subscript(n=100000, c(F, F, T),                                                          ufo_character         )})
test_that("ufo character subscript: F,NA,T",                           {test_ufo_subscript(n=100000, c(F, NA, T),                                                         ufo_character         )})
test_that("ufo character subscript: NA,F,T",                           {test_ufo_subscript(n=100000, c(NA, F, T),                                                         ufo_character         )})
test_that("ufo character subscript: NA,NA,T",                          {test_ufo_subscript(n=100000, c(NA, NA, T),                                                        ufo_character         )})
test_that("ufo character subscript: F,T,NA",                           {test_ufo_subscript(n=100000, c(F, T, NA),                                                         ufo_character         )})
test_that("ufo character subscript: NA,T,F",                           {test_ufo_subscript(n=100000, c(NA, T, F),                                                         ufo_character         )})
test_that("ufo character subscript: NA,T,NA",                          {test_ufo_subscript(n=100000, c(NA, T, NA),                                                        ufo_character         )})
test_that("ufo character subscript: F,NA,T",                           {test_ufo_subscript(n=100000, c(F, NA, T),                                                         ufo_character         )})
test_that("ufo character subscript: NA,T,T",                           {test_ufo_subscript(n=100000, c(NA, T, T),                                                         ufo_character         )})
test_that("ufo character subscript: T,F,NA",                           {test_ufo_subscript(n=100000, c(T, F, NA),                                                         ufo_character         )})
test_that("ufo character subscript: T,NA,F",                           {test_ufo_subscript(n=100000, c(T, NA, F),                                                         ufo_character         )})
test_that("ufo character subscript: T,NA,NA",                          {test_ufo_subscript(n=100000, c(T, NA, NA),                                                        ufo_character         )})
test_that("ufo character subscript: T,NA,T",                           {test_ufo_subscript(n=100000, c(T, NA, T),                                                         ufo_character         )})
test_that("ufo character subscript: T,T,NA",                           {test_ufo_subscript(n=100000, c(T, T, NA),                                                         ufo_character         )})
test_that("ufo character subscript: T,NA,NA",                          {test_ufo_subscript(n=100000, c(T, NA, NA),                                                        ufo_character         )})
test_that("ufo character subscript: T..",                              {test_ufo_subscript(n=100000, rep(T, 100000),                                                      ufo_character         )})
test_that("ufo character subscript: F..",                              {test_ufo_subscript(n=100000, rep(F, 100000),                                                      ufo_character         )})
test_that("ufo character subscript: T,F..",                            {test_ufo_subscript(n=100000, rep(c(T,F), 100000),                                                 ufo_character         )})
test_that("ufo character subscript: F,T..",                            {test_ufo_subscript(n=100000, rep(c(F,T), 100000),                                                 ufo_character         )})
test_that("ufo character subscript: int integer(0)",                   {test_ufo_subscript(n=100000, integer(0),                                                          ufo_character         )})
test_that("ufo character subscript: int 0",                            {test_ufo_subscript(n=100000, as.integer(0),                                                       ufo_character         )})
test_that("ufo character subscript: int 1",                            {test_ufo_subscript(n=100000, as.integer(1),                                                       ufo_character         )})
test_that("ufo character subscript: int 10",                           {test_ufo_subscript(n=100000, as.integer(10),                                                      ufo_character         )})
test_that("ufo character subscript: int 42",                           {test_ufo_subscript(n=100000, as.integer(42),                                                      ufo_character         )})
test_that("ufo character subscript: int N+1",                          {test_ufo_subscript(n=100000, as.integer(100001),                                                  ufo_character         )})
test_that("ufo character subscript: int 0,0",                          {test_ufo_subscript(n=100000, as.integer(c(0, 0)),                                                 ufo_character         )})
test_that("ufo character subscript: int 0,1,0,N,0",                    {test_ufo_subscript(n=100000, as.integer(c(0, 1, 0, 100000, 0)),                                   ufo_character         )})
test_that("ufo character subscript: int 1,10,100,1000,100",            {test_ufo_subscript(n=100000, as.integer(c(1, 10, 100, 1000, 100)),                                ufo_character         )})
test_that("ufo character subscript: int -1",                           {test_ufo_subscript(n=100000, as.integer(-1),                                                      ufo_character         )})
test_that("ufo character subscript: int -10",                          {test_ufo_subscript(n=100000, as.integer(-10),                                                     ufo_character         )})
test_that("ufo character subscript: int -42",                          {test_ufo_subscript(n=100000, as.integer(-42),                                                     ufo_character         )})
test_that("ufo character subscript: int -1,-10,-100,-1000,-100",       {test_ufo_subscript(n=100000, as.integer(-c(1, 10, 100, 1000, 100)),                               ufo_character         )})
test_that("ufo character subscript: int few",                          {test_ufo_subscript(n=100000, as.integer(c(4, 10, 7, 100)),                                        ufo_character         )})
test_that("ufo character subscript: int many",                         {test_ufo_subscript(n=100000, as.integer(c(1:1000, 2000:5000, 10:1000, 6000:10000)),               ufo_character         )})
test_that("ufo character subscript: int all",                          {test_ufo_subscript(n=100000, as.integer(1:100000),                                                ufo_character         )})
test_that("ufo character subscript: int few with NAs",                 {test_ufo_subscript(n=100000, as.integer(c(4, 10, NA, 7, NA, 100, NA)),                            ufo_character         )})
test_that("ufo character subscript: int many with NAs",                {test_ufo_subscript(n=100000, as.integer(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)),   ufo_character         )})
test_that("ufo character subscript: int all with NAs",                 {test_ufo_subscript(n=100000, as.integer(c(1:100000, NA)),                                         ufo_character         )})
test_that("ufo character subscript: int few negative",                 {test_ufo_subscript(n=100000, as.integer(-c(4, 10, 7, 100)),                                       ufo_character         )})
test_that("ufo character subscript: int many negative",                {test_ufo_subscript(n=100000, as.integer(-c(1:1000, 2000:5000, 10:1000, 6000:10000)),              ufo_character         )})
test_that("ufo character subscript: int all negative",                 {test_ufo_subscript(n=100000, as.integer(-(1:100000)),                                             ufo_character         )})
test_that("ufo character subscript: num integer(0)",                   {test_ufo_subscript(n=100000, numeric(0),                                                          ufo_character         )})
test_that("ufo character subscript: num 0",                            {test_ufo_subscript(n=100000, as.numeric(0),                                                       ufo_character         )})
test_that("ufo character subscript: num 1",                            {test_ufo_subscript(n=100000, as.numeric(1),                                                       ufo_character         )})
test_that("ufo character subscript: num 10",                           {test_ufo_subscript(n=100000, as.numeric(10),                                                      ufo_character         )})
test_that("ufo character subscript: num 42",                           {test_ufo_subscript(n=100000, as.numeric(42),                                                      ufo_character         )})
test_that("ufo character subscript: num N+1",                          {test_ufo_subscript(n=100000, as.numeric(100001),                                                  ufo_character         )})
test_that("ufo character subscript: num 0,0",                          {test_ufo_subscript(n=100000, as.numeric(c(0, 0)),                                                 ufo_character         )})
test_that("ufo character subscript: num 0,1,0,N,0",                    {test_ufo_subscript(n=100000, as.numeric(c(0, 1, 0, 100000, 0)),                                   ufo_character         )})
test_that("ufo character subscript: num 1,10,100,1000,100",            {test_ufo_subscript(n=100000, as.numeric(c(1, 10, 100, 1000, 100)),                                ufo_character         )})
test_that("ufo character subscript: num -1",                           {test_ufo_subscript(n=100000, as.numeric(-1),                                                      ufo_character         )})
test_that("ufo character subscript: num -10",                          {test_ufo_subscript(n=100000, as.numeric(-10),                                                     ufo_character         )})
test_that("ufo character subscript: num -42",                          {test_ufo_subscript(n=100000, as.numeric(-42),                                                     ufo_character         )})
test_that("ufo character subscript: num -1,-10,-100,-1000,-100",       {test_ufo_subscript(n=100000, as.numeric(-c(1, 10, 100, 1000, 100)),                               ufo_character         )})
test_that("ufo character subscript: num few",                          {test_ufo_subscript(n=100000, as.numeric(c(4, 10, 7, 100)),                                        ufo_character         )})
test_that("ufo character subscript: num many",                         {test_ufo_subscript(n=100000, as.numeric(c(1:1000, 2000:5000, 10:1000, 6000:10000)),               ufo_character         )})
test_that("ufo character subscript: num all",                          {test_ufo_subscript(n=100000, as.numeric(1:100000),                                                ufo_character         )})
test_that("ufo character subscript: num few with NAs",                 {test_ufo_subscript(n=100000, as.numeric(c(4, 10, NA, 7, NA, 100, NA)),                            ufo_character         )})
test_that("ufo character subscript: num many with NAs",                {test_ufo_subscript(n=100000, as.numeric(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)),   ufo_character         )})
test_that("ufo character subscript: num all with NAs",                 {test_ufo_subscript(n=100000, as.numeric(c(1:100000, NA)),                                         ufo_character         )})
test_that("ufo character subscript: num few negative",                 {test_ufo_subscript(n=100000, as.numeric(-c(4, 10, 7, 100)),                                       ufo_character         )})
test_that("ufo character subscript: num many negative",                {test_ufo_subscript(n=100000, as.numeric(-c(1:1000, 2000:5000, 10:1000, 6000:10000)),              ufo_character         )})
test_that("ufo character subscript: num all negative",                 {test_ufo_subscript(n=100000, as.numeric(-(1:100000)),                                             ufo_character         )})
test_that("ufo character subscript: num 0.1",                          {test_ufo_subscript(n=100000, as.numeric(0.1),                                                     ufo_character         )})
test_that("ufo character subscript: num 1.1",                          {test_ufo_subscript(n=100000, as.numeric(1.1),                                                     ufo_character         )})
test_that("ufo character subscript: num 10.5",                         {test_ufo_subscript(n=100000, as.numeric(10.5),                                                    ufo_character         )})
test_that("ufo character subscript: num 42.9",                         {test_ufo_subscript(n=100000, as.numeric(42.9),                                                    ufo_character         )})
test_that("ufo character subscript: num -0.1",                         {test_ufo_subscript(n=100000, as.numeric(-0.1),                                                    ufo_character         )})
test_that("ufo character subscript: num -1.1",                         {test_ufo_subscript(n=100000, as.numeric(-1.1),                                                    ufo_character         )})
test_that("ufo character subscript: num -10.5",                        {test_ufo_subscript(n=100000, as.numeric(-10.5),                                                   ufo_character         )})
test_that("ufo character subscript: num -42.9",                        {test_ufo_subscript(n=100000, as.numeric(-42.9),                                                   ufo_character         )})
test_that("ufo character subscript: hash str character(0)",            {test_ufo_subscript(n=100000, character(0),                                                        ufo_character         )})
test_that("ufo character subscript: hash str 0",                       {test_ufo_subscript(n=100000, as.character(0),                                                     ufo_character         )})
test_that("ufo character subscript: hash str 1",                       {test_ufo_subscript(n=100000, as.character(1),                                                     ufo_character         )})
test_that("ufo character subscript: hash str 10",                      {test_ufo_subscript(n=100000, as.character(10),                                                    ufo_character         )})
test_that("ufo character subscript: hash str 42",                      {test_ufo_subscript(n=100000, as.character(42),                                                    ufo_character         )})
test_that("ufo character subscript: hash str N+1",                     {test_ufo_subscript(n=100000, as.character(100001),                                                ufo_character         )})
test_that("ufo character subscript: hash str 0,0",                     {test_ufo_subscript(n=100000, as.character(c(0, 0)),                                               ufo_character         )})
test_that("ufo character subscript: hash str 0,1,0,N,0",               {test_ufo_subscript(n=100000, as.character(c(0, 1, 0, 100000, 0)),                                 ufo_character         )})
test_that("ufo character subscript: hash str 1,10,100,1000,100",       {test_ufo_subscript(n=100000, as.character(c(1, 10, 100, 1000, 100)),                              ufo_character         )})
test_that("ufo character subscript: hash str few",                     {test_ufo_subscript(n=100000, as.character(c(4, 10, 7, 100)),                                      ufo_character         )})
test_that("ufo character subscript: hash str many",                    {test_ufo_subscript(n=100000, as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_character         )})
test_that("ufo character subscript: hash str all",                     {test_ufo_subscript(n=100000, as.character(1:100000),                                              ufo_character         )})
test_that("ufo character subscript: hash str few with NAs",            {test_ufo_subscript(n=100000, as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_character         )})
test_that("ufo character subscript: hash str many with NAs",           {test_ufo_subscript(n=100000, as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_character         )})
test_that("ufo character subscript: hash str all with NAs",            {test_ufo_subscript(n=100000, as.character(c(1:100000, NA)),                                       ufo_character         )})
test_that("ufo character subscript: loop str character(0)",            {test_ufo_subscript(n=10,     character(0),                                                        ufo_character         )})
test_that("ufo character subscript: loop str 0",                       {test_ufo_subscript(n=10,     as.character(0),                                                     ufo_character         )})
test_that("ufo character subscript: loop str 1",                       {test_ufo_subscript(n=10,     as.character(1),                                                     ufo_character         )})
test_that("ufo character subscript: loop str 10",                      {test_ufo_subscript(n=10,     as.character(10),                                                    ufo_character         )})
test_that("ufo character subscript: loop str 42",                      {test_ufo_subscript(n=10,     as.character(42),                                                    ufo_character         )})
test_that("ufo character subscript: loop str N+1",                     {test_ufo_subscript(n=10,     as.character(11),                                                    ufo_character         )})
test_that("ufo character subscript: loop str 0,0",                     {test_ufo_subscript(n=10,     as.character(c(0, 0)),                                               ufo_character         )})
test_that("ufo character subscript: loop str 0,1,0,N,0",               {test_ufo_subscript(n=10,     as.character(c(0, 1, 0, 10, 0)),                                     ufo_character         )})
test_that("ufo character subscript: loop str 1,10,100,1000,100",       {test_ufo_subscript(n=10,     as.character(c(1, 10, 100, 1000, 100)),                              ufo_character         )})
test_that("ufo character subscript: loop str few",                     {test_ufo_subscript(n=10,     as.character(c(4, 10, 7, 100)),                                      ufo_character         )})
test_that("ufo character subscript: loop str many",                    {test_ufo_subscript(n=10,     as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_character         )})
test_that("ufo character subscript: loop str all",                     {test_ufo_subscript(n=10,     as.character(1:100000),                                              ufo_character         )})
test_that("ufo character subscript: loop str few with NAs",            {test_ufo_subscript(n=10,     as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_character         )})
test_that("ufo character subscript: loop str many with NAs",           {test_ufo_subscript(n=10,     as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_character         )})
test_that("ufo character subscript: loop str all with NAs",            {test_ufo_subscript(n=10,     as.character(c(1:100000, NA)),                                       ufo_character         )})
test_that("ufo character+names subscript: hash str character(0)",      {test_ufo_subscript(n=100000, character(0),                                                        ufo_character, named=T)})
test_that("ufo character+names subscript: hash str 0",                 {test_ufo_subscript(n=100000, as.character(0),                                                     ufo_character, named=T)})
test_that("ufo character+names subscript: hash str 1",                 {test_ufo_subscript(n=100000, as.character(1),                                                     ufo_character, named=T)})
test_that("ufo character+names subscript: hash str 10",                {test_ufo_subscript(n=100000, as.character(10),                                                    ufo_character, named=T)})
test_that("ufo character+names subscript: hash str 42",                {test_ufo_subscript(n=100000, as.character(42),                                                    ufo_character, named=T)})
test_that("ufo character+names subscript: hash str N+1",               {test_ufo_subscript(n=100000, as.character(100001),                                                ufo_character, named=T)})
test_that("ufo character+names subscript: hash str 0,0",               {test_ufo_subscript(n=100000, as.character(c(0, 0)),                                               ufo_character, named=T)})
test_that("ufo character+names subscript: hash str 0,1,0,N,0",         {test_ufo_subscript(n=100000, as.character(c(0, 1, 0, 100000, 0)),                                 ufo_character, named=T)})
test_that("ufo character+names subscript: hash str 1,10,100,1000,100", {test_ufo_subscript(n=100000, as.character(c(1, 10, 100, 1000, 100)),                              ufo_character, named=T)})
test_that("ufo character+names subscript: hash str few",               {test_ufo_subscript(n=100000, as.character(c(4, 10, 7, 100)),                                      ufo_character, named=T)})
test_that("ufo character+names subscript: hash str many",              {test_ufo_subscript(n=100000, as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_character, named=T)})
test_that("ufo character+names subscript: hash str all",               {test_ufo_subscript(n=100000, as.character(1:100000),                                              ufo_character, named=T)})
test_that("ufo character+names subscript: hash str few with NAs",      {test_ufo_subscript(n=100000, as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_character, named=T)})
test_that("ufo character+names subscript: hash str many with NAs",     {test_ufo_subscript(n=100000, as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_character, named=T)})
test_that("ufo character+names subscript: hash str all with NAs",      {test_ufo_subscript(n=100000, as.character(c(1:100000, NA)),                                       ufo_character, named=T)})
test_that("ufo character+names subscript: loop str character(0)",      {test_ufo_subscript(n=10,     character(0),                                                        ufo_character, named=T)})
test_that("ufo character+names subscript: loop str 0",                 {test_ufo_subscript(n=10,     as.character(0),                                                     ufo_character, named=T)})
test_that("ufo character+names subscript: loop str 1",                 {test_ufo_subscript(n=10,     as.character(1),                                                     ufo_character, named=T)})
test_that("ufo character+names subscript: loop str 10",                {test_ufo_subscript(n=10,     as.character(10),                                                    ufo_character, named=T)})
test_that("ufo character+names subscript: loop str 42",                {test_ufo_subscript(n=10,     as.character(42),                                                    ufo_character, named=T)})
test_that("ufo character+names subscript: loop str N+1",               {test_ufo_subscript(n=10,     as.character(11),                                                    ufo_character, named=T)})
test_that("ufo character+names subscript: loop str 0,0",               {test_ufo_subscript(n=10,     as.character(c(0, 0)),                                               ufo_character, named=T)})
test_that("ufo character+names subscript: loop str 0,1,0,N,0",         {test_ufo_subscript(n=10,     as.character(c(0, 1, 0, 10, 0)),                                     ufo_character, named=T)})
test_that("ufo character+names subscript: loop str 1,10,100,1000,100", {test_ufo_subscript(n=10,     as.character(c(1, 10, 100, 1000, 100)),                              ufo_character, named=T)})
test_that("ufo character+names subscript: loop str few",               {test_ufo_subscript(n=10,     as.character(c(4, 10, 7, 100)),                                      ufo_character, named=T)})
test_that("ufo character+names subscript: loop str many",              {test_ufo_subscript(n=10,     as.character(c(1:1000, 2000:5000, 10:1000, 6000:10000)),             ufo_character, named=T)})
test_that("ufo character+names subscript: loop str all",               {test_ufo_subscript(n=10,     as.character(1:100000),                                              ufo_character, named=T)})
test_that("ufo character+names subscript: loop str few with NAs",      {test_ufo_subscript(n=10,     as.character(c(4, 10, NA, 7, NA, 100, NA)),                          ufo_character, named=T)})
test_that("ufo character+names subscript: loop str many with NAs",     {test_ufo_subscript(n=10,     as.character(c(1:1000, NA, 2000:5000, NA, 10:1000, NA, 6000:10000)), ufo_character, named=T)})
test_that("ufo character+names subscript: loop str all with NAs",      {test_ufo_subscript(n=10,     as.character(c(1:100000, NA)),                                       ufo_character, named=T)})
ufo-org/ufo-r-operators documentation built on May 18, 2022, 12:40 a.m.