Index: branches/FEPSimulator/HighwaysParser.cpp
===================================================================
--- branches/FEPSimulator/HighwaysParser.cpp	(revision 205)
+++ branches/FEPSimulator/HighwaysParser.cpp	(revision 209)
@@ -35,5 +35,4 @@
     int numLines;
     sscanf(currLine.c_str(), "%d", &numLines);
-    cout << currLine << endl;
     int lineNum = 0;
     long lds = 0;
@@ -51,5 +50,5 @@
     float occ = 0;
     int vol = 0;
-    char loopLoc[25];
+
     for(int lineIndex = 0; lineIndex < numLines; lineIndex++)
     {
@@ -59,7 +58,4 @@
         int numStations = 0;
         sscanf(currLine.c_str(), "%d %hd %d", &lineNum, &count, &numStations);
-        cout << "Line num: " << lineNum << endl;
-        cout << "Count: " << count << endl;
-        cout << "numStations: " << numStations << endl;
         newLine->lineNum = lineNum;
         newLine->count = count;
@@ -93,12 +89,10 @@
                 
                 getline(highwaysStream, currLine);
-                cout << currLine << endl;
-                sscanf(currLine.c_str(), "%ld %f %d %s", &loopID, &occ, &vol, loopLoc);
+                newLoop->loop_loc = (char *) malloc(25 * sizeof(char));
+                sscanf(currLine.c_str(), "%ld %f %d %s", &loopID, &occ, &vol, newLoop->loop_loc);
                 newLoop->loopID = loopID;
                 newLoop->occ = occ;
                 newLoop->vol = vol;
                 newLoop->spd = 0;
-                newLoop->loop_loc = loopLoc;
-                cout << "Adding " << newLoop->loopID << " to " << newStation->lds << endl;
                 newStation->loops.push_back(newLoop);
             }
@@ -109,9 +103,8 @@
                 printf("%02X", (unsigned char) newStation->dataPack[byte]);
             }
+            printf("\n");
             
-            cout << "Adding " << newStation->lds << " to ldsMap " << " at index " << ldsIndex << endl;
             this->stations.push_back(newStation);
         }
-        cout << "Adding " << newLine->lineNum << " to lines" << endl;
         this->lines.push_back(newLine);
     }
Index: branches/FEPSimulator/HighwaysParser.h
===================================================================
--- branches/FEPSimulator/HighwaysParser.h	(revision 202)
+++ branches/FEPSimulator/HighwaysParser.h	(revision 209)
@@ -19,10 +19,9 @@
 public:
     HighwaysParser(char * highwaysData);
-    
+    void parseLines(char * highwaysData);
     vector<FEP_LINE*> lines;
     vector<STATION*> stations;
     virtual ~HighwaysParser();
 private:
-    void parseLines(char * highwaysData);
 };
 
Index: branches/FEPSimulator/nbproject/Makefile-variables.mk
===================================================================
--- branches/FEPSimulator/nbproject/Makefile-variables.mk	(revision 82)
+++ branches/FEPSimulator/nbproject/Makefile-variables.mk	(revision 209)
@@ -9,7 +9,7 @@
 # Debug configuration
 CND_PLATFORM_Debug=GNU-MacOSX
-CND_ARTIFACT_DIR_Debug=dist/Debug/GNU-MacOSX
-CND_ARTIFACT_NAME_Debug=fepsimulator
-CND_ARTIFACT_PATH_Debug=dist/Debug/GNU-MacOSX/fepsimulator
+CND_ARTIFACT_DIR_Debug=build/Debug/GNU-MacOSX/tests/TestFiles
+CND_ARTIFACT_NAME_Debug=f2
+CND_ARTIFACT_PATH_Debug=build/Debug/GNU-MacOSX/tests/TestFiles/f2
 CND_PACKAGE_DIR_Debug=dist/Debug/GNU-MacOSX/package
 CND_PACKAGE_NAME_Debug=fepsimulator.tar
@@ -23,4 +23,12 @@
 CND_PACKAGE_NAME_Release=feprpcclient.tar
 CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux-x86/package/feprpcclient.tar
+# testHighwaysParser configuration
+CND_PLATFORM_testHighwaysParser=GNU-MacOSX
+CND_ARTIFACT_DIR_testHighwaysParser=build/testHighwaysParser/GNU-MacOSX/tests/TestFiles
+CND_ARTIFACT_NAME_testHighwaysParser=f2
+CND_ARTIFACT_PATH_testHighwaysParser=build/testHighwaysParser/GNU-MacOSX/tests/TestFiles/f2
+CND_PACKAGE_DIR_testHighwaysParser=dist/testHighwaysParser/GNU-MacOSX/package
+CND_PACKAGE_NAME_testHighwaysParser=fepsimulator.tar
+CND_PACKAGE_PATH_testHighwaysParser=dist/testHighwaysParser/GNU-MacOSX/package/fepsimulator.tar
 #
 # include compiler specific variables
Index: branches/FEPSimulator/nbproject/configurations.xml
===================================================================
--- branches/FEPSimulator/nbproject/configurations.xml	(revision 186)
+++ branches/FEPSimulator/nbproject/configurations.xml	(revision 209)
@@ -29,4 +29,10 @@
                    projectFiles="false"
                    kind="TEST_LOGICAL_FOLDER">
+      <logicalFolder name="f1"
+                     displayName="HighwaysParserTest"
+                     projectFiles="true"
+                     kind="TEST">
+        <itemPath>tests/HighwaysParserTest.cpp</itemPath>
+      </logicalFolder>
     </logicalFolder>
     <logicalFolder name="ExternalFiles"
@@ -46,9 +52,19 @@
       </toolsSet>
       <compileType>
