added tests for Vector_searchSelfOrg()
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Thu, 17 Mar 2005 14:49:01 +0000 (14:49 +0000)
committerEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Thu, 17 Mar 2005 14:49:01 +0000 (14:49 +0000)
git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1894 94cd875c-1c1d-0410-91d2-eb244daf1a30

util-vserver/ensc_vector/testsuite/test1.c

index 0faae3c..1768363 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "ensc_vector/vector.h"
 #include <assert.h>
+#include <stdbool.h>
 
 int    wrapper_exit_code = 2;
 
@@ -57,6 +58,21 @@ static int const *   S(int val)
   return Vector_search_const(&v, &val, cmp);
 }
 
+static int const *     S_F(int val)
+{
+  return Vector_searchSelfOrg(&v, &val, cmp, vecMOVE_FRONT);
+}
+
+static int const *     S_S(int val)
+{
+  return Vector_searchSelfOrg(&v, &val, cmp, vecSHIFT_ONCE);
+}
+
+static bool            CMP(int const *lhs, int val)
+{
+  return (lhs!=0 && val==*lhs) || (lhs==0 && val==-1);
+}
+
 int main()
 {
   Vector_init(&v, sizeof(int));
@@ -120,8 +136,46 @@ int main()
   Vector_unique(&v, cmp);
   assert(Vector_count(&v)==8);
   assert((E(0)==0 && E(1)==1 && E(2)==2 && E(3)==3 &&
-         E(4)==4 && E(5)==5 && E(6)==6 && E(7)==7)); 
+         E(4)==4 && E(5)==5 && E(6)==6 && E(7)==7));
+
+  assert(CMP(S_F(0),0));
+  assert((E(0)==0 && E(1)==1 && E(2)==2 && E(3)==3 && E(4)==4 && E(5)==5 && E(6)==6 && E(7)==7));
+
+  assert(CMP(S_F(1),1));
+  assert((E(0)==1 && E(1)==0 && E(2)==2 && E(3)==3 && E(4)==4 && E(5)==5 && E(6)==6 && E(7)==7));
 
+  assert(CMP(S_F(7),7));
+  assert((E(0)==7 && E(1)==1 && E(2)==0 && E(3)==2 && E(4)==3 && E(5)==4 && E(6)==5 && E(7)==6));
+
+  assert(CMP(S_F(3),3));
+  assert((E(0)==3 && E(1)==7 && E(2)==1 && E(3)==0 && E(4)==2 && E(5)==4 && E(6)==5 && E(7)==6));
+
+  assert(CMP(S_F(3),3));
+  assert((E(0)==3 && E(1)==7 && E(2)==1 && E(3)==0 && E(4)==2 && E(5)==4 && E(6)==5 && E(7)==6));
+
+  assert(CMP(S_F(42), -1));
+  assert((E(0)==3 && E(1)==7 && E(2)==1 && E(3)==0 && E(4)==2 && E(5)==4 && E(6)==5 && E(7)==6));
+
+
+  assert(CMP(S_S(6), 6));
+  assert((E(0)==3 && E(1)==7 && E(2)==1 && E(3)==0 && E(4)==2 && E(5)==4 && E(6)==6 && E(7)==5));
+
+  assert(CMP(S_S(6), 6));
+  assert((E(0)==3 && E(1)==7 && E(2)==1 && E(3)==0 && E(4)==2 && E(5)==6 && E(6)==4 && E(7)==5));
+
+  assert(CMP(S_S(6), 6));
+  assert((E(0)==3 && E(1)==7 && E(2)==1 && E(3)==0 && E(4)==6 && E(5)==2 && E(6)==4 && E(7)==5));
+
+  assert(CMP(S_S(7), 7));
+  assert((E(0)==7 && E(1)==3 && E(2)==1 && E(3)==0 && E(4)==6 && E(5)==2 && E(6)==4 && E(7)==5));
+
+  assert(CMP(S_S(7), 7));
+  assert((E(0)==7 && E(1)==3 && E(2)==1 && E(3)==0 && E(4)==6 && E(5)==2 && E(6)==4 && E(7)==5));
+
+  assert(CMP(S_S(42), -1));
+  assert((E(0)==7 && E(1)==3 && E(2)==1 && E(3)==0 && E(4)==6 && E(5)==2 && E(6)==4 && E(7)==5));
+
+  
   Vector_free(&v);
 
   return 0;