do --- string_op
  local t, y = {}, {}
  for i=1,100 do t[i] = string.char(i, 16+i, 32+i) end
  for i=1,100 do t[i] = string.reverse(t[i]) end
  assert(t[100] == "\132\116\100")
  for i=1,100 do t[i] = string.reverse(t[i]) end
  for i=1,100 do assert(t[i] == string.char(i, 16+i, 32+i)) end
  for i=1,100 do y[i] = string.upper(t[i]) end
  assert(y[65] == "AQA")
  assert(y[97] == "AQ\129")
  assert(y[100] == "DT\132")
  for i=1,100 do y[i] = string.lower(t[i]) end
  assert(y[65] == "aqa")
  assert(y[97] == "aq\129")
  assert(y[100] == "dt\132")
end