]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.databoard/testcases/org/simantics/databoard/tests/TestRange.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.databoard / testcases / org / simantics / databoard / tests / TestRange.java
1 /*******************************************************************************
2  *  Copyright (c) 2010 Association for Decentralized Information Management in
3  *  Industry THTH ry.
4  *  All rights reserved. This program and the accompanying materials
5  *  are made available under the terms of the Eclipse Public License v1.0
6  *  which accompanies this distribution, and is available at
7  *  http://www.eclipse.org/legal/epl-v10.html
8  *
9  *  Contributors:
10  *      VTT Technical Research Centre of Finland - initial API and implementation
11  *******************************************************************************/
12 package org.simantics.databoard.tests;
13
14 import junit.framework.TestCase;
15
16 import org.junit.Test;
17 import org.simantics.databoard.util.Limit;
18 import org.simantics.databoard.util.Range;
19 import org.simantics.databoard.util.RangeException;
20
21 public class TestRange extends TestCase {
22
23         @Test
24         public void testParse() {
25                 
26                 // Test Limits
27                 assertEquals ( Limit.exclusive(5.0), Limit.exclusive(5L ) );
28                 assertEquals ( Limit.inclusive(5.0), Limit.inclusive(5L ) );
29                 assertEquals ( Limit.exclusive(5L ), Limit.exclusive(5L ) );
30                 assertEquals ( Limit.inclusive(5L ), Limit.inclusive(5L ) );
31                 assertEquals ( Limit.exclusive(5.0), Limit.exclusive(5.0) );
32                 assertEquals ( Limit.inclusive(5.0), Limit.inclusive(5.0) );
33                 assertNotSame( Limit.inclusive(5.0), Limit.exclusive(5L ) );
34                 assertNotSame( Limit.exclusive(5.0), Limit.inclusive(5L ) );
35                 assertNotSame( Limit.inclusive(5.0), Limit.inclusive(6.0) );
36                 assertNotSame( Limit.inclusive(5L ), Limit.inclusive(6L ) );
37                 
38                 
39                 // assert lower < upper
40                 try {
41                         Range.create(100, 50, true, true);
42                         fail();
43                 } catch (IllegalArgumentException e) {}                                 
44                 
45                 // assert lower < upper
46                 try {
47                         Range.create(100., 50., true, true);
48                         fail();
49                 } catch (IllegalArgumentException e) {}         
50                 
51                 // assert lower < upper
52                 try {
53                         Range.create(100.f, 50.f, true, true);
54                         fail();
55                 } catch (IllegalArgumentException e) {}                 
56                 
57                 // toString
58                 assertEquals( "[0..100]", Range.create(0, 100, true, true).toString() );
59                 assertEquals( "[0..100)", Range.create(0, 100, true, false).toString() );
60                 assertEquals( "(0..100]", Range.create(0, 100, false, true).toString() );
61                 assertEquals( "[..]", new Range(Limit.nolimit(), Limit.nolimit()).toString() );
62                 assertEquals( "[0..)", Range.create(0, null, true, false).toString() );
63                 assertEquals( "(0..)", Range.create(0, null, false, false).toString() );
64                 assertEquals( "(..100)", Range.create(null, 100, false, false).toString() );
65                 assertEquals( "0", Range.create(0, 0, true, true).toString() );
66                 assertEquals( "()", Range.create(100, 100, false, false).toString() );
67                 assertEquals( "100", Range.create(100, 100, true, true).toString() );
68                 assertEquals( "-100", Range.create(-100, -100, true, true).toString() );
69
70                 // Parse
71                 try {
72                         assertEquals( Range.valueOf("[0..100]"), Range.create(0, 100, true, true) );
73                         assertEquals( Range.valueOf("[0..100)"), Range.create(0, 100, true, false) );
74                         assertEquals( Range.valueOf("(0..100]"), Range.create(0, 100, false, true) );
75                         assertEquals( Range.valueOf("[..]"), new Range(Limit.nolimit(), Limit.nolimit()) );
76                         assertEquals( Range.valueOf("[0..)"), Range.create(0, null, true, false) );
77                         assertEquals( Range.valueOf("(0..)"), Range.create(0, null, false, false) );
78                         assertEquals( Range.valueOf("(..100)"), Range.create(null, 100, false, false) );
79                         assertEquals( Range.valueOf("0"), Range.create(0, 0, true, true) );
80                         assertEquals( Range.valueOf("()"), Range.create(100, 100, false, false) );
81                         assertEquals( Range.valueOf("100"), Range.create(100, 100, true, true) );
82                         
83                         assertEquals( Range.valueOf("[0.0E0..100.0E0]"), Range.create(0, 100, true, true) );
84                         assertEquals( Range.valueOf("[0.0E0..100.0E0)"), Range.create(0, 100, true, false) );
85                         assertEquals( Range.valueOf("(0.0E0..100.0E0]"), Range.create(0, 100, false, true) );
86                         assertEquals( Range.valueOf("[..]"), new Range(Limit.nolimit(), Limit.nolimit()) );
87                         assertEquals( Range.valueOf("[0.0E0..)"), Range.create(0, null, true, false) );
88                         assertEquals( Range.valueOf("(0.0E0..)"), Range.create(0, null, false, false) );
89                         assertEquals( Range.valueOf("(..100.0E0)"), Range.create(null, 100, false, false) );
90                         assertEquals( Range.valueOf("()"), Range.create(100, 100, false, false) );
91                         assertEquals( Range.valueOf("100.0E0"), Range.create(100, 100, true, true) );
92                         
93                         assertEquals( Range.valueOf("[-100..0]"), Range.create(-100, 0, true, true) );
94                         assertEquals( Range.valueOf("[-100..0)"), Range.create(-100, 0, true, false) );
95                         assertEquals( Range.valueOf("(-100..0]"), Range.create(-100, 0, false, true) );
96                         assertEquals( Range.valueOf("[-100..0)"), Range.create(-100, 0, true, false) );
97                         assertEquals( Range.valueOf("(-100..)"), Range.create(-100, null, false, false) );
98                         assertEquals( Range.valueOf("(..-100)"), Range.create(null, -100, false, false) );
99                         assertEquals( Range.valueOf("()"), Range.create(-100, -100, false, false) );
100                         assertEquals( Range.valueOf("-100.0"), Range.create(-100, -100, true, true) );
101                         
102                         assertEquals( Range.valueOf("[-100.0E0..-0.0E0]"), Range.create(-100, 0, true, true) );
103                         assertEquals( Range.valueOf("[..-100)"), Range.create(null, -100, false, false) );
104                         
105                 } catch (RangeException e) {
106                         fail(e.getMessage());
107                 }
108                 
109                 
110                 // Parse-fail
111                 try {
112                         Range.valueOf("(0]");
113                         fail();
114                 } catch (RangeException e) {} 
115
116                 try {
117                         Range.valueOf("(0)");
118                         fail();
119                 } catch (RangeException e) {}
120                 
121                 try {
122                         Range.valueOf("[0");
123                         fail();
124                 } catch (RangeException e) {} 
125
126                 try {
127                         Range.valueOf("[0]");
128                         fail();
129                 } catch (RangeException e) {} 
130                 
131                 try {
132                         Range.valueOf("[]");
133                         fail();
134                 } catch (RangeException e) {} 
135                 
136                 try {
137                         Range.valueOf("");
138                         fail();
139                 } catch (RangeException e) {}
140                 
141                 try {
142                         Range.valueOf("{0..4]");
143                         fail();
144                 } catch (RangeException e) {} 
145                 
146                 try {
147                         Range.valueOf("[5..4]");
148                         fail();
149                 } catch (IllegalArgumentException e) {} catch (RangeException e) { fail(); }
150                 
151                 try {
152                         Range.valueOf("[0,4]");
153                         fail();
154                 } catch (RangeException e) {} 
155                 
156                 try {
157                         Range.valueOf("[0 .. 4]");
158                         fail();
159                 } catch (RangeException e) {} 
160                 
161                 try {
162                         Range.valueOf("[x..4]");
163                         fail();
164                 } catch (RangeException e) {} 
165                 
166                 // inRange()
167                 try {
168                         assertFalse( Range.valueOf("[0..100]").contains(-10) );
169                         assertTrue ( Range.valueOf("[0..100]").contains(0) );
170                         assertTrue ( Range.valueOf("[0..100]").contains(50) );
171                         assertTrue ( Range.valueOf("[0..100]").contains(100) );
172                         assertFalse( Range.valueOf("[0..100]").contains(150) );
173
174                         assertFalse( Range.valueOf("(0..100)").contains(-10) );
175                         assertFalse( Range.valueOf("(0..100)").contains(0) );
176                         assertTrue ( Range.valueOf("(0..100)").contains(50) );
177                         assertFalse( Range.valueOf("(0..100)").contains(100) );
178                         assertFalse( Range.valueOf("(0..100)").contains(150) );
179
180                         assertFalse( Range.valueOf("(0..)").contains(-10) );
181                         assertFalse( Range.valueOf("(0..)").contains(0) );
182                         assertTrue ( Range.valueOf("(0..)").contains(50) );
183                         assertTrue ( Range.valueOf("(0..)").contains(100) );
184                         assertTrue ( Range.valueOf("(0..)").contains(150) );
185
186                         assertFalse( Range.valueOf("[0..)").contains(-10) );
187                         assertTrue ( Range.valueOf("[0..)").contains(0) );
188                         assertTrue ( Range.valueOf("[0..)").contains(50) );
189                         assertTrue ( Range.valueOf("[0..)").contains(100) );
190                         assertTrue ( Range.valueOf("[0..)").contains(150) );
191                         
192                         assertTrue ( Range.valueOf("(..100)").contains(-10) );
193                         assertTrue ( Range.valueOf("(..100)").contains(0) );
194                         assertTrue ( Range.valueOf("(..100)").contains(50) );
195                         assertFalse( Range.valueOf("(..100)").contains(100) );
196                         assertFalse( Range.valueOf("(..100)").contains(150) );                  
197
198                         assertTrue ( Range.valueOf("(..100]").contains(-10) );
199                         assertTrue ( Range.valueOf("(..100]").contains(0) );
200                         assertTrue ( Range.valueOf("(..100]").contains(50) );
201                         assertTrue ( Range.valueOf("(..100]").contains(100) );
202                         assertFalse( Range.valueOf("(..100]").contains(150) );                  
203                         
204                         assertTrue ( Range.valueOf("[..]").contains(-10) );
205                         assertTrue ( Range.valueOf("[..]").contains(0) );
206                         assertTrue ( Range.valueOf("[..]").contains(50) );
207                         assertTrue ( Range.valueOf("[..]").contains(100) );
208                         assertTrue ( Range.valueOf("[..]").contains(150) );
209
210                         assertFalse( Range.valueOf("()").contains(-10) );
211                         assertFalse( Range.valueOf("()").contains(0) );
212                         assertFalse( Range.valueOf("()").contains(50) );
213                         
214                         assertFalse( Range.valueOf("100").contains(50) );
215                         assertTrue ( Range.valueOf("100").contains(100) );
216                         assertFalse( Range.valueOf("100").contains(150) );
217                         
218                         assertFalse( Range.valueOf("100").contains(50) );
219                         assertTrue ( Range.valueOf("100").contains(100) );
220                         assertFalse( Range.valueOf("100").contains(150) );
221
222                         
223                 } catch (RangeException e) {
224                         fail(e.getMessage());
225                 }
226                 
227         }
228
229 }
230