Index: trunk/psLib/test/types/tap_psArray_all.c
===================================================================
--- trunk/psLib/test/types/tap_psArray_all.c	(revision 8595)
+++ trunk/psLib/test/types/tap_psArray_all.c	(revision 8597)
@@ -21,5 +21,5 @@
 int main(void)
 {
-    plan_tests(15);
+    plan_tests(25);
 
     diag("Tests for psArray Functions");
@@ -168,8 +168,79 @@
     diag("\n  >>>Test 3:  psArraySet & psArrayGet Fxns");
     psArray *a = NULL;
-
-    //Check for Memory leaks
-    {
-        psFree(a);
+    psArray *b = NULL;
+    psS32 *s1 = (psS32*)psAlloc(sizeof(psS32));
+    *s1 = 2;
+    psS32 *s2 = (psS32*)psAlloc(sizeof(psS32));
+    *s2 = 1;
+    psS32 *s3 = (psS32*)psAlloc(sizeof(psS32));
+    *s3 = 3;
+
+    //Return false for trying to set a NULL psArray
+    {
+        ok( !psArraySet(a, 0, (psPtr)s1),
+            "psArraySet:      return false for NULL input psArray.");
+    }
+    //Return false for trying to set an invalid position
+    a = psArrayAlloc(1);
+    {
+        ok( !psArraySet(a, 2, (psPtr)s1),
+            "psArraySet:      return false for invalid input position.");
+    }
+    //Return false for trying to set nalloc position
+    psArraySet(a, 0, (psPtr)s1);
+    {
+        ok( !psArraySet(a, a->nalloc, (psPtr)s2),
+            "psArraySet:      return false for out-of-range position.");
+    }
+    //Return false for an invalid position (-2 = out-of-range neg. index)
+    {
+        ok( !psArraySet(a, -2, (psPtr)s2),
+            "psArraySet:      return false for out-of-range negative position.");
+    }
+    //Return true for set to a->n position (< nalloc)
+    a = psArrayRealloc(a, 10);
+    {
+        ok( psArraySet(a, a->n, (psPtr)s2)  && a->n == 2,
+            "psArraySet:      return true for valid input position.");
+    }
+    //Return true for a negative index input
+    {
+        ok( psArraySet(a, -2, (psPtr)s3) && a->n == 2 &&
+            *((psS32*)(a->data[0])) == 3,
+            "psArraySet:      return true for valid negative input position.");
+    }
+
+    //Return NULL for NULL array input
+    psS32 *s4 = NULL;
+    {
+        s4 = (psS32*)psArrayGet(b, 0);
+        ok( s4 == NULL,
+            "psArrayGet:      return NULL for NULL input psArray.");
+    }
+    //Return NULL for an out-of-range index
+    {
+        s4 = (psS32*)psArrayGet(a, a->n);
+        ok( s4 == NULL,
+            "psArrayGet:      return NULL for out-of-range position.");
+    }
+    //Return NULL for an out-of-range negative index
+    {
+        s4 = (psS32*)psArrayGet(a, -1-a->n);
+        ok( s4 == NULL,
+            "psArrayGet:      return NULL for out-of-range negative position.");
+    }
+    //Return valid case
+    {
+        s4 = (psS32*)psArrayGet(a, 1);
+        ok( *s4 == 1,
+            "psArrayGet:      return correct value for valid position.");
+    }
+
+    //Check for Memory leaks
+    {
+        psFree(a);
+        psFree(s1);
+        psFree(s2);
+        psFree(s3);
         checkMem();
     }
