1 /*******************************************************************************
2 * Copyright (c) 2007, 2011 Association for Decentralized Information Management in
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
10 * VTT Technical Research Centre of Finland - initial API and implementation
11 *******************************************************************************/
12 package org.simantics.trend;
14 import java.text.ParseException;
15 import java.util.regex.Matcher;
17 import org.simantics.utils.format.TimeFormat;
19 public class TestTimeFormat {
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));
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);
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(", ");
37 System.out.print("}");
39 Double x = (Double) tf.parseObject( s );
40 System.out.print(", seconds="+x+", formatted=\""+tf.format(x)+"\"");
42 System.out.print(", no match");
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);
64 pr("0d 12:34:56.789");
65 pr("1d 23:45:67.890");
68 pr("100d 23:45:67.890");
69 pr("001d 23:45:67.890");
74 pr("100y 100d 23:45:67.890");
75 pr("001y 001d 23:45:67.890");
76 pr("-1y 2d 03:45:67.890");
87 pn(123456.7890123, 3);
88 pn(123456.7890123, 4);
89 pn(123456.7890123, 5);
100 pn(.1234567890123, 3);
101 pn(.1234567890123, 4);
102 pn(.1234567890123, 5);
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);
113 pn(-123456.7890123, 3);
114 pn(-123456.7890123, 4);
115 pn(-123456.7890123, 5);
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);
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);
143 pn(-.1234567890, -6);
144 pn(-.1234567890, -5);
145 pn(-.1234567890, -4);
146 pn(-.1234567890, -3);
147 pn(-.1234567890, -2);
148 pn(-.1234567890, -1);
152 pn(-.1234567890123, 3);
153 pn(-.1234567890123, 4);
154 pn(-.1234567890123, 5);
163 pn(34.999999999999, 3);
164 pn(-34.999999999999, 3);
166 for (int i = 0; i < 10; ++i)