| 27 | |
| 28 | |
| 29 | def test_methods_and_attributes(): |
| 30 | instance1 = m.ExampleMandA() |
| 31 | instance2 = m.ExampleMandA(32) |
| 32 | |
| 33 | instance1.add1(instance2) |
| 34 | instance1.add2(instance2) |
| 35 | instance1.add3(instance2) |
| 36 | instance1.add4(instance2) |
| 37 | instance1.add5(instance2) |
| 38 | instance1.add6(32) |
| 39 | instance1.add7(32) |
| 40 | instance1.add8(32) |
| 41 | instance1.add9(32) |
| 42 | instance1.add10(32) |
| 43 | |
| 44 | assert str(instance1) == "ExampleMandA[value=320]" |
| 45 | assert str(instance2) == "ExampleMandA[value=32]" |
| 46 | assert str(instance1.self1()) == "ExampleMandA[value=320]" |
| 47 | assert str(instance1.self2()) == "ExampleMandA[value=320]" |
| 48 | assert str(instance1.self3()) == "ExampleMandA[value=320]" |
| 49 | assert str(instance1.self4()) == "ExampleMandA[value=320]" |
| 50 | assert str(instance1.self5()) == "ExampleMandA[value=320]" |
| 51 | |
| 52 | assert instance1.internal1() == 320 |
| 53 | assert instance1.internal2() == 320 |
| 54 | assert instance1.internal3() == 320 |
| 55 | assert instance1.internal4() == 320 |
| 56 | assert instance1.internal5() == 320 |
| 57 | |
| 58 | assert instance1.overloaded() == "()" |
| 59 | assert instance1.overloaded(0) == "(int)" |
| 60 | assert instance1.overloaded(1, 1.0) == "(int, float)" |
| 61 | assert instance1.overloaded(2.0, 2) == "(float, int)" |
| 62 | assert instance1.overloaded(3, 3) == "(int, int)" |
| 63 | assert instance1.overloaded(4.0, 4.0) == "(float, float)" |
| 64 | assert instance1.overloaded_const(-3) == "(int) const" |
| 65 | assert instance1.overloaded_const(5, 5.0) == "(int, float) const" |
| 66 | assert instance1.overloaded_const(6.0, 6) == "(float, int) const" |
| 67 | assert instance1.overloaded_const(7, 7) == "(int, int) const" |
| 68 | assert instance1.overloaded_const(8.0, 8.0) == "(float, float) const" |
| 69 | assert instance1.overloaded_float(1, 1) == "(float, float)" |
| 70 | assert instance1.overloaded_float(1, 1.0) == "(float, float)" |
| 71 | assert instance1.overloaded_float(1.0, 1) == "(float, float)" |
| 72 | assert instance1.overloaded_float(1.0, 1.0) == "(float, float)" |
| 73 | |
| 74 | assert instance1.value == 320 |
| 75 | instance1.value = 100 |
| 76 | assert str(instance1) == "ExampleMandA[value=100]" |
| 77 | |
| 78 | if env.GRAALPY: |
| 79 | pytest.skip("ConstructorStats is incompatible with GraalPy.") |
| 80 | |
| 81 | cstats = ConstructorStats.get(m.ExampleMandA) |
| 82 | assert cstats.alive() == 2 |
| 83 | del instance1, instance2 |
| 84 | assert cstats.alive() == 0 |
| 85 | assert cstats.values() == ["32"] |
| 86 | assert cstats.default_constructions == 1 |