-        <ccTool>
-          <incDir>
-            <pElem>tinyxml</pElem>
-          </incDir>
-        </ccTool>
+        <cTool>
+          <incDir>
+            <pElem>.</pElem>
+          </incDir>
+          <commandLine>`cppunit-config --cflags`</commandLine>
+        </cTool>
+        <ccTool>
+          <incDir>
+            <pElem>.</pElem>
+          </incDir>
+          <commandLine>`cppunit-config --cflags`</commandLine>
+        </ccTool>
+        <linkerTool>
+          <output>${TESTDIR}/TestFiles/f2</output>
+        </linkerTool>
       </compileType>
       <item path="DataPacker.cpp" ex="false" tool="1" flavor2="0">
@@ -66,4 +82,19 @@
       <item path="Main.cpp" ex="false" tool="1" flavor2="0">
       </item>
+      <folder path="TestFiles/f1">
+        <cTool>
+          <incDir>
+            <pElem>.</pElem>
+          </incDir>
+        </cTool>
+        <ccTool>
+          <incDir>
+            <pElem>.</pElem>
+          </incDir>
+        </ccTool>
+        <linkerTool>
+          <output>${TESTDIR}/TestFiles/f1</output>
+        </linkerTool>
+      </folder>
       <item path="fep.h" ex="false" tool="3" flavor2="0">
       </item>
@@ -73,4 +104,6 @@
       </item>
       <item path="network.h" ex="false" tool="3" flavor2="0">
+      </item>
+      <item path="tests/HighwaysParserTest.cpp" ex="false" tool="1" flavor2="0">
       </item>
     </conf>
@@ -84,7 +117,15 @@
         <cTool>
           <developmentMode>5</developmentMode>
-        </cTool>
-        <ccTool>
-          <developmentMode>5</developmentMode>
+          <incDir>
+            <pElem>.</pElem>
+          </incDir>
+          <commandLine>`cppunit-config --cflags`</commandLine>
+        </cTool>
+        <ccTool>
+          <developmentMode>5</developmentMode>
+          <incDir>
+            <pElem>.</pElem>
+          </incDir>
+          <commandLine>`cppunit-config --cflags`</commandLine>
         </ccTool>
         <fortranCompilerTool>
@@ -94,4 +135,13 @@
           <developmentMode>5</developmentMode>
         </asmTool>
+        <linkerTool>
+          <output>${TESTDIR}/TestFiles/f2</output>
+          <linkerLibItems>
+            <linkerOptionItem>`cppunit-config --libs`</linkerOptionItem>
+            <linkerOptionItem>`cppunit-config --libs`</linkerOptionItem>
+            <linkerOptionItem>`cppunit-config --libs`</linkerOptionItem>
+            <linkerOptionItem>`cppunit-config --libs`</linkerOptionItem>
+          </linkerLibItems>
+        </linkerTool>
       </compileType>
       <item path="DataPacker.cpp" ex="false" tool="1" flavor2="0">
@@ -109,4 +159,19 @@
       <item path="Main.cpp" ex="false" tool="1" flavor2="0">
       </item>
+      <folder path="TestFiles/f1">
+        <cTool>
+          <incDir>
+            <pElem>.</pElem>
+          </incDir>
+        </cTool>
+        <ccTool>
+          <incDir>
+            <pElem>.</pElem>
+          </incDir>
+        </ccTool>
+        <linkerTool>
+          <output>${TESTDIR}/TestFiles/f1</output>
+        </linkerTool>
+      </folder>
       <item path="fep.h" ex="false" tool="3" flavor2="0">
       </item>
@@ -116,4 +181,76 @@
       </item>
       <item path="network.h" ex="false" tool="3" flavor2="0">
+      </item>
+      <item path="tests/HighwaysParserTest.cpp" ex="false" tool="1" flavor2="0">
+      </item>
+    </conf>
+    <conf name="testHighwaysParser" type="1">
+      <toolsSet>
+        <compilerSet>default</compilerSet>
+        <dependencyChecking>true</dependencyChecking>
+        <rebuildPropChanged>false</rebuildPropChanged>
+      </toolsSet>
+      <compileType>
+        <cTool>
+          <incDir>
+            <pElem>.</pElem>
+          </incDir>
+          <commandLine>`cppunit-config --cflags`</commandLine>
+        </cTool>
+        <ccTool>
+          <incDir>
+            <pElem>.</pElem>
+          </incDir>
+          <commandLine>`cppunit-config --cflags`</commandLine>
+        </ccTool>
+        <linkerTool>
+          <output>${TESTDIR}/TestFiles/f2</output>
+          <linkerLibItems>
+            <linkerOptionItem>`cppunit-config --libs`</linkerOptionItem>
+            <linkerOptionItem>`cppunit-config --libs`</linkerOptionItem>
+            <linkerOptionItem>`cppunit-config --libs`</linkerOptionItem>
+            <linkerOptionItem>`cppunit-config --libs`</linkerOptionItem>
+            <linkerOptionItem>`cppunit-config --libs`</linkerOptionItem>
+          </linkerLibItems>
+        </linkerTool>
+      </compileType>
+      <item path="DataPacker.cpp" ex="false" tool="1" flavor2="0">
+      </item>
+      <item path="DataPacker.h" ex="false" tool="3" flavor2="0">
+      </item>
+      <item path="FEPSim.cpp" ex="false" tool="1" flavor2="0">
+      </item>
+      <item path="FEPSim.h" ex="false" tool="3" flavor2="0">
+      </item>
+      <item path="HighwaysParser.cpp" ex="false" tool="1" flavor2="0">
+      </item>
+      <item path="HighwaysParser.h" ex="false" tool="3" flavor2="0">
+      </item>
+      <item path="Main.cpp" ex="false" tool="1" flavor2="0">
+      </item>
+      <folder path="TestFiles/f1">
+        <cTool>
+          <incDir>
+            <pElem>.</pElem>
+          </incDir>
+        </cTool>
+        <ccTool>
+          <incDir>
+            <pElem>.</pElem>
+          </incDir>
+        </ccTool>
+        <linkerTool>
+          <output>${TESTDIR}/TestFiles/f1</output>
+        </linkerTool>
+      </folder>
+      <item path="fep.h" ex="false" tool="3" flavor2="0">
+      </item>
+      <item path="fep_clnt.c" ex="false" tool="0" flavor2="0">
+      </item>
+      <item path="fep_xdr.c" ex="false" tool="0" flavor2="0">
+      </item>
+      <item path="network.h" ex="false" tool="3" flavor2="0">
+      </item>
+      <item path="tests/HighwaysParserTest.cpp" ex="false" tool="1" flavor2="0">
       </item>
     </conf>
