polserver/testsuite/escript/method/setmember.src
turleypol 4f0e6ac548
Modulus operations with doubles (#769)
* implemented modulus operator % and %= for doubles
int%dbl=dbl
dbl%int=dbl
dbl%dbl=dbl
...

* added missing test for ins_set_member_id_consume_divideequal

* more tests
docs
2025-02-23 16:06:52 +01:00

72 lines
1.2 KiB
Text

// used member name to test ins_set_member_id_consume
var d := dictionary{};
var s := struct{ resist_fire_mod };
var i := 4;
d.resist_fire_mod := 0;
s.resist_fire_mod := 0;
d.resist_fire_mod += i;
s.resist_fire_mod += i;
i -= 2;
print( d );
print( s );
print( i );
s.resist_fire_mod -= 1;
d.resist_fire_mod -= 1;
print( d );
print( s );
s.resist_fire_mod *= i;
d.resist_fire_mod *= i;
print( d );
print( s );
s.resist_fire_mod %= 4;
d.resist_fire_mod %= 4;
print( d );
print( s );
s.resist_fire_mod /= 2;
d.resist_fire_mod /= 2;
print( d );
print( s );
// same test with diff member name
d := dictionary{};
s := struct{ blubb };
i := 4;
d.blubb := 0;
s.blubb := 0;
d.blubb += i;
s.blubb += i;
i -= 2;
print( d );
print( s );
print( i );
s.blubb -= 1;
d.blubb -= 1;
print( d );
print( s );
s.blubb *= i;
d.blubb *= i;
print( d );
print( s );
s.blubb %= 4;
d.blubb %= 4;
print( d );
print( s );
s.blubb /= 2;
d.blubb /= 2;
print( d );
print( s );
// should not work
d := dictionary{};
s := struct{ blubb };
d.blubb += 1;
s.blubb += 1;
print( s );
print( d );
d := dictionary{};
s := struct{ resist_fire_mod };
d.resist_fire_mod += 1;
s.resist_fire_mod += 1;
print( s );
print( d );