text: /* This is a managed file. Do not delete this comment. */
  
  #include <include/test.h>
  
  void test_character_tc_alpha(
      test_character this)
  {
      const char *input = "char obj: 'a'";
      ast_Node ast = cortoscript_ast_parse(input, false);
      test_assert(ast != NULL);
      test_assert(corto_typeof(ast) == (corto_type)ast_Scope_o);
      test_assertint(ut_ll_count(ast_Scope(ast)->statements), 1);
  
      int16_t ret = cortoscript_ast_declare(data_o, NULL, ast);
      test_assert(ret == 0);
  
      char *obj = corto_lookup(data_o, "obj");
      test_assert(obj != NULL);
      test_assert(corto_typeof(obj) == (corto_type)corto_char_o);
      test_assert(corto_check_state(obj, CORTO_VALID));
      test_assert(corto_countof(obj) == 2);
      test_assert(*obj == 'a');
  
      test_assert(corto_delete(ast) == 0);
      test_assert(corto_release(obj) == 1);
      test_assert(corto_delete(obj) == 0);
  }
  
  void test_character_tc_digit(
      test_character this)
  {
      const char *input = "char obj: '3'";
      ast_Node ast = cortoscript_ast_parse(input, false);
      test_assert(ast != NULL);
      test_assert(corto_typeof(ast) == (corto_type)ast_Scope_o);
      test_assertint(ut_ll_count(ast_Scope(ast)->statements), 1);
  
      int16_t ret = cortoscript_ast_declare(data_o, NULL, ast);
      test_assert(ret == 0);
  
      char *obj = corto_lookup(data_o, "obj");
      test_assert(obj != NULL);
      test_assert(corto_typeof(obj) == (corto_type)corto_char_o);
      test_assert(corto_check_state(obj, CORTO_VALID));
      test_assert(corto_countof(obj) == 2);
      test_assert(*obj == '3');
  
      test_assert(corto_delete(ast) == 0);
      test_assert(corto_release(obj) == 1);
      test_assert(corto_delete(obj) == 0);
  }
  
  void test_character_tc_newline(
      test_character this)
  {
      const char *input = "char obj: '\\n'";
      ast_Node ast = cortoscript_ast_parse(input, false);
      test_assert(ast != NULL);
      test_assert(corto_typeof(ast) == (corto_type)ast_Scope_o);
      test_assertint(ut_ll_count(ast_Scope(ast)->statements), 1);
  
      int16_t ret = cortoscript_ast_declare(data_o, NULL, ast);
      test_assert(ret == 0);
  
      char *obj = corto_lookup(data_o, "obj");
      test_assert(obj != NULL);
      test_assert(corto_typeof(obj) == (corto_type)corto_char_o);
      test_assert(corto_check_state(obj, CORTO_VALID));
      test_assert(corto_countof(obj) == 2);
      test_assert(*obj == '\n');
  
      test_assert(corto_delete(ast) == 0);
      test_assert(corto_release(obj) == 1);
      test_assert(corto_delete(obj) == 0);
  }
  
  void test_character_tc_null_character(
      test_character this)
  {
      const char *input = "char obj: '\\0'";
      ast_Node ast = cortoscript_ast_parse(input, false);
      test_assert(ast != NULL);
      test_assert(corto_typeof(ast) == (corto_type)ast_Scope_o);
      test_assertint(ut_ll_count(ast_Scope(ast)->statements), 1);
  
      int16_t ret = cortoscript_ast_declare(data_o, NULL, ast);
      test_assert(ret == 0);
  
      char *obj = corto_lookup(data_o, "obj");
      test_assert(obj != NULL);
      test_assert(corto_typeof(obj) == (corto_type)corto_char_o);
      test_assert(corto_check_state(obj, CORTO_VALID));
      test_assert(corto_countof(obj) == 2);
      test_assert(*obj == '\0');
  
      test_assert(corto_delete(ast) == 0);
      test_assert(corto_release(obj) == 1);
      test_assert(corto_delete(obj) == 0);
  }
  
  void test_character_tc_number(
      test_character this)
  {
      const char *input = "char obj: 65";
      ast_Node ast = cortoscript_ast_parse(input, false);
      test_assert(ast != NULL);
      test_assert(corto_typeof(ast) == (corto_type)ast_Scope_o);
      test_assertint(ut_ll_count(ast_Scope(ast)->statements), 1);
  
      int16_t ret = cortoscript_ast_declare(data_o, NULL, ast);
      test_assert(ret == 0);
  
      char *obj = corto_lookup(data_o, "obj");
      test_assert(obj != NULL);
      test_assert(corto_typeof(obj) == (corto_type)corto_char_o);
      test_assert(corto_check_state(obj, CORTO_VALID));
      test_assert(corto_countof(obj) == 2);
      test_assert(*obj == 'A');
  
      test_assert(corto_delete(ast) == 0);
      test_assert(corto_release(obj) == 1);
      test_assert(corto_delete(obj) == 0);
  }
  
  void test_character_tc_zero(
      test_character this)
  {
      const char *input = "char obj: 0";
      ast_Node ast = cortoscript_ast_parse(input, false);
      test_assert(ast != NULL);
      test_assert(corto_typeof(ast) == (corto_type)ast_Scope_o);
      test_assertint(ut_ll_count(ast_Scope(ast)->statements), 1);
  
      int16_t ret = cortoscript_ast_declare(data_o, NULL, ast);
      test_assert(ret == 0);
  
      char *obj = corto_lookup(data_o, "obj");
      test_assert(obj != NULL);
      test_assert(corto_typeof(obj) == (corto_type)corto_char_o);
      test_assert(corto_check_state(obj, CORTO_VALID));
      test_assert(corto_countof(obj) == 2);
      test_assert(*obj == '\0');
  
      test_assert(corto_delete(ast) == 0);
      test_assert(corto_release(obj) == 1);
      test_assert(corto_delete(obj) == 0);
  }
  