#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <stdint.h>

#include <SimpleTypeSystem.h>

#include "utils.h"

#include "test_macros.h"
#include "refcount.h"
#include "to_string.h"
#include "error.h"
#include "dynamic_array.h"
#include "callback.h"
#include "linked_list.h"
#include "thread.h"
#include "map.h"
#include "base_n.h"

int main  (int argc, char ** argv, char ** argp) {
  setup_suite ("SSTS");

  s_mm_init (S_MM_TYPE_LIBC);
  
  test_unit (test_utils, "Utils");

  test_unit (test_refcount, "Refcount");
  test_unit (test_to_string, "To String");
  test_unit (test_error, "Error");
  test_unit (test_dynamic_array, "Dynamic Array");
  test_unit (test_linked_list, "Linked List");
  test_unit (test_map, "Map");
  test_unit (test_callback, "Callback");
  test_unit (test_base_16_text, "Base 16 Text");
  test_unit (test_base_16_object, "Base 16 Object");
  //test_unit (test_thread, "Threading");

  s_teardown ();

  end_suite ();
}