Index: branches/FEPSimulator/nbproject/private/Makefile-variables.mk
===================================================================
--- branches/FEPSimulator/nbproject/private/Makefile-variables.mk	(revision 77)
+++ branches/FEPSimulator/nbproject/private/Makefile-variables.mk	(revision 209)
@@ -6,2 +6,3 @@
 # Debug configuration
 # Release configuration
+# testHighwaysParser configuration
Index: branches/FEPSimulator/nbproject/private/configurations.xml
===================================================================
--- branches/FEPSimulator/nbproject/private/configurations.xml	(revision 87)
+++ branches/FEPSimulator/nbproject/private/configurations.xml	(revision 209)
@@ -75,4 +75,37 @@
       </runprofile>
     </conf>
+    <conf name="testHighwaysParser" type="1">
+      <toolsSet>
+        <developmentServer>localhost</developmentServer>
+        <platform>4</platform>
+      </toolsSet>
+      <dbx_gdbdebugger version="1">
+        <gdb_pathmaps>
+        </gdb_pathmaps>
+        <gdb_interceptlist>
+          <gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
+        </gdb_interceptlist>
+        <gdb_options>
+          <DebugOptions>
+          </DebugOptions>
+        </gdb_options>
+        <gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
+      </dbx_gdbdebugger>
+      <nativedebugger version="1">
+        <engine>gdb</engine>
+      </nativedebugger>
+      <runprofile version="9">
+        <runcommandpicklist>
+          <runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
+        </runcommandpicklist>
+        <runcommand>"${OUTPUT_PATH}"</runcommand>
+        <rundir></rundir>
+        <buildfirst>true</buildfirst>
+        <terminal-type>0</terminal-type>
+        <remove-instrumentation>0</remove-instrumentation>
+        <environment>
+        </environment>
+      </runprofile>
+    </conf>
   </confs>
 </configurationDescriptor>
Index: branches/FEPSimulator/nbproject/private/private.xml
===================================================================
--- branches/FEPSimulator/nbproject/private/private.xml	(revision 208)
+++ branches/FEPSimulator/nbproject/private/private.xml	(revision 209)
@@ -14,4 +14,5 @@
             <file>file:/Users/jtorres/tmcsimulator/branches/FEPSimulator/FEPSim.cpp</file>
             <file>file:/Users/jtorres/tmcsimulator/branches/FEPSimulator/network.h</file>
+            <file>file:/Users/jtorres/tmcsimulator/branches/FEPSimulator/Makefile</file>
         </group>
     </open-files>
Index: branches/FEPSimulator/nbproject/Package-Debug.bash
===================================================================
--- branches/FEPSimulator/nbproject/Package-Debug.bash	(revision 82)
+++ branches/FEPSimulator/nbproject/Package-Debug.bash	(revision 209)
@@ -14,6 +14,6 @@
 NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
 TMPDIRNAME=tmp-packaging
-OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/fepsimulator
-OUTPUT_BASENAME=fepsimulator
+OUTPUT_PATH=${TESTDIR}/TestFiles/f2
+OUTPUT_BASENAME=f2
 PACKAGE_TOP_DIR=fepsimulator/
 
