rev 343 - in trunk: pr src

SVN User <[email protected]>
Newsgroups gmane.comp.lang.prothon.cvs
Message-ID <[email protected]>
Author: mark
Date: 2004-04-13 23:49:57 -0400 (Tue, 13 Apr 2004)
New Revision: 343

Added:
   trunk/pr/dict.pr
Modified:
   trunk/src/builtins-core.c
   trunk/src/builtins-dict.c
Log:
added dict.pr test file

Added: trunk/pr/dict.pr
===================================================================
--- trunk/pr/dict.pr	2004-04-14 03:13:18 UTC (rev 342)
+++ trunk/pr/dict.pr	2004-04-14 03:49:57 UTC (rev 343)
@@ -0,0 +1,40 @@
+#!/usr/bin/env prothon
+
+# dict.pr
+
+d = {1:2}
+if d.keys()   != [1]  : print 'error in keys'
+if d.values() != [2]  : print 'error in values'
+if d.get(1)   !=  2   : print 'error1 in get'
+if d.get(2)   != None : print 'error2 in get'
+if d.get(3,4) !=  4   : print 'error3 in get'
+if d.get(3,5) !=  5   : print 'error4 in get'
+if d.setdefault!(3,4) !=  4   : print 'error5 in setdefault'
+if d.get(3,5) !=  4   : print 'error6 in get'
+if 3 not in d: print 'error 7 in notin'
+
+d = {1:2, 3:4}
+e = d.copy()
+
+if d.items() != e.items():
+	print 'error1'
+	
+if Len(e.items()) != 2:
+    print 'error2'
+    
+d.clear!()
+
+d = {1:2}
+d.update!({3:4})
+if d.items() != e.items():
+	print d.items(), e.items(), 'error3'
+
+if not e.has_key?(1) or e.has_key?(2): print 'error4'
+
+print 'all tests passed'
+
+print '\nfollowing should be:  1 (1,2) 3 (3,4)\n'
+
+for i in e: print i, d.popitem!(),
+
+print '\n'
\ No newline at end of file

Modified: trunk/src/builtins-core.c
===================================================================
--- trunk/src/builtins-core.c	2004-04-14 03:13:18 UTC (rev 342)
+++ trunk/src/builtins-core.c	2004-04-14 03:49:57 UTC (rev 343)
@@ -105,7 +105,6 @@
 		return NULL;
 	}
 	if (self->data_type == DATA_TYPE_DATAPTR) {
-		size_t cdata_size;
 		obj_p cdata_len = call_func0(ist, self, SYM(__CDATALEN__));
 		if (!cdata_len) {
 			raise_exception(ist, OBJ(INTERNAL_EXC), "fatal error: __cdatalen__() call failed");
@@ -388,9 +387,20 @@
 	set_attr(ist, OBJ(OBJECT), sym(ist, "None"), None_OBJ);
 }
 
-DEF(None, __str__,  NULL) { return new_string_obj(ist, "None"); }
-DEF(None, __bool__QUES, NULL) { return OBJ(PR_FALSE); }
+DEF(None, __str__,  NULL) {				
+	return new_string_obj(ist, "None"); 
+}
 
+DEF(None, __bool__QUES, NULL) {			
+	return OBJ(PR_FALSE); 
+}
+
+DEF(None, __eq__QUES, FORM_RPARAM) {	
+	if (parms[1] == OBJ(NONE)) return OBJ(PR_TRUE); 
+	else                       return OBJ(PR_FALSE); 
+}
+
+
 // ***************************** EXCEPTION ************************************
 MODULE_START(Exception)
 {
@@ -692,6 +702,7 @@
 	MODULE_SUB_INIT(None);
 	MODULE_ADD_SYM(None, __str__);
 	MODULE_ADD_SYM(None, __bool__QUES);
+	MODULE_ADD_SYM(None, __eq__QUES);
 
 	MODULE_SUB_INIT(Exception);
 	MODULE_ADD_SYM(Exception, __init__);

Modified: trunk/src/builtins-dict.c
===================================================================
--- trunk/src/builtins-dict.c	2004-04-14 03:13:18 UTC (rev 342)
+++ trunk/src/builtins-dict.c	2004-04-14 03:49:57 UTC (rev 343)
@@ -319,16 +319,6 @@
 
 
 DEF(Dict, __objlist__, FORM_RPARAM) {
-	size_t i, size, len;
-	dict_p dict, dp;
-	dict = dict_d(self);
-	size = dictsize(dict);
-	len  = dictlen(dict);
-	for(i=0; i < size; i++)
-		if ((dp=dictptr(dict,i))->entry.hash > 0) {
-			list_append(ist, parms[1], dp->entry.key);
-			list_append(ist, parms[1], dp->entry.value);
-		}
 	return parms[1];
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.