class-test.cpp 2.0 KB

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