1 /*******************************************************************************
\r
2 * Copyright (c) 2007, 2011 Association for Decentralized Information Management in
\r
4 * All rights reserved. This program and the accompanying materials
\r
5 * are made available under the terms of the Eclipse Public License v1.0
\r
6 * which accompanies this distribution, and is available at
\r
7 * http://www.eclipse.org/legal/epl-v10.html
\r
10 * VTT Technical Research Centre of Finland - initial API and implementation
\r
11 *******************************************************************************/
\r
12 package org.simantics.trend;
\r
14 import java.text.ParseException;
\r
15 import java.util.regex.Matcher;
\r
17 import org.simantics.utils.format.TimeFormat;
\r
19 public class TestTimeFormat {
\r
21 static void pn(double x, int s) {
\r
22 TimeFormat tf = new TimeFormat(x, s);
\r
23 System.out.println("decimals="+s+", v="+x+", time="+tf.format(x));
\r
27 static void pr(String s) throws ParseException {
\r
28 TimeFormat tf = new TimeFormat(1000, 3);
\r
29 System.out.print("\""+s+"\"");
\r
30 Matcher m = TimeFormat.PATTERN.matcher(s);
\r
32 System.out.print(", groups="+m.groupCount()+", group={");
\r
33 for (int i=0; i<=m.groupCount(); i++) {
\r
34 System.out.print("\""+m.group(i)+"\"");
\r
35 if (i<m.groupCount()) System.out.print(", ");
\r
37 System.out.print("}");
\r
39 Double x = (Double) tf.parseObject( s );
\r
40 System.out.print(", seconds="+x+", formatted=\""+tf.format(x)+"\"");
\r
42 System.out.print(", no match");
\r
44 System.out.println();
\r
47 public static void main(String[] args) throws ParseException {
\r
48 TimeFormat tf = new TimeFormat(1000, 3);
\r
49 Double d = (Double) tf.parseObject("-09:14.612");
\r
50 System.out.println(d);
\r
64 pr("0d 12:34:56.789");
\r
65 pr("1d 23:45:67.890");
\r
68 pr("100d 23:45:67.890");
\r
69 pr("001d 23:45:67.890");
\r
74 pr("100y 100d 23:45:67.890");
\r
75 pr("001y 001d 23:45:67.890");
\r
76 pr("-1y 2d 03:45:67.890");
\r
78 pn(123456.7890, -6);
\r
79 pn(123456.7890, -5);
\r
80 pn(123456.7890, -4);
\r
81 pn(123456.7890, -3);
\r
82 pn(123456.7890, -2);
\r
83 pn(123456.7890, -1);
\r
87 pn(123456.7890123, 3);
\r
88 pn(123456.7890123, 4);
\r
89 pn(123456.7890123, 5);
\r
91 pn(.1234567890, -6);
\r
92 pn(.1234567890, -5);
\r
93 pn(.1234567890, -4);
\r
94 pn(.1234567890, -3);
\r
95 pn(.1234567890, -2);
\r
96 pn(.1234567890, -1);
\r
100 pn(.1234567890123, 3);
\r
101 pn(.1234567890123, 4);
\r
102 pn(.1234567890123, 5);
\r
104 pn(-123456.7890, -6);
\r
105 pn(-123456.7890, -5);
\r
106 pn(-123456.7890, -4);
\r
107 pn(-123456.7890, -3);
\r
108 pn(-123456.7890, -2);
\r
109 pn(-123456.7890, -1);
\r
110 pn(-123456.7890, 0);
\r
111 pn(-123456.7890, 1);
\r
112 pn(-123456.7890, 2);
\r
113 pn(-123456.7890123, 3);
\r
114 pn(-123456.7890123, 4);
\r
115 pn(-123456.7890123, 5);
\r
117 pn(12.9876543210, -6);
\r
118 pn(12.9876543210, -5);
\r
119 pn(12.9876543210, -4);
\r
120 pn(12.9876543210, -3);
\r
121 pn(12.9876543210, -2);
\r
122 pn(12.9876543210, -1);
\r
123 pn(12.9876543210, 0);
\r
124 pn(12.9876543210, 1);
\r
125 pn(12.9876543210, 2);
\r
126 pn(12.9876543210, 3);
\r
127 pn(12.9876543210, 4);
\r
128 pn(12.9876543210, 5);
\r
130 pn(-12.9876543210, -6);
\r
131 pn(-12.9876543210, -5);
\r
132 pn(-12.9876543210, -4);
\r
133 pn(-12.9876543210, -3);
\r
134 pn(-12.9876543210, -2);
\r
135 pn(-12.9876543210, -1);
\r
136 pn(-12.9876543210, 0);
\r
137 pn(-12.9876543210, 1);
\r
138 pn(-12.9876543210, 2);
\r
139 pn(-12.9876543210, 3);
\r
140 pn(-12.9876543210, 4);
\r
141 pn(-12.9876543210, 5);
\r
143 pn(-.1234567890, -6);
\r
144 pn(-.1234567890, -5);
\r
145 pn(-.1234567890, -4);
\r
146 pn(-.1234567890, -3);
\r
147 pn(-.1234567890, -2);
\r
148 pn(-.1234567890, -1);
\r
149 pn(-.1234567890, 0);
\r
150 pn(-.1234567890, 1);
\r
151 pn(-.1234567890, 2);
\r
152 pn(-.1234567890123, 3);
\r
153 pn(-.1234567890123, 4);
\r
154 pn(-.1234567890123, 5);
\r
156 pn(1.4999999999, 1);
\r
158 pn(1.5000000001, 1);
\r
159 pn(1.4999999999, 0);
\r
161 pn(1.5000000001, 0);
\r
163 pn(34.999999999999, 3);
\r
164 pn(-34.999999999999, 3);
\r
166 for (int i = 0; i < 10; ++i)
\r