class-test.cpp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include "test_common.h"
  2. TEST(class, class_par) {
  3. /* init */
  4. pikaMemInfo.heapUsedMax = 0;
  5. /* run */
  6. PikaObj* self = newRootObj("pikaMain", New_PikaMain);
  7. __platform_printf("BEGIN\r\n");
  8. obj_run(self, "pi = PikaMath.Math.pi\n");
  9. /* assert */
  10. double pi = obj_getFloat(self, "pi");
  11. EXPECT_DOUBLE_EQ(pi, 3.141592653589793115997963468544185161590576171875l);
  12. /* deinit */
  13. obj_deinit(self);
  14. EXPECT_EQ(pikaMemNow(), 0);
  15. }
  16. TEST(class, classpar1) {
  17. /* init */
  18. pikaMemInfo.heapUsedMax = 0;
  19. /* run */
  20. PikaObj* self = newRootObj("pikaMain", New_PikaMain);
  21. __platform_printf("BEGIN\r\n");
  22. pikaVM_runSingleFile(self, "../../examples/Class/classpar1.py");
  23. /* assert */
  24. EXPECT_STREQ(log_buff[4], "BEGIN\r\n");
  25. EXPECT_STREQ(log_buff[3], "1\r\n");
  26. EXPECT_STREQ(log_buff[2], "test\r\n");
  27. EXPECT_STREQ(log_buff[1], "2\r\n");
  28. EXPECT_STREQ(log_buff[0], "pewq\r\n");
  29. /* deinit */
  30. obj_deinit(self);
  31. EXPECT_EQ(pikaMemNow(), 0);
  32. }
  33. TEST(class, static_method) {
  34. /* init */
  35. pikaMemInfo.heapUsedMax = 0;
  36. /* run */
  37. PikaObj* self = newRootObj("pikaMain", New_PikaMain);
  38. __platform_printf("BEGIN\r\n");
  39. obj_run(self,
  40. "import PikaMath\n"
  41. "a = PikaMath.Operator.plusInt(10, 20)\n");
  42. /* collect */
  43. int a = obj_getInt(self, "a");
  44. /* assert */
  45. EXPECT_EQ(a, 30);
  46. /* deinit */
  47. obj_deinit(self);
  48. EXPECT_EQ(pikaMemNow(), 0);
  49. }
  50. TEST(class, dir_) {
  51. /* init */
  52. pikaMemInfo.heapUsedMax = 0;
  53. /* run */
  54. PikaObj* self = newRootObj("pikaMain", New_PikaMain);
  55. __platform_printf("BEGIN\r\n");
  56. obj_run(self,
  57. "class T:\n"
  58. " def a(self):\n"
  59. " return 1\n"
  60. "t = T()\n"
  61. "l = dir(t)\n"
  62. "print(l)\n");
  63. /* collect */
  64. /* assert */
  65. /* deinit */
  66. obj_deinit(self);
  67. EXPECT_EQ(pikaMemNow(), 0);
  68. }