test_array_big ()
{
  int i.0;
  int i.1;
  gchar * D.4985;
  long unsigned int D.4986;
  long unsigned int D.4987;
  gint * D.4988;
  int D.4989;
  gchar * D.4992;
  struct GArray * garray;
  gint i;

  try
    {
      garray = monoeg_g_array_new (0, 0, 4);
      i = 0;
      goto <D.4951>;
      <D.4950>:
      monoeg_g_array_append_vals (garray, &i, 1);
      i.0 = i;
      i.1 = i.0 + 1;
      i = i.1;
      <D.4951>:
      i.0 = i;
      if (i.0 <= 9999) goto <D.4950>; else goto <D.4952>;
      <D.4952>:
      i = 0;
      goto <D.4954>;
      <D.4953>:
      D.4985 = garray->data;
      i.0 = i;
      D.4986 = (long unsigned int) i.0;
      D.4987 = D.4986 * 4;
      D.4988 = D.4985 + D.4987;
      D.4989 = *D.4988;
      i.0 = i;
      if (D.4989 != i.0) goto <D.4990>; else goto <D.4991>;
      <D.4990>:
      D.4992 = FAILED ("array value didn\'t match");
      return D.4992;
      <D.4991>:
      i.0 = i;
      i.1 = i.0 + 1;
      i = i.1;
      <D.4954>:
      i.0 = i;
      if (i.0 <= 9999) goto <D.4953>; else goto <D.4955>;
      <D.4955>:
      monoeg_g_array_free (garray, 1);
      D.4992 = 0B;
      return D.4992;
    }
  finally
    {
      i = {CLOBBER};
    }
}


test_array_index ()
{
  gchar * D.4995;
  int D.4996;
  gchar * D.4999;
  struct GArray * array;
  int v;

  try
    {
      array = monoeg_g_array_new (0, 0, 4);
      v = 27;
      monoeg_g_array_append_vals (array, &v, 1);
      D.4995 = array->data;
      D.4996 = MEM[(int *)D.4995];
      if (D.4996 != 27) goto <D.4997>; else goto <D.4998>;
      <D.4997>:
      D.4999 = FAILED ("");
      return D.4999;
      <D.4998>:
      monoeg_g_array_free (array, 1);
      D.4999 = 0B;
      return D.4999;
    }
  finally
    {
      v = {CLOBBER};
    }
}


test_array_append_zero_terminated ()
{
  gchar * D.5002;
  int D.5003;
  gchar * D.5006;
  int * D.5007;
  int D.5008;
  struct GArray * array;
  int v;

  try
    {
      array = monoeg_g_array_new (1, 0, 4);
      v = 27;
      monoeg_g_array_append_vals (array, &v, 1);
      D.5002 = array->data;
      D.5003 = MEM[(int *)D.5002];
      if (D.5003 != 27) goto <D.5004>; else goto <D.5005>;
      <D.5004>:
      D.5006 = FAILED ("g_array_append_val failed");
      return D.5006;
      <D.5005>:
      D.5002 = array->data;
      D.5007 = D.5002 + 4;
      D.5008 = *D.5007;
      if (D.5008 != 0) goto <D.5009>; else goto <D.5010>;
      <D.5009>:
      D.5006 = FAILED ("zero_terminated didn\'t append a zero element");
      return D.5006;
      <D.5010>:
      monoeg_g_array_free (array, 1);
      D.5006 = 0B;
      return D.5006;
    }
  finally
    {
      v = {CLOBBER};
    }
}


test_array_append ()
{
  int D.5013;
  gchar * D.5016;
  struct GArray * array;
  int v;

  try
    {
      array = monoeg_g_array_new (0, 0, 4);
      D.5013 = array->len;
      if (D.5013 != 0) goto <D.5014>; else goto <D.5015>;
      <D.5014>:
      D.5016 = FAILED ("initial array length not zero");
      return D.5016;
      <D.5015>:
      v = 27;
      monoeg_g_array_append_vals (array, &v, 1);
      D.5013 = array->len;
      if (D.5013 != 1) goto <D.5017>; else goto <D.5018>;
      <D.5017>:
      D.5016 = FAILED ("array append failed");
      return D.5016;
      <D.5018>:
      monoeg_g_array_free (array, 1);
      D.5016 = 0B;
      return D.5016;
    }
  finally
    {
      v = {CLOBBER};
    }
}