Index: branches/FEPSimulator/nbproject/Makefile-testHighwaysParser.mk
===================================================================
--- branches/FEPSimulator/nbproject/Makefile-testHighwaysParser.mk	(revision 209)
+++ branches/FEPSimulator/nbproject/Makefile-testHighwaysParser.mk	(revision 209)
@@ -0,0 +1,220 @@
+#
+# Generated Makefile - do not edit!
+#
+# Edit the Makefile in the project folder instead (../Makefile). Each target
+# has a -pre and a -post target defined where you can add customized code.
+#
+# This makefile implements configuration specific macros and targets.
+
+
+# Environment
+MKDIR=mkdir
+CP=cp
+GREP=grep
+NM=nm
+CCADMIN=CCadmin
+RANLIB=ranlib
+CC=gcc
+CCC=g++
+CXX=g++
+FC=gfortran
+AS=as
+
+# Macros
+CND_PLATFORM=GNU-MacOSX
+CND_DLIB_EXT=dylib
+CND_CONF=testHighwaysParser
+CND_DISTDIR=dist
+CND_BUILDDIR=build
+
+# Include project Makefile
+include Makefile
+
+# Object Directory
+OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
+
+# Object Files
+OBJECTFILES= \
+	${OBJECTDIR}/DataPacker.o \
+	${OBJECTDIR}/FEPSim.o \
+	${OBJECTDIR}/HighwaysParser.o \
+	${OBJECTDIR}/Main.o \
+	${OBJECTDIR}/fep_clnt.o \
+	${OBJECTDIR}/fep_xdr.o
+
+# Test Directory
+TESTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tests
+
+# Test Files
+TESTFILES= \
+	${TESTDIR}/TestFiles/f1
+
+# C Compiler Flags
+CFLAGS=`cppunit-config --cflags` 
+
+# CC Compiler Flags
+CCFLAGS=`cppunit-config --cflags` 
+CXXFLAGS=`cppunit-config --cflags` 
+
+# Fortran Compiler Flags
+FFLAGS=
+
+# Assembler Flags
+ASFLAGS=
+
+# Link Libraries and Options
+LDLIBSOPTIONS=`cppunit-config --libs` `cppunit-config --libs` `cppunit-config --libs` `cppunit-config --libs` `cppunit-config --libs`  
+
+# Build Targets
+.build-conf: ${BUILD_SUBPROJECTS}
+	"${MAKE}"  -f nbproject/Makefile-${CND_CONF}.mk ${TESTDIR}/TestFiles/f2
+
+${TESTDIR}/TestFiles/f2: ${OBJECTFILES}
+	${MKDIR} -p ${TESTDIR}/TestFiles
+	${LINK.cc} -o ${TESTDIR}/TestFiles/f2 ${OBJECTFILES} ${LDLIBSOPTIONS}
+
+${OBJECTDIR}/DataPacker.o: DataPacker.cpp 
+	${MKDIR} -p ${OBJECTDIR}
+	${RM} "$@.d"
+	$(COMPILE.cc) -g -I. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/DataPacker.o DataPacker.cpp
+
+${OBJECTDIR}/FEPSim.o: FEPSim.cpp 
+	${MKDIR} -p ${OBJECTDIR}
+	${RM} "$@.d"
+	$(COMPILE.cc) -g -I. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/FEPSim.o FEPSim.cpp
+
+${OBJECTDIR}/HighwaysParser.o: HighwaysParser.cpp 
+	${MKDIR} -p ${OBJECTDIR}
+	${RM} "$@.d"
+	$(COMPILE.cc) -g -I. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/HighwaysParser.o HighwaysParser.cpp
+
+${OBJECTDIR}/Main.o: Main.cpp 
+	${MKDIR} -p ${OBJECTDIR}
+	${RM} "$@.d"
+	$(COMPILE.cc) -g -I. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/Main.o Main.cpp
+
+${OBJECTDIR}/fep_clnt.o: fep_clnt.c 
+	${MKDIR} -p ${OBJECTDIR}
+	${RM} "$@.d"
+	$(COMPILE.c) -g -I. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/fep_clnt.o fep_clnt.c
+
+${OBJECTDIR}/fep_xdr.o: fep_xdr.c 
+	${MKDIR} -p ${OBJECTDIR}
+	${RM} "$@.d"
+	$(COMPILE.c) -g -I. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/fep_xdr.o fep_xdr.c
+
+# Subprojects
+.build-subprojects:
+
+# Build Test Targets
+.build-tests-conf: .build-conf ${TESTFILES}
+${TESTDIR}/TestFiles/f1: ${TESTDIR}/tests/HighwaysParserTest.o ${OBJECTFILES:%.o=%_nomain.o}
+	${MKDIR} -p ${TESTDIR}/TestFiles
+	${LINK.cc}   -o ${TESTDIR}/TestFiles/f1 $^ ${LDLIBSOPTIONS} 
+
+
+${TESTDIR}/tests/HighwaysParserTest.o: tests/HighwaysParserTest.cpp 
+	${MKDIR} -p ${TESTDIR}/tests
+	${RM} "$@.d"
+	$(COMPILE.cc) -g -I. -I. -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/HighwaysParserTest.o tests/HighwaysParserTest.cpp
+
+
+${OBJECTDIR}/DataPacker_nomain.o: ${OBJECTDIR}/DataPacker.o DataPacker.cpp 
+	${MKDIR} -p ${OBJECTDIR}
+	@NMOUTPUT=`${NM} ${OBJECTDIR}/DataPacker.o`; \
+	if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
+	then  \
+	    ${RM} "$@.d";\
+	    $(COMPILE.cc) -g -I. -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/DataPacker_nomain.o DataPacker.cpp;\
+	else  \
+	    ${CP} ${OBJECTDIR}/DataPacker.o ${OBJECTDIR}/DataPacker_nomain.o;\
+	fi
+
+${OBJECTDIR}/FEPSim_nomain.o: ${OBJECTDIR}/FEPSim.o FEPSim.cpp 
+	${MKDIR} -p ${OBJECTDIR}
+	@NMOUTPUT=`${NM} ${OBJECTDIR}/FEPSim.o`; \
+	if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
+	then  \
+	    ${RM} "$@.d";\
+	    $(COMPILE.cc) -g -I. -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/FEPSim_nomain.o FEPSim.cpp;\
+	else  \
+	    ${CP} ${OBJECTDIR}/FEPSim.o ${OBJECTDIR}/FEPSim_nomain.o;\
+	fi
+
+${OBJECTDIR}/HighwaysParser_nomain.o: ${OBJECTDIR}/HighwaysParser.o HighwaysParser.cpp 
+	${MKDIR} -p ${OBJECTDIR}
+	@NMOUTPUT=`${NM} ${OBJECTDIR}/HighwaysParser.o`; \
+	if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
+	then  \
+	    ${RM} "$@.d";\
+	    $(COMPILE.cc) -g -I. -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/HighwaysParser_nomain.o HighwaysParser.cpp;\
+	else  \
+	    ${CP} ${OBJECTDIR}/HighwaysParser.o ${OBJECTDIR}/HighwaysParser_nomain.o;\
+	fi
+
+${OBJECTDIR}/Main_nomain.o: ${OBJECTDIR}/Main.o Main.cpp 
+	${MKDIR} -p ${OBJECTDIR}
+	@NMOUTPUT=`${NM} ${OBJECTDIR}/Main.o`; \
+	if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
+	then  \
+	    ${RM} "$@.d";\
+	    $(COMPILE.cc) -g -I. -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/Main_nomain.o Main.cpp;\
+	else  \
+	    ${CP} ${OBJECTDIR}/Main.o ${OBJECTDIR}/Main_nomain.o;\
+	fi
+
+${OBJECTDIR}/fep_clnt_nomain.o: ${OBJECTDIR}/fep_clnt.o fep_clnt.c 
+	${MKDIR} -p ${OBJECTDIR}
+	@NMOUTPUT=`${NM} ${OBJECTDIR}/fep_clnt.o`; \
+	if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
+	then  \
+	    ${RM} "$@.d";\
+	    $(COMPILE.c) -g -I. -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/fep_clnt_nomain.o fep_clnt.c;\
+	else  \
+	    ${CP} ${OBJECTDIR}/fep_clnt.o ${OBJECTDIR}/fep_clnt_nomain.o;\
+	fi
+
+${OBJECTDIR}/fep_xdr_nomain.o: ${OBJECTDIR}/fep_xdr.o fep_xdr.c 
+	${MKDIR} -p ${OBJECTDIR}
+	@NMOUTPUT=`${NM} ${OBJECTDIR}/fep_xdr.o`; \
+	if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
+	then  \
+	    ${RM} "$@.d";\
+	    $(COMPILE.c) -g -I. -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/fep_xdr_nomain.o fep_xdr.c;\
+	else  \
+	    ${CP} ${OBJECTDIR}/fep_xdr.o ${OBJECTDIR}/fep_xdr_nomain.o;\
+	fi
+
+# Run Test Targets
+.test-conf:
+	@if [ "${TEST}" = "" ]; \
+	then  \
+	    ${TESTDIR}/TestFiles/f1 || true; \
+	else  \
+	    ./${TEST} || true; \
+	fi
+
+# Clean Targets
+.clean-conf: ${CLEAN_SUBPROJECTS}
+	${RM} -r ${CND_BUILDDIR}/${CND_CONF}
+	${RM} ${TESTDIR}/TestFiles/f2
+
+# Subprojects
+.clean-subprojects:
+
+# Enable dependency checking
+.dep.inc: .depcheck-impl
+
+include .dep.inc
Index: branches/FEPSimulator/nbproject/Makefile-impl.mk
===================================================================
--- branches/FEPSimulator/nbproject/Makefile-impl.mk	(revision 82)
+++ branches/FEPSimulator/nbproject/Makefile-impl.mk	(revision 209)
@@ -32,5 +32,5 @@
 
 # All Configurations
