Enlightenment CVS committal

Author  : mej
Project : eterm
Module  : libast

Dir     : eterm/libast/test


Modified Files:
        test.c 


Log Message:
Wed Mar 10 17:15:14 2004                        Michael Jennings (mej)

Working map implementation using the linked_list class.

Added some new string functions.

===================================================================
RCS file: /cvsroot/enlightenment/eterm/libast/test/test.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -3 -r1.39 -r1.40
--- test.c      5 Feb 2004 21:29:38 -0000       1.39
+++ test.c      10 Mar 2004 22:07:31 -0000      1.40
@@ -21,7 +21,7 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
-static const char cvs_ident[] = "$Id: test.c,v 1.39 2004/02/05 21:29:38 mej Exp $";
+static const char cvs_ident[] = "$Id: test.c,v 1.40 2004/03/10 22:07:31 mej Exp $";
 
 #if defined(HAVE_CONFIG_H) && (HAVE_CONFIG_H != 0)
 # include <config.h>
@@ -44,6 +44,7 @@
 int test_url(void);
 int test_list(void);
 int test_vector(void);
+int test_map(void);
 int test_socket(void);
 int test_regexp(void);
 
@@ -1444,6 +1445,283 @@
 }
 
 int
+test_map(void)
+{
+    unsigned short i;
+    spif_map_t testmap;
+    spif_obj_t ret;
+    spif_str_t key, value;
+    spif_url_t homepage;
+    spif_list_t testlist;
+    spif_iterator_t it;
+    size_t j;
+
+    for (i = 0; i < 1; i++) {
+        if (i == 0) {
+            TEST_NOTICE("*** Testing map interface, linked_list class:");
+            testmap = SPIF_MAP_NEW(linked_list);
+#if 0
+        } else if (i == 1) {
+            TEST_NOTICE("*** Testing map interface, dlinked_list class:");
+            testmap = SPIF_MAP_NEW(dlinked_list);
+        } else if (i == 2) {
+            TEST_NOTICE("*** Testing map interface, array class:");
+            testmap = SPIF_MAP_NEW(array);
+        } else if (i == 3) {
+#endif
+        }
+
+        TEST_BEGIN("SPIF_MAP_SET() macro");
+        key = spif_str_new_from_ptr("name");
+        value = spif_str_new_from_ptr("Bob");
+        TEST_FAIL_IF(SPIF_MAP_SET(testmap, key, value));
+        spif_str_done(key);
+        spif_str_done(value);
+        spif_str_init_from_ptr(key, "rank");
+        spif_str_init_from_ptr(value, "Dweeb");
+        TEST_FAIL_IF(SPIF_MAP_SET(testmap, key, value));
+        spif_str_done(key);
+        spif_str_done(value);
+        spif_str_init_from_ptr(key, "serial number");
+        spif_str_init_from_ptr(value, "123456");
+        TEST_FAIL_IF(SPIF_MAP_SET(testmap, key, value));
+        spif_str_done(key);
+        spif_str_done(value);
+        spif_str_init_from_ptr(key, "homepage");
+        homepage = spif_url_new_from_ptr("http://www.dweeb.com/";);
+        TEST_FAIL_IF(SPIF_MAP_SET(testmap, key, homepage));
+        spif_str_done(key);
+        spif_url_del(homepage);
+        spif_str_init_from_ptr(key, "e-mail");
+        spif_str_init_from_ptr(value, "[EMAIL PROTECTED]");
+        TEST_FAIL_IF(SPIF_MAP_SET(testmap, key, value));
+        spif_str_done(key);
+        spif_str_done(value);
+        spif_str_init_from_ptr(key, "loser");
+        spif_str_init_from_ptr(value, "YES");
+        TEST_FAIL_IF(SPIF_MAP_SET(testmap, key, value));
+        spif_str_del(key);
+        spif_str_del(value);
+        TEST_PASS();
+
+        TEST_BEGIN("SPIF_MAP_COUNT() macro");
+        TEST_FAIL_IF(SPIF_MAP_COUNT(testmap) != 6);
+        TEST_PASS();
+
+        TEST_BEGIN("SPIF_MAP_GET() macro");
+        key = spif_str_new_from_ptr("serial number");
+        value = SPIF_CAST(str) SPIF_MAP_GET(testmap, key);
+        TEST_FAIL_IF(SPIF_STR_ISNULL(value));
+        TEST_FAIL_IF(!SPIF_OBJ_IS_STR(value));
+        TEST_FAIL_IF(!SPIF_CMP_IS_EQUAL(spif_str_cmp_with_ptr(value, "123456")));
+        spif_str_done(key);
+        spif_str_init_from_ptr(key, "loser");
+        value = SPIF_CAST(str) SPIF_MAP_GET(testmap, key);
+        TEST_FAIL_IF(SPIF_STR_ISNULL(value));
+        TEST_FAIL_IF(!SPIF_OBJ_IS_STR(value));
+        TEST_FAIL_IF(!SPIF_CMP_IS_EQUAL(spif_str_cmp_with_ptr(value, "YES")));
+        spif_str_done(key);
+        spif_str_init_from_ptr(key, "name");
+        value = SPIF_CAST(str) SPIF_MAP_GET(testmap, key);
+        TEST_FAIL_IF(SPIF_STR_ISNULL(value));
+        TEST_FAIL_IF(!SPIF_OBJ_IS_STR(value));
+        TEST_FAIL_IF(!SPIF_CMP_IS_EQUAL(spif_str_cmp_with_ptr(value, "Bob")));
+        spif_str_done(key);
+        spif_str_init_from_ptr(key, "e-mail");
+        value = SPIF_CAST(str) SPIF_MAP_GET(testmap, key);
+        TEST_FAIL_IF(SPIF_STR_ISNULL(value));
+        TEST_FAIL_IF(!SPIF_OBJ_IS_STR(value));
+        TEST_FAIL_IF(!SPIF_CMP_IS_EQUAL(spif_str_cmp_with_ptr(value, "[EMAIL 
PROTECTED]")));
+        spif_str_done(key);
+        spif_str_init_from_ptr(key, "rank");
+        value = SPIF_CAST(str) SPIF_MAP_GET(testmap, key);
+        TEST_FAIL_IF(SPIF_STR_ISNULL(value));
+        TEST_FAIL_IF(!SPIF_OBJ_IS_STR(value));
+        TEST_FAIL_IF(!SPIF_CMP_IS_EQUAL(spif_str_cmp_with_ptr(value, "Dweeb")));
+        spif_str_done(key);
+        spif_str_init_from_ptr(key, "homepage");
+        homepage = SPIF_CAST(url) SPIF_MAP_GET(testmap, key);
+        TEST_FAIL_IF(SPIF_URL_ISNULL(homepage));
+        TEST_FAIL_IF(!SPIF_OBJ_IS_URL(homepage));
+        TEST_FAIL_IF(!SPIF_CMP_IS_EQUAL(spif_str_cmp_with_ptr(SPIF_STR(homepage), 
"http://www.dweeb.com/";)));
+        spif_str_del(key);
+        TEST_PASS();
+
+        TEST_BEGIN("SPIF_MAP_GET_KEYS() macro");
+        testlist = SPIF_LIST_NEW(array);
+        SPIF_MAP_GET_KEYS(testmap, testlist);
+        TEST_FAIL_IF(SPIF_LIST_COUNT(testlist) != SPIF_MAP_COUNT(testmap));
+        key = spif_str_new_from_ptr("serial number");
+        TEST_FAIL_IF(!SPIF_LIST_CONTAINS(testlist, key));
+        spif_str_done(key);
+        spif_str_init_from_ptr(key, "loser");
+        TEST_FAIL_IF(!SPIF_LIST_CONTAINS(testlist, key));
+        spif_str_done(key);
+        spif_str_init_from_ptr(key, "name");
+        TEST_FAIL_IF(!SPIF_LIST_CONTAINS(testlist, key));
+        spif_str_done(key);
+        spif_str_init_from_ptr(key, "e-mail");
+        TEST_FAIL_IF(!SPIF_LIST_CONTAINS(testlist, key));
+        spif_str_done(key);
+        spif_str_init_from_ptr(key, "rank");
+        TEST_FAIL_IF(!SPIF_LIST_CONTAINS(testlist, key));
+        spif_str_done(key);
+        spif_str_init_from_ptr(key, "homepage");
+        TEST_FAIL_IF(!SPIF_LIST_CONTAINS(testlist, key));
+        spif_str_del(key);
+        value = spif_str_new_from_ptr("123456");
+        TEST_FAIL_IF(SPIF_LIST_CONTAINS(testlist, value));
+        spif_str_done(value);
+        spif_str_init_from_ptr(value, "YES");
+        TEST_FAIL_IF(SPIF_LIST_CONTAINS(testlist, value));
+        spif_str_done(value);
+        spif_str_init_from_ptr(value, "Bob");
+        TEST_FAIL_IF(SPIF_LIST_CONTAINS(testlist, value));
+        spif_str_done(value);
+        spif_str_init_from_ptr(value, "[EMAIL PROTECTED]");
+        TEST_FAIL_IF(SPIF_LIST_CONTAINS(testlist, value));
+        spif_str_done(value);
+        spif_str_init_from_ptr(value, "Dweeb");
+        TEST_FAIL_IF(SPIF_LIST_CONTAINS(testlist, value));
+        spif_str_del(value);
+        homepage = spif_url_new_from_ptr("http://www.dweeb.com/";);
+        TEST_FAIL_IF(SPIF_LIST_CONTAINS(testlist, homepage));
+        spif_url_del(homepage);
+        SPIF_LIST_DEL(testlist);
+        TEST_PASS();
+
+        TEST_BEGIN("SPIF_MAP_GET_PAIRS() macro");
+        testlist = SPIF_LIST_NEW(array);
+        SPIF_MAP_GET_PAIRS(testmap, testlist);
+        TEST_FAIL_IF(SPIF_LIST_COUNT(testlist) != SPIF_MAP_COUNT(testmap));
+        SPIF_LIST_DEL(testlist);
+        TEST_PASS();
+
+        TEST_BEGIN("SPIF_MAP_GET_VALUES() macro");
+        testlist = SPIF_LIST_NEW(array);
+        SPIF_MAP_GET_VALUES(testmap, testlist);
+        TEST_FAIL_IF(SPIF_LIST_COUNT(testlist) != SPIF_MAP_COUNT(testmap));
+        key = spif_str_new_from_ptr("serial number");
+        TEST_FAIL_IF(SPIF_LIST_CONTAINS(testlist, key));
+        spif_str_done(key);
+        spif_str_init_from_ptr(key, "loser");
+        TEST_FAIL_IF(SPIF_LIST_CONTAINS(testlist, key));
+        spif_str_done(key);
+        spif_str_init_from_ptr(key, "name");
+        TEST_FAIL_IF(SPIF_LIST_CONTAINS(testlist, key));
+        spif_str_done(key);
+        spif_str_init_from_ptr(key, "e-mail");
+        TEST_FAIL_IF(SPIF_LIST_CONTAINS(testlist, key));
+        spif_str_done(key);
+        spif_str_init_from_ptr(key, "rank");
+        TEST_FAIL_IF(SPIF_LIST_CONTAINS(testlist, key));
+        spif_str_done(key);
+        spif_str_init_from_ptr(key, "homepage");
+        TEST_FAIL_IF(SPIF_LIST_CONTAINS(testlist, key));
+        spif_str_del(key);
+        value = spif_str_new_from_ptr("123456");
+        TEST_FAIL_IF(!SPIF_LIST_CONTAINS(testlist, value));
+        spif_str_done(value);
+        spif_str_init_from_ptr(value, "YES");
+        TEST_FAIL_IF(!SPIF_LIST_CONTAINS(testlist, value));
+        spif_str_done(value);
+        spif_str_init_from_ptr(value, "Bob");
+        TEST_FAIL_IF(!SPIF_LIST_CONTAINS(testlist, value));
+        spif_str_done(value);
+        spif_str_init_from_ptr(value, "[EMAIL PROTECTED]");
+        TEST_FAIL_IF(!SPIF_LIST_CONTAINS(testlist, value));
+        spif_str_done(value);
+        spif_str_init_from_ptr(value, "Dweeb");
+        TEST_FAIL_IF(!SPIF_LIST_CONTAINS(testlist, value));
+        spif_str_del(value);
+        homepage = spif_url_new_from_ptr("http://www.dweeb.com/";);
+        TEST_FAIL_IF(!SPIF_LIST_CONTAINS(testlist, homepage));
+        spif_url_del(homepage);
+        SPIF_LIST_DEL(testlist);
+        TEST_PASS();
+
+        TEST_BEGIN("SPIF_MAP_ITERATOR(), SPIF_MAP_HAS_KEY(), and SPIF_MAP_HAS_VALUE() 
macros");
+        for (j = 0, it = SPIF_MAP_ITERATOR(testmap); SPIF_ITERATOR_HAS_NEXT(it); j++) 
{
+            spif_objpair_t tmp;
+
+            tmp = SPIF_CAST(objpair) SPIF_ITERATOR_NEXT(it);
+            TEST_FAIL_IF(SPIF_OBJPAIR_ISNULL(tmp));
+            TEST_FAIL_IF(!SPIF_MAP_HAS_KEY(testmap, tmp->key));
+            TEST_FAIL_IF(!SPIF_MAP_HAS_VALUE(testmap, tmp->value));
+        }
+        TEST_FAIL_IF(j != 6);
+        TEST_FAIL_IF(SPIF_ITERATOR_HAS_NEXT(it));
+        TEST_FAIL_IF(!SPIF_OBJ_ISNULL(SPIF_ITERATOR_NEXT(it)));
+        SPIF_ITERATOR_DEL(it);
+        TEST_PASS();
+
+        TEST_BEGIN("SPIF_MAP_REMOVE() macro");
+        key = spif_str_new_from_ptr("name");
+        value = spif_str_new_from_ptr("Bob");
+        ret = SPIF_MAP_REMOVE(testmap, key);
+        TEST_FAIL_IF(SPIF_OBJ_ISNULL(ret));
+        TEST_FAIL_IF(!SPIF_OBJ_COMP(ret, value));
+        TEST_FAIL_IF(SPIF_MAP_HAS_KEY(testmap, key));
+        SPIF_OBJ_DEL(ret);
+        spif_str_done(key);
+        spif_str_done(value);
+        spif_str_init_from_ptr(key, "rank");
+        spif_str_init_from_ptr(value, "Dweeb");
+        ret = SPIF_MAP_REMOVE(testmap, key);
+        TEST_FAIL_IF(SPIF_OBJ_ISNULL(ret));
+        TEST_FAIL_IF(!SPIF_OBJ_COMP(ret, value));
+        TEST_FAIL_IF(SPIF_MAP_HAS_KEY(testmap, key));
+        SPIF_OBJ_DEL(ret);
+        spif_str_done(key);
+        spif_str_done(value);
+        spif_str_init_from_ptr(key, "serial number");
+        spif_str_init_from_ptr(value, "123456");
+        ret = SPIF_MAP_REMOVE(testmap, key);
+        TEST_FAIL_IF(SPIF_OBJ_ISNULL(ret));
+        TEST_FAIL_IF(!SPIF_OBJ_COMP(ret, value));
+        TEST_FAIL_IF(SPIF_MAP_HAS_KEY(testmap, key));
+        SPIF_OBJ_DEL(ret);
+        spif_str_done(key);
+        spif_str_done(value);
+        spif_str_init_from_ptr(key, "homepage");
+        homepage = spif_url_new_from_ptr("http://www.dweeb.com/";);
+        ret = SPIF_MAP_REMOVE(testmap, key);
+        TEST_FAIL_IF(SPIF_OBJ_ISNULL(ret));
+        TEST_FAIL_IF(!SPIF_OBJ_COMP(ret, homepage));
+        TEST_FAIL_IF(SPIF_MAP_HAS_KEY(testmap, key));
+        SPIF_OBJ_DEL(ret);
+        spif_str_done(key);
+        spif_url_del(homepage);
+        spif_str_init_from_ptr(key, "e-mail");
+        spif_str_init_from_ptr(value, "[EMAIL PROTECTED]");
+        ret = SPIF_MAP_REMOVE(testmap, key);
+        TEST_FAIL_IF(SPIF_OBJ_ISNULL(ret));
+        TEST_FAIL_IF(!SPIF_OBJ_COMP(ret, value));
+        TEST_FAIL_IF(SPIF_MAP_HAS_KEY(testmap, key));
+        SPIF_OBJ_DEL(ret);
+        spif_str_done(key);
+        spif_str_done(value);
+        spif_str_init_from_ptr(key, "loser");
+        spif_str_init_from_ptr(value, "YES");
+        ret = SPIF_MAP_REMOVE(testmap, key);
+        TEST_FAIL_IF(SPIF_OBJ_ISNULL(ret));
+        TEST_FAIL_IF(!SPIF_OBJ_COMP(ret, value));
+        TEST_FAIL_IF(SPIF_MAP_HAS_KEY(testmap, key));
+        SPIF_OBJ_DEL(ret);
+        spif_str_del(key);
+        spif_str_del(value);
+        TEST_FAIL_IF(SPIF_MAP_COUNT(testmap) != 0);
+        TEST_PASS();
+
+        /*SPIF_SHOW(testmap, stdout);*/
+        SPIF_MAP_DEL(testmap);
+    }
+
+    TEST_PASSED("map interface");
+    return 0;
+}
+
+int
 test_socket(void)
 {
     spif_socket_t src1, dest1, src2, dest2, listen1, listen2;
@@ -1913,6 +2191,9 @@
     if ((ret = test_vector()) != 0) {
         return ret;
     }
+    if ((ret = test_map()) != 0) {
+        return ret;
+    }
     if ((ret = test_socket()) != 0) {
         return ret;
     }




-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to