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];
}