-ALLCONFS=Debug Release 
+ALLCONFS=Debug Release testHighwaysParser 
 
 
Index: branches/FEPSimulator/nbproject/Package-testHighwaysParser.bash
===================================================================
--- branches/FEPSimulator/nbproject/Package-testHighwaysParser.bash	(revision 209)
+++ branches/FEPSimulator/nbproject/Package-testHighwaysParser.bash	(revision 209)
@@ -0,0 +1,76 @@
+#!/bin/bash -x
+
+#
+# Generated - do not edit!
+#
+
+# Macros
+TOP=`pwd`
+CND_PLATFORM=GNU-MacOSX
+CND_CONF=testHighwaysParser
+CND_DISTDIR=dist
+CND_BUILDDIR=build
+CND_DLIB_EXT=dylib
+NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
+TMPDIRNAME=tmp-packaging
+OUTPUT_PATH=${TESTDIR}/TestFiles/f2
+OUTPUT_BASENAME=f2
+PACKAGE_TOP_DIR=fepsimulator/
+
+# Functions
+function checkReturnCode
+{
+    rc=$?
+    if [ $rc != 0 ]
+    then
+        exit $rc
+    fi
+}
+function makeDirectory
+# $1 directory path
+# $2 permission (optional)
+{
+    mkdir -p "$1"
+    checkReturnCode
+    if [ "$2" != "" ]
+    then
+      chmod $2 "$1"
+      checkReturnCode
+    fi
+}
+function copyFileToTmpDir
+# $1 from-file path
+# $2 to-file path
+# $3 permission
+{
+    cp "$1" "$2"
+    checkReturnCode
+    if [ "$3" != "" ]
+    then
+        chmod $3 "$2"
+        checkReturnCode
+    fi
+}
+
+# Setup
+cd "${TOP}"
+mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
+rm -rf ${NBTMPDIR}
+mkdir -p ${NBTMPDIR}
+
+# Copy files and create directories and links
+cd "${TOP}"
+makeDirectory "${NBTMPDIR}/fepsimulator/bin"
+copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
+
+
+# Generate tar file
+cd "${TOP}"
+rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/fepsimulator.tar
+cd ${NBTMPDIR}
+tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/fepsimulator.tar *
+checkReturnCode
+
+# Cleanup
+cd "${TOP}"
+rm -rf ${NBTMPDIR}
Index: branches/FEPSimulator/nbproject/project.xml
===================================================================
--- branches/FEPSimulator/nbproject/project.xml	(revision 80)
+++ branches/FEPSimulator/nbproject/project.xml	(revision 209)
@@ -20,4 +20,8 @@
                     <type>1</type>
                 </confElem>
+                <confElem>
+                    <name>testHighwaysParser</name>
+                    <type>1</type>
+                </confElem>
             </confList>
             <formatting>
Index: branches/FEPSimulator/nbproject/Makefile-Debug.mk
===================================================================
--- branches/FEPSimulator/nbproject/Makefile-Debug.mk	(revision 185)
+++ branches/FEPSimulator/nbproject/Makefile-Debug.mk	(revision 209)
@@ -43,11 +43,17 @@
 	${OBJECTDIR}/fep_xdr.o
 
+# Test Directory
+TESTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tests
+
+# Test Files
+TESTFILES= \
+	${TESTDIR}/TestFiles/f1
 
 # C Compiler Flags
-CFLAGS=
+CFLAGS=`cppunit-config --cflags` 
 
 # CC Compiler Flags
-CCFLAGS=
-CXXFLAGS=
+CCFLAGS=`cppunit-config --cflags` 
+CXXFLAGS=`cppunit-config --cflags` 
 
 # Fortran Compiler Flags
@@ -62,47 +68,147 @@
 # Build Targets
 .build-conf: ${BUILD_SUBPROJECTS}
