MCPcopy Create free account
hub / github.com/crossoverJie/gscript / TestOperator

Function TestOperator

operator_overloading_test.go:5–91  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

3import "testing"
4
5func TestOperator(t *testing.T) {
6 script := `
7class Person{
8 int age;
9 Person(int a){
10 age = a;
11 }
12}
13Person operator + (Person p1, Person p2){
14 Person pp = Person(p1.age+p2.age);
15 return pp;
16}
17Person operator - (Person p1, Person p2){
18 Person pp = Person(p1.age-p2.age);
19 return pp;
20}
21Person operator * (Person p1, Person p2){
22 Person pp = Person(p1.age * p2.age);
23 return pp;
24}
25Person operator / (Person p1, Person p2){
26 Person pp = Person(p1.age / p2.age);
27 return pp;
28}
29bool operator == (Person p1, Person p2){
30 return p1.age==p2.age;
31}
32bool operator != (Person p1, Person p2){
33 return p1.age!=p2.age;
34}
35bool operator > (Person p1, Person p2){
36 return p1.age>p2.age;
37}
38bool operator >= (Person p1, Person p2){
39 return p1.age>=p2.age;
40}
41bool operator < (Person p1, Person p2){
42 return p1.age<p2.age;
43}
44bool operator <= (Person p1, Person p2){
45 return p1.age<=p2.age;
46}
47Person p1 = Person(10);
48Person p2 = Person(20);
49//Person p3 = operator(p1,p2);
50Person p3 = p1+p2;
51println("p3.age="+p3.age);
52assertEqual(p3.age, 30);
53
54Person p4 = p1-p2;
55println("p4.age="+p4.age);
56println(100-10);
57
58Person p5 = p1*p2;
59println("p5.age="+p5.age);
60assertEqual(p5.age, 200);
61
62Person p6 = p2/p1;

Callers

nothing calls this directly

Calls 2

NewCompilerFunction · 0.85
CompilerMethod · 0.80

Tested by

no test coverage detected