blueloveTH 1 rok temu
rodzic
commit
3ebc19bf7f
2 zmienionych plików z 28 dodań i 7 usunięć
  1. 5 5
      src/ceval.cpp
  2. 23 2
      tests/01_int.py

+ 5 - 5
src/ceval.cpp

@@ -119,11 +119,11 @@ __NEXT_STEP:;
     TARGET(LOAD_TRUE)       PUSH(True); DISPATCH();
     TARGET(LOAD_FALSE)      PUSH(False); DISPATCH();
     /*****************************************/
-    TARGET(LOAD_INT_NEG_5) PUSH(PK_SMALL_INT(-5)); DISPATCH();
-    TARGET(LOAD_INT_NEG_4) PUSH(PK_SMALL_INT(-4)); DISPATCH();
-    TARGET(LOAD_INT_NEG_3) PUSH(PK_SMALL_INT(-3)); DISPATCH();
-    TARGET(LOAD_INT_NEG_2) PUSH(PK_SMALL_INT(-2)); DISPATCH();
-    TARGET(LOAD_INT_NEG_1) PUSH(PK_SMALL_INT(-1)); DISPATCH();
+    TARGET(LOAD_INT_NEG_5) PUSH((PyObject*)-18); DISPATCH();
+    TARGET(LOAD_INT_NEG_4) PUSH((PyObject*)-14); DISPATCH();
+    TARGET(LOAD_INT_NEG_3) PUSH((PyObject*)-10); DISPATCH();
+    TARGET(LOAD_INT_NEG_2) PUSH((PyObject*)-6); DISPATCH();
+    TARGET(LOAD_INT_NEG_1) PUSH((PyObject*)-2); DISPATCH();
     TARGET(LOAD_INT_0)      PUSH(PK_SMALL_INT(0)); DISPATCH();
     TARGET(LOAD_INT_1)      PUSH(PK_SMALL_INT(1)); DISPATCH();
     TARGET(LOAD_INT_2)      PUSH(PK_SMALL_INT(2)); DISPATCH();

+ 23 - 2
tests/01_int.py

@@ -132,5 +132,26 @@ try:
 except SyntaxError:
     pass
 
-for i in range(-5, 16+1):
-    assert i+1 == i*2//2+1
+assert int("-5") == -5
+assert int("-4") == -4
+assert int("-3") == -3
+assert int("-2") == -2
+assert int("-1") == -1
+assert int("0") == 0
+assert int("1") == 1
+assert int("2") == 2
+assert int("3") == 3
+assert int("4") == 4
+assert int("5") == 5
+assert int("6") == 6
+assert int("7") == 7
+assert int("8") == 8
+assert int("9") == 9
+assert int("10") == 10
+assert int("11") == 11
+assert int("12") == 12
+assert int("13") == 13
+assert int("14") == 14
+assert int("15") == 15
+assert int("16") == 16
+