-	"${MAKE}"  -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/fepsimulator
-
-${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/fepsimulator: ${OBJECTFILES}
-	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
-	${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/fepsimulator ${OBJECTFILES} ${LDLIBSOPTIONS}
+	"${MAKE}"  -f nbproject/Makefile-${CND_CONF}.mk ${TESTDIR}/TestFiles/f2
+
+${TESTDIR}/TestFiles/f2: ${OBJECTFILES}
+	${MKDIR} -p ${TESTDIR}/TestFiles
+	${LINK.cc} -o ${TESTDIR}/TestFiles/f2 ${OBJECTFILES} ${LDLIBSOPTIONS}
 
 ${OBJECTDIR}/DataPacker.o: DataPacker.cpp 
 	${MKDIR} -p ${OBJECTDIR}
 	${RM} "$@.d"
-	$(COMPILE.cc) -g -Itinyxml -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/DataPacker.o DataPacker.cpp
+	$(COMPILE.cc) -g -I. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/DataPacker.o DataPacker.cpp
 
 ${OBJECTDIR}/FEPSim.o: FEPSim.cpp 
 	${MKDIR} -p ${OBJECTDIR}
 	${RM} "$@.d"
-	$(COMPILE.cc) -g -Itinyxml -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/FEPSim.o FEPSim.cpp
+	$(COMPILE.cc) -g -I. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/FEPSim.o FEPSim.cpp
 
 ${OBJECTDIR}/HighwaysParser.o: HighwaysParser.cpp 
 	${MKDIR} -p ${OBJECTDIR}
 	${RM} "$@.d"
-	$(COMPILE.cc) -g -Itinyxml -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/HighwaysParser.o HighwaysParser.cpp
+	$(COMPILE.cc) -g -I. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/HighwaysParser.o HighwaysParser.cpp
 
 ${OBJECTDIR}/Main.o: Main.cpp 
 	${MKDIR} -p ${OBJECTDIR}
 	${RM} "$@.d"
-	$(COMPILE.cc) -g -Itinyxml -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/Main.o Main.cpp
+	$(COMPILE.cc) -g -I. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/Main.o Main.cpp
 
 ${OBJECTDIR}/fep_clnt.o: fep_clnt.c 
 	${MKDIR} -p ${OBJECTDIR}
 	${RM} "$@.d"
-	$(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/fep_clnt.o fep_clnt.c
+	$(COMPILE.c) -g -I. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/fep_clnt.o fep_clnt.c
 
 ${OBJECTDIR}/fep_xdr.o: fep_xdr.c 
 	${MKDIR} -p ${OBJECTDIR}
 	${RM} "$@.d"
-	$(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/fep_xdr.o fep_xdr.c
+	$(COMPILE.c) -g -I. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/fep_xdr.o fep_xdr.c
 
 # Subprojects
 .build-subprojects:
+
+# Build Test Targets
+.build-tests-conf: .build-conf ${TESTFILES}
+${TESTDIR}/TestFiles/f1: ${TESTDIR}/tests/HighwaysParserTest.o ${OBJECTFILES:%.o=%_nomain.o}
+	${MKDIR} -p ${TESTDIR}/TestFiles
+	${LINK.cc}   -o ${TESTDIR}/TestFiles/f1 $^ ${LDLIBSOPTIONS} 
+
+
+${TESTDIR}/tests/HighwaysParserTest.o: tests/HighwaysParserTest.cpp 
+	${MKDIR} -p ${TESTDIR}/tests
+	${RM} "$@.d"
+	$(COMPILE.cc) -g -I. -I. -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/HighwaysParserTest.o tests/HighwaysParserTest.cpp
+
+
+${OBJECTDIR}/DataPacker_nomain.o: ${OBJECTDIR}/DataPacker.o DataPacker.cpp 
+	${MKDIR} -p ${OBJECTDIR}
+	@NMOUTPUT=`${NM} ${OBJECTDIR}/DataPacker.o`; \
+	if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
+	then  \
+	    ${RM} "$@.d";\
+	    $(COMPILE.cc) -g -I. -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/DataPacker_nomain.o DataPacker.cpp;\
+	else  \
+	    ${CP} ${OBJECTDIR}/DataPacker.o ${OBJECTDIR}/DataPacker_nomain.o;\
+	fi
+
+${OBJECTDIR}/FEPSim_nomain.o: ${OBJECTDIR}/FEPSim.o FEPSim.cpp 
+	${MKDIR} -p ${OBJECTDIR}
+	@NMOUTPUT=`${NM} ${OBJECTDIR}/FEPSim.o`; \
+	if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
+	then  \
+	    ${RM} "$@.d";\
+	    $(COMPILE.cc) -g -I. -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/FEPSim_nomain.o FEPSim.cpp;\
+	else  \
+	    ${CP} ${OBJECTDIR}/FEPSim.o ${OBJECTDIR}/FEPSim_nomain.o;\
+	fi
+
+${OBJECTDIR}/HighwaysParser_nomain.o: ${OBJECTDIR}/HighwaysParser.o HighwaysParser.cpp 
+	${MKDIR} -p ${OBJECTDIR}
+	@NMOUTPUT=`${NM} ${OBJECTDIR}/HighwaysParser.o`; \
+	if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
+	then  \
+	    ${RM} "$@.d";\
+	    $(COMPILE.cc) -g -I. -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/HighwaysParser_nomain.o HighwaysParser.cpp;\
+	else  \
+	    ${CP} ${OBJECTDIR}/HighwaysParser.o ${OBJECTDIR}/HighwaysParser_nomain.o;\
+	fi
+
+${OBJECTDIR}/Main_nomain.o: ${OBJECTDIR}/Main.o Main.cpp 
+	${MKDIR} -p ${OBJECTDIR}
+	@NMOUTPUT=`${NM} ${OBJECTDIR}/Main.o`; \
+	if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
+	then  \
+	    ${RM} "$@.d";\
+	    $(COMPILE.cc) -g -I. -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/Main_nomain.o Main.cpp;\
+	else  \
+	    ${CP} ${OBJECTDIR}/Main.o ${OBJECTDIR}/Main_nomain.o;\
+	fi
+
+${OBJECTDIR}/fep_clnt_nomain.o: ${OBJECTDIR}/fep_clnt.o fep_clnt.c 
+	${MKDIR} -p ${OBJECTDIR}
+	@NMOUTPUT=`${NM} ${OBJECTDIR}/fep_clnt.o`; \
+	if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
+	then  \
+	    ${RM} "$@.d";\
+	    $(COMPILE.c) -g -I. -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/fep_clnt_nomain.o fep_clnt.c;\
+	else  \
+	    ${CP} ${OBJECTDIR}/fep_clnt.o ${OBJECTDIR}/fep_clnt_nomain.o;\
+	fi
+
+${OBJECTDIR}/fep_xdr_nomain.o: ${OBJECTDIR}/fep_xdr.o fep_xdr.c 
+	${MKDIR} -p ${OBJECTDIR}
+	@NMOUTPUT=`${NM} ${OBJECTDIR}/fep_xdr.o`; \
+	if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
+	   (echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
+	then  \
+	    ${RM} "$@.d";\
+	    $(COMPILE.c) -g -I. -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/fep_xdr_nomain.o fep_xdr.c;\
+	else  \
+	    ${CP} ${OBJECTDIR}/fep_xdr.o ${OBJECTDIR}/fep_xdr_nomain.o;\
+	fi
+
+# Run Test Targets
+.test-conf:
+	@if [ "${TEST}" = "" ]; \
+	then  \
+	    ${TESTDIR}/TestFiles/f1 || true; \
+	else  \
+	    ./${TEST} || true; \
+	fi
 
 # Clean Targets
 .clean-conf: ${CLEAN_SUBPROJECTS}
 	${RM} -r ${CND_BUILDDIR}/${CND_CONF}
-	${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/fepsimulator
+	${RM} ${TESTDIR}/TestFiles/f2
 
 # Subprojects
Index: branches/FEPSimulator/tests/HighwaysParserTest.cpp
===================================================================
--- branches/FEPSimulator/tests/HighwaysParserTest.cpp	(revision 209)
+++ branches/FEPSimulator/tests/HighwaysParserTest.cpp	(revision 209)
@@ -0,0 +1,213 @@
+/* 
+ * File:   HighwaysParserTest.cpp
+ * Author: jtorres
+ *
+ * Created on Nov 1, 2017, 11:59:27 PM
+ */
+
+#include <stdlib.h>
+#include <iostream>
+#include "HighwaysParser.h"
+#include "network.h"
+
+using namespace std;
+
+/*
+ * Simple C++ Test Suite
+ */
+char * createBuffer()
+{
+    char * buffer = "2\n"
+    "32 0 2\n"
+    "1210831 1 5 S 0.9 8\n" 
+    "1210832  0.0 0 ML_1\n"
+    "1210833  0.0 0 ML_2\n"
+    "1210834  0.0 0 ML_3\n"
+    "1210835  0.0 0 ML_4\n"
+    "1210836  0.0 0 PASSAGE\n"
+    "1210837  0.0 0 DEMAND\n"
+    "1210838  0.0 0 QUEUE\n"
+    "1210839  0.0 0 RAMP_OFF\n"
+    "1210845 2 5 S 1.49 9 \n"
+    "1210846  0.0 0 ML_1\n"
+    "1210847  0.0 0 ML_2\n"
+    "1210848  0.0 0 ML_3\n"
+    "1210849  0.0 0 ML_4\n"
+    "1210850  0.0 0 RAMP_ON\n"
+    "1210851  0.0 0 PASSAGE\n"
+    "1210853  0.0 0 DEMAND\n"
+    "1210854  0.0 0 QUEUE\n"
+    "1210855  0.0 0 RAMP_OFF\n"
+    "74 0 1\n"
+    "1204203 2 5 N 1.26 13\n" 
+    "1204205  0.0 0 RAMP_ON\n"
+    "1204206  0.0 0 QUEUE\n"
+    "1204207  0.0 0 DEMAND\n"
+    "1204208  0.0 0 PASSAGE\n"
+    "1204210  0.0 0 RAMP_OFF\n"
+    "1204212  0.0 0 ML_1\n"
+    "1204213  0.0 0 ML_2\n"
+    "1204214  0.0 0 ML_3\n"
+    "1204215  0.0 0 ML_4\n"
+    "1204217  0.0 0 OS_1\n"
+    "1204218  0.0 0 OS_2\n"
+    "1204219  0.0 0 OS_3\n"
+    "1204220  0.0 0 OS_4\n";
+    return buffer;
+}
+
+void testParseLines() {
+    char* highwaysData;
+    HighwaysParser highwaysParser(createBuffer());
+    vector<FEP_LINE *> lines = highwaysParser.lines;
+    vector<STATION *> stations = highwaysParser.stations;
+    
+    // test number of lines
+    int expectedNumLines = 2;
+    int actualNumLines = lines.size();
+    if (expectedNumLines != actualNumLines) {
+        cout << "%TEST_FAILED% time=0 testname=testParseLines (HighwaysParserTest) message=incorrect number of lines" << endl;
+    }
+    
+    // test line nums
+    int expectedLineNums[2] = { 32, 74 };
+    int actualLineNums[2] = { lines.at(0)->lineNum, lines.at(1)->lineNum };
+    for(int i = 0; i < 2; i++)
+    {
+        if(expectedLineNums[i] != actualLineNums[i])
+        {
+            cout << "%TEST_FAILED% time=0 testname=testParseLines (HighwaysParserTest) message=incorrect line_id (LineNum)" << endl;
+        }
+    }
+    
+    // test lds id vector
+    long expectedLDS[2] = { 1210831, 1210845 };
+    long actualLDS[2] = { lines.at(0)->lds.at(0), lines.at(0)->lds.at(1) };
+    for(int i = 0; i < 2; i++)
+    {
+        if(expectedLDS[i] != actualLDS[i])
+        {
+            cout << "%TEST_FAILED% time=0 testname=testParseLines (HighwaysParserTest) message=incorrect lds" << endl;
+        }
+    }
+    
+    // test lds index vector
+    long expectedLDSIndex[2] = { 0, 1 };
+    long actualLDSIndex[2] = { lines.at(0)->ldsIndex.at(0), lines.at(0)->ldsIndex.at(1) };
+    for(int i = 0; i < 2; i++)
+    {
+        if(expectedLDSIndex[i] != actualLDSIndex[i])
+        {
+            cout << "%TEST_FAILED% time=0 testname=testParseLines (HighwaysParserTest) message=incorrect lds index" << endl;
+        }
+    }
+    
+    // test number of stations
+    int expectedNumStations = 3;
+    int actualNumStations = stations.size();
+    
+    if(expectedNumStations != actualNumStations)
+    {
+        cout << "%TEST_FAILED% time=0 testname=testParseLines (HighwaysParserTest) message=incorrect number of stations" << endl;
+    }
+    
+    // test drop number
+    int expectedDropNums[3] = { 1, 2, 2 };
+    int actualDropNums[3] = { stations.at(0)->drop, stations.at(1)->drop, stations.at(2)->drop };
+    for(int i = 0; i < 3; i++)
+    {
+        if(expectedDropNums[i] != actualDropNums[i])
+        {
+            cout << "%TEST_FAILED% time=0 testname=testParseLines (HighwaysParserTest) message=incorrect drop number" << endl;
+        }
+    }
+    
+    // test station lds numbers
+    long expectedLDSNums[3] = { 1210831, 1210845, 1204203 };
+    long actualLDSNums[3] = { stations.at(0)->lds, stations.at(1)->lds, stations.at(2)->lds };
+    for(int i = 0; i < 3; i++)
+    {
+        if(expectedLDSNums[i] != actualLDSNums[i])
+        {
+            cout << "%TEST_FAILED% time=0 testname=testParseLines (HighwaysParserTest) message=incorrect station drop number" << endl;
+        }
+    }
+    
+    // test station line nums
+    short expectedStnLineNums[3] = {32, 32, 74};
+    short actualStnLineNums[3] = {stations.at(0)->line_num, stations.at(1)->line_num, stations.at(2)->line_num};
+    for(int i = 0; i < 3; i++)
+    {
+        if(expectedStnLineNums[i] != actualStnLineNums[i])
+        {
+            cout << "%TEST_FAILED% time=0 testname=testParseLines (HighwaysParserTest) message=incorrect station line number" << endl;
+        }
+    }
+    
+    // test number of loops
+    int expectedNumberOfLoops = 30;
+    int actualNumberOfLoops = stations.at(0)->loops.size() + stations.at(1)->loops.size() + stations.at(2)->loops.size();
+    
+    if(expectedNumberOfLoops != actualNumberOfLoops)
+    {
+        cout << "%TEST_FAILED% time=0 testname=testParseLines (HighwaysParserTest) message=incorrect number of loops" << endl;
+    }
+    
+    vector<LOOP *> loopsOne = stations.at(0)->loops;
+
+    long expectedLoopIDS[8] = { 1210832, 1210833, 1210834, 1210835, 
+            1210836, 1210837, 1210838, 1210839 };
+    long actualLoopIDS[8] = { loopsOne.at(0)->loopID, loopsOne.at(1)->loopID, 
+            loopsOne.at(2)->loopID, loopsOne.at(3)->loopID, 
+            loopsOne.at(4)->loopID, loopsOne.at(5)->loopID,
+            loopsOne.at(6)->loopID, loopsOne.at(7)->loopID };
+    for(int i = 0; i < 8; i++)
+    {
+        if(expectedLoopIDS[i] != actualLoopIDS[i])
+        {
+            cout << "%TEST_FAILED% time=0 testname=testParseLines (HighwaysParserTest) message=incorrect loop IDS" << endl;
+        }
+    }
+    
+    float expectedOCC[8] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+    float actualOCC[8] = { loopsOne.at(0)->occ, loopsOne.at(1)->occ, 
+            loopsOne.at(2)->occ, loopsOne.at(3)->occ, loopsOne.at(4)->occ, 
+            loopsOne.at(5)->occ, loopsOne.at(6)->occ, loopsOne.at(7)->occ };
+    for(int i = 0; i < 8; i++)
+    {
+        if(expectedOCC[i] != actualOCC[i])
+        {
+            cout << "%TEST_FAILED% time=0 testname=testParseLines (HighwaysParserTest) message=incorrect loop IDS" << endl;
+        }
+    }
+    
+    char * expectedLocs[8] = {"ML_1", "ML_2", "ML_3", "ML_4", "PASSAGE", "DEMAND",
+            "QUEUE", "RAMP_OFF"};
+    char * actualLocs[8] = { loopsOne.at(0)->loop_loc, loopsOne.at(1)->loop_loc,
+            loopsOne.at(2)->loop_loc, loopsOne.at(3)->loop_loc, loopsOne.at(4)->loop_loc,
+            loopsOne.at(5)->loop_loc, loopsOne.at(6)->loop_loc, loopsOne.at(7)->loop_loc };
+
+    for(int i = 0; i < 8; i++)
+    {
+        if(strcmp(expectedLocs[i], actualLocs[i]) != 0)
+        {
+            cout << "EXPECTED: " << expectedLocs[i] << endl;
+            cout << "ACTUAL: " << actualLocs[i] << endl;
+            cout << "%TEST_FAILED% time=0 testname=testParseLines (HighwaysParserTest) message=incorrect loop locs" << endl;
+        }
+    }
+}
+
+int main(int argc, char** argv) {
+    cout << "%SUITE_STARTING% HighwaysParserTest" << endl;
+    cout << "%SUITE_STARTED%" << endl;
+
+    cout << "%TEST_STARTED% testParseLines (HighwaysParserTest)" << endl;
+    testParseLines();
+    cout << "%TEST_FINISHED% time=0 testParseLines (HighwaysParserTest)" << endl;
+
+    cout << "%SUITE_FINISHED% time=0" << endl;
+
+    return (EXIT_SUCCESS);
+}
+
