]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.trend/example/org/simantics/trend/TestTimeFormat.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.trend / example / org / simantics / trend / TestTimeFormat.java
1 /*******************************************************************************
2  * Copyright (c) 2007, 2011 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.trend;
13
14 import java.text.ParseException;
15 import java.util.regex.Matcher;
16
17 import org.simantics.utils.format.TimeFormat;
18
19 public class TestTimeFormat {
20
21         static void pn(double x, int s) {
22                 TimeFormat tf = new TimeFormat(x, s);
23                 System.out.println("decimals="+s+", v="+x+", time="+tf.format(x));
24                 
25         }
26         
27         static void pr(String s) throws ParseException {
28                 TimeFormat tf = new TimeFormat(1000, 3);                                
29                 System.out.print("\""+s+"\"");
30                 Matcher m = TimeFormat.PATTERN.matcher(s);
31                 if (m.matches()) {
32                         System.out.print(", groups="+m.groupCount()+", group={");
33                         for (int i=0; i<=m.groupCount(); i++) {
34                                 System.out.print("\""+m.group(i)+"\"");
35                                 if (i<m.groupCount()) System.out.print(", ");
36                         }
37                         System.out.print("}");
38                         
39                         Double x = (Double) tf.parseObject( s );
40                         System.out.print(", seconds="+x+", formatted=\""+tf.format(x)+"\"");                    
41                 } else {
42                         System.out.print(", no match");
43                 }
44                 System.out.println();
45         }
46         
47         public static void main(String[] args) throws ParseException {
48                 TimeFormat tf = new TimeFormat(1000, 3);                                
49                 Double d = (Double) tf.parseObject("-09:14.612");
50                 System.out.println(d);
51                 
52                 pr("0");
53                 pr("0.1");
54                 pr("0.123");
55                 pr("01");
56                 pr("12");
57                 pr("123");
58                 pr("1:23");
59                 pr("1:23.456");
60                 pr("12:345.567");
61                 pr("123:45.678");
62                 pr("12:34:5.678");
63                 pr("12:34:56.789");
64                 pr("0d 12:34:56.789");
65                 pr("1d 23:45:67.890");
66                 pr("0d 12:34:56");
67                 pr("1d 23:45:67");
68                 pr("100d 23:45:67.890");
69                 pr("001d 23:45:67.890");
70                 pr("0d");
71                 pr("1d");
72                 pr("0y");
73                 pr("1y");
74                 pr("100y 100d 23:45:67.890");
75                 pr("001y 001d 23:45:67.890");
76                 pr("-1y 2d 03:45:67.890");
77                 
78                 pn(123456.7890, -6);
79                 pn(123456.7890, -5);
80                 pn(123456.7890, -4);
81                 pn(123456.7890, -3);
82                 pn(123456.7890, -2);
83                 pn(123456.7890, -1);
84                 pn(123456.7890, 0);
85                 pn(123456.7890, 1);
86                 pn(123456.7890, 2);
87                 pn(123456.7890123, 3);
88                 pn(123456.7890123, 4);
89                 pn(123456.7890123, 5);          
90
91                 pn(.1234567890, -6);
92                 pn(.1234567890, -5);
93                 pn(.1234567890, -4);
94                 pn(.1234567890, -3);
95                 pn(.1234567890, -2);
96                 pn(.1234567890, -1);
97                 pn(.1234567890, 0);
98                 pn(.1234567890, 1);
99                 pn(.1234567890, 2);
100                 pn(.1234567890123, 3);
101                 pn(.1234567890123, 4);
102                 pn(.1234567890123, 5);          
103         
104                 pn(-123456.7890, -6);
105                 pn(-123456.7890, -5);
106                 pn(-123456.7890, -4);
107                 pn(-123456.7890, -3);
108                 pn(-123456.7890, -2);
109                 pn(-123456.7890, -1);
110                 pn(-123456.7890, 0);
111                 pn(-123456.7890, 1);
112                 pn(-123456.7890, 2);
113                 pn(-123456.7890123, 3);
114                 pn(-123456.7890123, 4);
115                 pn(-123456.7890123, 5);         
116
117                 pn(12.9876543210, -6);
118                 pn(12.9876543210, -5);
119                 pn(12.9876543210, -4);
120                 pn(12.9876543210, -3);
121                 pn(12.9876543210, -2);
122                 pn(12.9876543210, -1);
123                 pn(12.9876543210, 0);
124                 pn(12.9876543210, 1);
125                 pn(12.9876543210, 2);
126                 pn(12.9876543210, 3);
127                 pn(12.9876543210, 4);
128                 pn(12.9876543210, 5);           
129
130                 pn(-12.9876543210, -6);
131                 pn(-12.9876543210, -5);
132                 pn(-12.9876543210, -4);
133                 pn(-12.9876543210, -3);
134                 pn(-12.9876543210, -2);
135                 pn(-12.9876543210, -1);
136                 pn(-12.9876543210, 0);
137                 pn(-12.9876543210, 1);
138                 pn(-12.9876543210, 2);
139                 pn(-12.9876543210, 3);
140                 pn(-12.9876543210, 4);
141                 pn(-12.9876543210, 5);          
142
143                 pn(-.1234567890, -6);
144                 pn(-.1234567890, -5);
145                 pn(-.1234567890, -4);
146                 pn(-.1234567890, -3);
147                 pn(-.1234567890, -2);
148                 pn(-.1234567890, -1);
149                 pn(-.1234567890, 0);
150                 pn(-.1234567890, 1);
151                 pn(-.1234567890, 2);
152                 pn(-.1234567890123, 3);
153                 pn(-.1234567890123, 4);
154                 pn(-.1234567890123, 5);
155
156                 pn(1.4999999999, 1);
157                 pn(1.5, 1);
158                 pn(1.5000000001, 1);
159                 pn(1.4999999999, 0);
160                 pn(1.5, 0);
161                 pn(1.5000000001, 0);
162
163                 pn(34.999999999999, 3);
164                 pn(-34.999999999999, 3);
165
166                 for (int i = 0; i < 10; ++i)
167                         pn(i, 3);
168                 pn(0.5, 3);
169         }
170
171 }