update NOTICE and LICENSE
[nit.git] / tests / test_paire.nit
1 # This file is part of NIT ( http://www.nitlanguage.org ).
2 #
3 # Copyright 2004-2008 Jean Privat <jean@pryen.org>
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 # http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16
17 class Pair[F, S]
18 fun first: F
19 do
20 return _first
21 end
22 fun second: S
23 do
24 return _second
25 end
26 fun set(f: F, s: S)
27 do
28 _first = f
29 _second = s
30 end
31 redef fun to_s: String
32 do
33 return "{first}:{_second}"
34 end
35 private
36 var _first: F
37 var _second: S
38
39 init(f: F, s: S)
40 do
41 set(f,s)
42 end
43 end
44
45 class Pair[E: Comparable, E: Comparable]
46
47 fun >(p: Pair[Comparable, Comparable]): Bool
48 do
49 return _first > p.first or
50 first == p.first and second > p._second
51 end
52 end
53
54 class Pair[E: Int, E: Int]
55
56 fun sum: Int
57 do
58 return first + _second
59 end
60 end
61
62
63 var p1 = new Pair[Int, Int](5, 4)
64 var p2 = new Pair[Int, Int](1, 44)
65 var p3 = new Pair[Int, Int](1, 4)
66 print(p1)
67 print(p2)
68 print(p3)
69 print(p1 > p2)
70 print(p2 > p3)
71 print(p3 > p1)
72 print(p3.sum)