#include <stdio.h>
#include "map.h"

void printusage(char * argv0)
{
  fprintf(stderr,
	  "USAGE: %s map_file\n", argv0);
}

// Spits out a map to stream fp
void printmap(Map_t * map, FILE * fp)
{
  fprintf(fp,
	  "%lu %lu\n",
	  map->Num_Nodes, map->Num_Edges);

  Index_t i;
  for (i=0; i < map->Num_Nodes; i++)
    {
      fprintf(fp, "%lu %lu %lu\n",
	      i, map->Node_List_Ptr[i].X, map->Node_List_Ptr[i].Y);
    }

  for (i=0; i < map->Num_Edges; i++)
    {
      fprintf(fp, "%lu %lu\n",
	      map->Edge_List_Ptr[i].From, map->Edge_List_Ptr[i].To);
    }
}

int main(int argc, char * argv[])
{
  if (argc != 2)
    {
      printusage(argv[0]);
      return 2;
    }

  FILE * fin = fopen(argv[1],"r");
  if (NULL == fin)
    {
      printusage(argv[0]);
      return 1;
    }

  Map_t * map = Load_Map(fin);
  if (NULL == map)
    {
      printusage(argv[0]);
      return 1;
    }

  printmap(map, stdout);

  Delete_Map(map);

  return 0;
}