test_array_insert_val ()
{
  struct GArray * array.2;
  struct GArray * array.3;
  gchar * D.5023;
  void * D.5024;
  gchar * D.5027;
  void * * D.5028;
  void * D.5029;
  void * * D.5032;
  void * D.5033;
  struct GArray * array.4;
  void * ptr1.5;
  void * ptr2.6;
  void * ptr3.7;
  void * ptr0.8;
  void * ptr3.9;
  void * ptr1.10;
  void * * D.5049;
  void * D.5050;
  void * ptr2.11;
  struct GArray * array;
  void * ptr0;
  void * ptr1;
  void * ptr2;
  void * ptr3;

  try
    {
      array.2 = monoeg_g_array_new (0, 0, 8);
      array = array.2;
      array.3 = array;
      monoeg_g_array_insert_vals (array.3, 0, &array, 1);
      array.3 = array;
      D.5023 = array.3->data;
      D.5024 = MEM[(void * *)D.5023];
      array.3 = array;
      if (D.5024 != array.3) goto <D.5025>; else goto <D.5026>;
      <D.5025>:
      D.5027 = FAILED ("1 The value in the array is incorrect");
      return D.5027;
      <D.5026>:
      array.3 = array;
      monoeg_g_array_insert_vals (array.3, 1, &array, 1);
      array.3 = array;
      D.5023 = array.3->data;
      D.5028 = D.5023 + 8;
      D.5029 = *D.5028;
      array.3 = array;
      if (D.5029 != array.3) goto <D.5030>; else goto <D.5031>;
      <D.5030>:
      D.5027 = FAILED ("2 The value in the array is incorrect");
      return D.5027;
      <D.5031>:
      array.3 = array;
      monoeg_g_array_insert_vals (array.3, 2, &array, 1);
      array.3 = array;
      D.5023 = array.3->data;
      D.5032 = D.5023 + 16;
      D.5033 = *D.5032;
      array.3 = array;
      if (D.5033 != array.3) goto <D.5034>; else goto <D.5035>;
      <D.5034>:
      D.5027 = FAILED ("3 The value in the array is incorrect");
      return D.5027;
      <D.5035>:
      array.3 = array;
      monoeg_g_array_free (array.3, 1);
      array.4 = monoeg_g_array_new (0, 0, 8);
      array = array.4;
      array.3 = array;
      ptr0 = array.3;
      array.3 = array;
      ptr1.5 = array.3 + 16;
      ptr1 = ptr1.5;
      array.3 = array;
      ptr2.6 = array.3 + 32;
      ptr2 = ptr2.6;
      array.3 = array;
      ptr3.7 = array.3 + 48;
      ptr3 = ptr3.7;
      array.3 = array;
      monoeg_g_array_insert_vals (array.3, 0, &ptr0, 1);
      array.3 = array;
      monoeg_g_array_insert_vals (array.3, 1, &ptr1, 1);
      array.3 = array;
      monoeg_g_array_insert_vals (array.3, 2, &ptr2, 1);
      array.3 = array;
      monoeg_g_array_insert_vals (array.3, 1, &ptr3, 1);
      array.3 = array;
      D.5023 = array.3->data;
      D.5024 = MEM[(void * *)D.5023];
      ptr0.8 = ptr0;
      if (D.5024 != ptr0.8) goto <D.5041>; else goto <D.5042>;
      <D.5041>:
      D.5027 = FAILED ("4 The value in the array is incorrect");
      return D.5027;
      <D.5042>:
      array.3 = array;
      D.5023 = array.3->data;
      D.5028 = D.5023 + 8;
      D.5029 = *D.5028;
      ptr3.9 = ptr3;
      if (D.5029 != ptr3.9) goto <D.5044>; else goto <D.5045>;
      <D.5044>:
      D.5027 = FAILED ("5 The value in the array is incorrect");
      return D.5027;
      <D.5045>:
      array.3 = array;
      D.5023 = array.3->data;
      D.5032 = D.5023 + 16;
      D.5033 = *D.5032;
      ptr1.10 = ptr1;
      if (D.5033 != ptr1.10) goto <D.5047>; else goto <D.5048>;
      <D.5047>:
      D.5027 = FAILED ("6 The value in the array is incorrect");
      return D.5027;
      <D.5048>:
      array.3 = array;
      D.5023 = array.3->data;
      D.5049 = D.5023 + 24;
      D.5050 = *D.5049;
      ptr2.11 = ptr2;
      if (D.5050 != ptr2.11) goto <D.5052>; else goto <D.5053>;
      <D.5052>:
      D.5027 = FAILED ("7 The value in the array is incorrect");
      return D.5027;
      <D.5053>:
      array.3 = array;
      monoeg_g_array_free (array.3, 1);
      D.5027 = 0B;
      return D.5027;
    }
  finally
    {
      array = {CLOBBER};
      ptr0 = {CLOBBER};
      ptr1 = {CLOBBER};
      ptr2 = {CLOBBER};
      ptr3 = {CLOBBER};
    }
}


test_array_remove ()
{
  int D.5056;
  gchar * D.5059;
  gchar * D.5062;
  int * D.5063;
  int D.5064;
  struct GArray * array;
  int v[6];

  try
    {
      array = monoeg_g_array_new (0, 0, 4);
      v[0] = 30;
      v[1] = 29;
      v[2] = 28;
      v[3] = 27;
      v[4] = 26;
      v[5] = 25;
      monoeg_g_array_append_vals (array, &v, 6);
      D.5056 = array->len;
      if (D.5056 != 6) goto <D.5057>; else goto <D.5058>;
      <D.5057>:
      D.5059 = FAILED ("append_vals fail");
      return D.5059;
      <D.5058>:
      monoeg_g_array_remove_index (array, 3);
      D.5056 = array->len;
      if (D.5056 != 5) goto <D.5060>; else goto <D.5061>;
      <D.5060>:
      D.5059 = FAILED ("remove_index failed to update length");
      return D.5059;
      <D.5061>:
      D.5062 = array->data;
      D.5063 = D.5062 + 12;
      D.5064 = *D.5063;
      if (D.5064 != 26) goto <D.5065>; else goto <D.5066>;
      <D.5065>:
      D.5059 = FAILED ("remove_index failed to update the array");
      return D.5059;
      <D.5066>:
      monoeg_g_array_free (array, 1);
      D.5059 = 0B;
      return D.5059;
    }
  finally
    {
      v = {CLOBBER};
    }
}


array_tests_init ()
{
  struct Test * D.5069;

  D.5069 = &array_tests;
  return D.5069;
}


