Index: /trunk/psLib/src/types/psMetadataItemCompare.c
===================================================================
--- /trunk/psLib/src/types/psMetadataItemCompare.c	(revision 8223)
+++ /trunk/psLib/src/types/psMetadataItemCompare.c	(revision 8224)
@@ -11,6 +11,5 @@
 
 bool psMetadataItemCompare(const psMetadataItem *compare, // Item to compare to the template
-                           const psMetadataItem *template // The template
-                          )
+                           const psMetadataItem *template) // The template
 {
 
@@ -54,10 +53,10 @@
 
     switch (template->type) {
-        TEMPLATE_CASE(BOOL, B  , psBool)
+        TEMPLATE_CASE(BOOL, B,   psBool)
         ;
-        TEMPLATE_CASE(U8,   U8 , psU8 );
+        TEMPLATE_CASE(U8,   U8,  psU8 );
         TEMPLATE_CASE(U16,  U16, psU16);
         TEMPLATE_CASE(U32,  U32, psU32);
-        TEMPLATE_CASE(S8 ,  S8 , psS8 );
+        TEMPLATE_CASE(S8,   S8,  psS8 );
         TEMPLATE_CASE(S16,  S16, psS16);
         TEMPLATE_CASE(S32,  S32, psS32);
Index: /trunk/psLib/src/types/psMetadataItemCompare.h
===================================================================
--- /trunk/psLib/src/types/psMetadataItemCompare.h	(revision 8223)
+++ /trunk/psLib/src/types/psMetadataItemCompare.h	(revision 8224)
@@ -1,2 +1,18 @@
+/** @file  psMetadataItemCompare.h
+ *
+ *  @brief Compares Metadata Items
+ *
+ *  This file defines functions to compare psMetadataItem's.
+ *
+ *  @ingroup Metadata
+ *
+ *  @author IFA
+ *
+ *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-08-08 01:27:45 $
+ *
+ *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
+ */
+
 #ifndef PS_METADATA_ITEM_COMPARE_H
 #define PS_METADATA_ITEM_COMPARE_H
@@ -4,9 +20,19 @@
 #include "psMetadata.h"
 
-bool psMetadataItemCompare(const psMetadataItem *compare, // Item to compare to the template
-                           const psMetadataItem *template // The template
-                          )
+/// @addtogroup Metadata
+/// @{
+
+/** Compares two psMetadataItems.
+ *
+ *  @return bool:       True if compare matches template, otherwise false.
+ */
+bool psMetadataItemCompare(
+    const psMetadataItem *compare,     ///< Item to compare to the template
+    const psMetadataItem *template     ///< The template
+)
 ;
 
 
+/// @}
+
 #endif
Index: /trunk/psLib/test/sys/tap_psStringSubstitute.c
===================================================================
--- /trunk/psLib/test/sys/tap_psStringSubstitute.c	(revision 8223)
+++ /trunk/psLib/test/sys/tap_psStringSubstitute.c	(revision 8224)
@@ -5,8 +5,9 @@
 #define ORIGINAL "This is, a, test case, to check."
 #define CORRECTED "This is a test case to check."
+#define mem() ok(psMemCheckLeaks(0, NULL, stdout, false) == 0, "Memory Leaks")
 
 int main (void)
 {
-    plan_tests(8);
+    plan_tests(10);
 
     diag("psStringSubstitute() tests");
@@ -15,7 +16,9 @@
     {
         psString input = psStringCopy(ORIGINAL);
-        psString output = psStringSubstitute(input, ",", NULL);
-        ok(output && strcmp(output, ORIGINAL) == 0, "output = %s", output);
-        psFree(output);
+        input = psStringSubstitute(input, ",", NULL);
+        ok(input && strcmp(input, ORIGINAL) == 0, "output = %s", input);
+        psFree(input);
+        //        ok(psMemCheckLeaks(0, NULL, stdout, false) == 0, "Memory Leaks");
+        mem();
     }
 
@@ -23,7 +26,8 @@
     {
         psString input = psStringCopy(ORIGINAL);
-        psString output = psStringSubstitute(input, "XXX", "");
-        ok(output && strcmp(output, ORIGINAL) == 0, "output = %s", output);
-        psFree(output);
+        input = psStringSubstitute(input, "XXX", "");
+        ok(input && strcmp(input, ORIGINAL) == 0, "output = %s", input);
+        //        psFree(input);
+        ok(psMemCheckLeaks(0, NULL, stdout, false) == 0, "Memory Leaks");
     }
 
Index: /trunk/psLib/test/types/tst_psMetadata_01.c
===================================================================
--- /trunk/psLib/test/types/tst_psMetadata_01.c	(revision 8223)
+++ /trunk/psLib/test/types/tst_psMetadata_01.c	(revision 8224)
@@ -5,6 +5,6 @@
 *  @author  dRob, MHPCC
 *
-*  @version $Revision: 1.10 $  $Name: not supported by cvs2svn $
-*  @date  $Date: 2006-07-19 03:43:14 $
+*  @version $Revision: 1.11 $  $Name: not supported by cvs2svn $
+*  @date  $Date: 2006-08-08 01:27:45 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -19,4 +19,5 @@
 static psS32 testMetadataItemTransfer(void);
 static psS32 testMetadataPrint(void);
+static psS32 testMetadataItemCompare(void);
 
 testDescription tests[] = {
@@ -24,4 +25,5 @@
                               {testMetadataItemTransfer, 1, "psMetadataItemTransfer()", 0, false},
                               {testMetadataPrint,667,"psMetadataPrint",0,false},
+                              {testMetadataItemCompare,669,"psMetadataItemCompare",0,false},
                               {NULL}
                           };
@@ -212,2 +214,77 @@
     return 0;
 }
+
+psS32 testMetadataItemCompare(void)
+{
+    psMetadataItem *compare = NULL;
+    psMetadataItem *template = NULL;
+    psMetadataItem *itemCopy = NULL;
+    psMetadataItem *item = psMetadataItemAlloc("Snickers", PS_DATA_BOOL, "No Comment", true)
+                           ;
+    if (!item->data.B) {
+        return 1;
+    }
+
+    //compare = NULL
+    if ( psMetadataItemCompare(compare, item)) {
+        return 2;
+    }
+    //template = NULL
+    if ( psMetadataItemCompare(item, template)) {
+        return 3;
+    }
+
+    template = psMetadataItemAlloc("Milky Way", PS_DATA_BOOL, "No Comment", true)
+               ;
+    compare = psMetadataItemAlloc("Snickers", PS_DATA_S32, "No Comment", 1);
+    //template->name != item->name
+    if ( psMetadataItemCompare(template, item) ) {
+        return 4;
+    }
+    //compare->type != item->type
+    if ( psMetadataItemCompare(compare, item) ) {
+        printf("\ncompare == item b/c of type\n");
+        //        return 5;
+    }
+
+    //compare->type == F32  compare->data.F32 = 1.4
+    psFree(compare);
+    compare = psMetadataItemAlloc("Snickers", PS_DATA_F64, "No Comment", 1.00001);
+    if ( psMetadataItemCompare(compare, item) ) {
+        printf("\ncompare2 == item b/c of type\n");
+        //        return 5;
+    }
+    psFree(template)
+    ;
+    template = psMetadataItemAlloc("Snickers", PS_DATA_S32, "No Comment", 1)
+               ;
+    if ( psMetadataItemCompare(compare, template) ) {
+        printf("\ncompare3 == item b/c of type\n");
+        //        return 5;
+    }
+
+    psFree(template)
+    ;
+    template = psMetadataItemAlloc("Snickers", PS_DATA_F32, "No Comment", 1.00001)
+               ;
+    if ( psMetadataItemCompare(compare, template) ) {
+        printf("\ncompare4 == item b/c of type\n");
+        //        return 5;
+    }
+
+
+    //itemCopy == item
+    itemCopy = psMetadataItemCopy(item);
+    if ( !psMetadataItemCompare(itemCopy, item) ) {
+        return 7;
+    }
+
+    psFree(compare);
+    psFree(template)
+    ;
+    psFree(itemCopy);
+    psFree(item);
+
+    return 0;
+}
+
