Index: /trunk/psLib/test/types/tap_psMetadataItemCompare.c
===================================================================
--- /trunk/psLib/test/types/tap_psMetadataItemCompare.c	(revision 8234)
+++ /trunk/psLib/test/types/tap_psMetadataItemCompare.c	(revision 8235)
@@ -9,5 +9,5 @@
     psMetadataItem *item = psMetadataItemAlloc("Snickers", PS_DATA_BOOL, "No Comment", true)
                            ;
-    plan_tests(7);
+    plan_tests(15);
 
     diag("psMetadataItemCompare() tests");
@@ -35,4 +35,11 @@
             "return false for input with different names." )
         ;
+    }
+
+    //Return true for an exact match (copied psMetadataItem)
+    itemCopy = psMetadataItemCopy(item);
+    {
+        ok( psMetadataItemCompare(itemCopy, item),
+            "return true for comparison of identical psMetadataItem's." );
     }
 
@@ -64,4 +71,83 @@
     }
 
+    //Return true for comparing U32 with S16 of same value
+    psFree(template)
+    ;
+    template = psMetadataItemAlloc("Snickers", PS_DATA_S16, "No Comment", 1)
+               ;
+    psFree(compare);
+    compare = psMetadataItemAlloc("Snickers", PS_DATA_U32, "No Comment", 1);
+    {
+        ok( psMetadataItemCompare(compare, template),
+            "return true for comparison of S16 to U32." )
+        ;
+    }
+
+    //Return true for comparing U8 with U16 of same value
+    psFree(template)
+    ;
+    template = psMetadataItemAlloc("Snickers", PS_DATA_U8, "No Comment", 1)
+               ;
+    psFree(compare);
+    compare = psMetadataItemAlloc("Snickers", PS_DATA_U16, "No Comment", 1);
+    {
+        ok( psMetadataItemCompare(compare, template),
+            "return true for comparison of U8 to U16." )
+        ;
+    }
+
+    //Return true for comparing U8 with S8 of same value
+    psFree(compare);
+    compare = psMetadataItemAlloc("Snickers", PS_DATA_S8, "No Comment", 1);
+    {
+        ok( psMetadataItemCompare(compare, template),
+            "return true for comparison of U8 to S8." )
+        ;
+    }
+
+    //Return false for comparing U8 with S64 of same value
+    psFree(compare);
+    compare = psMetadataItemAlloc("Snickers", PS_DATA_S64, "No Comment", 1);
+    {
+        ok( psMetadataItemCompare(compare, template),
+            "return true for comparison of U8 to S64*.  *not yet implemented" )
+        ;
+    }
+
+    //Return false for comparing string of different value
+    psFree(compare);
+    compare = psMetadataItemAlloc("Snickers", PS_DATA_STRING, "No Comment", "Not Going Anywhere?");
+    psFree(template)
+    ;
+    template = psMetadataItemAlloc("Snickers", PS_DATA_STRING, "No Comment", "For a While?")
+               ;
+    {
+        ok( !psMetadataItemCompare(compare, template),
+            "return false for comparison of different psString's." )
+        ;
+    }
+
+    //Return false for comparing string of same value
+    psFree(template)
+    ;
+    template = psMetadataItemAlloc("Snickers", PS_DATA_STRING, "No Comment", "Not Going Anywhere?")
+               ;
+    {
+        ok( psMetadataItemCompare(compare, template),
+            "return true for comparison of identical psString's." )
+        ;
+    }
+
+    //Return false for comparing string with bool
+    psFree(template)
+    ;
+    template = psMetadataItemAlloc("Snickers", PS_DATA_BOOL, "No Comment", false)
+               ;
+    {
+        ok( !psMetadataItemCompare(compare, template),
+            "return false for comparison of psString with bool." )
+        ;
+    }
+
     //Check for Memory Leaks before exit
     {
