-/*******************************************************************************\r
- * Copyright (c) 2007, 2011 Association for Decentralized Information Management in\r
- * Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- * VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.trend;\r
-\r
-import java.text.ParseException;\r
-import java.util.regex.Matcher;\r
-\r
-import org.simantics.utils.format.TimeFormat;\r
-\r
-public class TestTimeFormat {\r
-\r
- static void pn(double x, int s) {\r
- TimeFormat tf = new TimeFormat(x, s);\r
- System.out.println("decimals="+s+", v="+x+", time="+tf.format(x));\r
- \r
- }\r
- \r
- static void pr(String s) throws ParseException {\r
- TimeFormat tf = new TimeFormat(1000, 3); \r
- System.out.print("\""+s+"\"");\r
- Matcher m = TimeFormat.PATTERN.matcher(s);\r
- if (m.matches()) {\r
- System.out.print(", groups="+m.groupCount()+", group={");\r
- for (int i=0; i<=m.groupCount(); i++) {\r
- System.out.print("\""+m.group(i)+"\"");\r
- if (i<m.groupCount()) System.out.print(", ");\r
- }\r
- System.out.print("}");\r
- \r
- Double x = (Double) tf.parseObject( s );\r
- System.out.print(", seconds="+x+", formatted=\""+tf.format(x)+"\""); \r
- } else {\r
- System.out.print(", no match");\r
- }\r
- System.out.println();\r
- }\r
- \r
- public static void main(String[] args) throws ParseException {\r
- TimeFormat tf = new TimeFormat(1000, 3); \r
- Double d = (Double) tf.parseObject("-09:14.612");\r
- System.out.println(d);\r
- \r
- pr("0");\r
- pr("0.1");\r
- pr("0.123");\r
- pr("01");\r
- pr("12");\r
- pr("123");\r
- pr("1:23");\r
- pr("1:23.456");\r
- pr("12:345.567");\r
- pr("123:45.678");\r
- pr("12:34:5.678");\r
- pr("12:34:56.789");\r
- pr("0d 12:34:56.789");\r
- pr("1d 23:45:67.890");\r
- pr("0d 12:34:56");\r
- pr("1d 23:45:67");\r
- pr("100d 23:45:67.890");\r
- pr("001d 23:45:67.890");\r
- pr("0d");\r
- pr("1d");\r
- pr("0y");\r
- pr("1y");\r
- pr("100y 100d 23:45:67.890");\r
- pr("001y 001d 23:45:67.890");\r
- pr("-1y 2d 03:45:67.890");\r
- \r
- pn(123456.7890, -6);\r
- pn(123456.7890, -5);\r
- pn(123456.7890, -4);\r
- pn(123456.7890, -3);\r
- pn(123456.7890, -2);\r
- pn(123456.7890, -1);\r
- pn(123456.7890, 0);\r
- pn(123456.7890, 1);\r
- pn(123456.7890, 2);\r
- pn(123456.7890123, 3);\r
- pn(123456.7890123, 4);\r
- pn(123456.7890123, 5); \r
-\r
- pn(.1234567890, -6);\r
- pn(.1234567890, -5);\r
- pn(.1234567890, -4);\r
- pn(.1234567890, -3);\r
- pn(.1234567890, -2);\r
- pn(.1234567890, -1);\r
- pn(.1234567890, 0);\r
- pn(.1234567890, 1);\r
- pn(.1234567890, 2);\r
- pn(.1234567890123, 3);\r
- pn(.1234567890123, 4);\r
- pn(.1234567890123, 5); \r
- \r
- pn(-123456.7890, -6);\r
- pn(-123456.7890, -5);\r
- pn(-123456.7890, -4);\r
- pn(-123456.7890, -3);\r
- pn(-123456.7890, -2);\r
- pn(-123456.7890, -1);\r
- pn(-123456.7890, 0);\r
- pn(-123456.7890, 1);\r
- pn(-123456.7890, 2);\r
- pn(-123456.7890123, 3);\r
- pn(-123456.7890123, 4);\r
- pn(-123456.7890123, 5); \r
-\r
- pn(12.9876543210, -6);\r
- pn(12.9876543210, -5);\r
- pn(12.9876543210, -4);\r
- pn(12.9876543210, -3);\r
- pn(12.9876543210, -2);\r
- pn(12.9876543210, -1);\r
- pn(12.9876543210, 0);\r
- pn(12.9876543210, 1);\r
- pn(12.9876543210, 2);\r
- pn(12.9876543210, 3);\r
- pn(12.9876543210, 4);\r
- pn(12.9876543210, 5); \r
-\r
- pn(-12.9876543210, -6);\r
- pn(-12.9876543210, -5);\r
- pn(-12.9876543210, -4);\r
- pn(-12.9876543210, -3);\r
- pn(-12.9876543210, -2);\r
- pn(-12.9876543210, -1);\r
- pn(-12.9876543210, 0);\r
- pn(-12.9876543210, 1);\r
- pn(-12.9876543210, 2);\r
- pn(-12.9876543210, 3);\r
- pn(-12.9876543210, 4);\r
- pn(-12.9876543210, 5); \r
-\r
- pn(-.1234567890, -6);\r
- pn(-.1234567890, -5);\r
- pn(-.1234567890, -4);\r
- pn(-.1234567890, -3);\r
- pn(-.1234567890, -2);\r
- pn(-.1234567890, -1);\r
- pn(-.1234567890, 0);\r
- pn(-.1234567890, 1);\r
- pn(-.1234567890, 2);\r
- pn(-.1234567890123, 3);\r
- pn(-.1234567890123, 4);\r
- pn(-.1234567890123, 5);\r
-\r
- pn(1.4999999999, 1);\r
- pn(1.5, 1);\r
- pn(1.5000000001, 1);\r
- pn(1.4999999999, 0);\r
- pn(1.5, 0);\r
- pn(1.5000000001, 0);\r
-\r
- pn(34.999999999999, 3);\r
- pn(-34.999999999999, 3);\r
-\r
- for (int i = 0; i < 10; ++i)\r
- pn(i, 3);\r
- pn(0.5, 3);\r
- }\r
-\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2011 Association for Decentralized Information Management in
+ * Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.trend;
+
+import java.text.ParseException;
+import java.util.regex.Matcher;
+
+import org.simantics.utils.format.TimeFormat;
+
+public class TestTimeFormat {
+
+ static void pn(double x, int s) {
+ TimeFormat tf = new TimeFormat(x, s);
+ System.out.println("decimals="+s+", v="+x+", time="+tf.format(x));
+
+ }
+
+ static void pr(String s) throws ParseException {
+ TimeFormat tf = new TimeFormat(1000, 3);
+ System.out.print("\""+s+"\"");
+ Matcher m = TimeFormat.PATTERN.matcher(s);
+ if (m.matches()) {
+ System.out.print(", groups="+m.groupCount()+", group={");
+ for (int i=0; i<=m.groupCount(); i++) {
+ System.out.print("\""+m.group(i)+"\"");
+ if (i<m.groupCount()) System.out.print(", ");
+ }
+ System.out.print("}");
+
+ Double x = (Double) tf.parseObject( s );
+ System.out.print(", seconds="+x+", formatted=\""+tf.format(x)+"\"");
+ } else {
+ System.out.print(", no match");
+ }
+ System.out.println();
+ }
+
+ public static void main(String[] args) throws ParseException {
+ TimeFormat tf = new TimeFormat(1000, 3);
+ Double d = (Double) tf.parseObject("-09:14.612");
+ System.out.println(d);
+
+ pr("0");
+ pr("0.1");
+ pr("0.123");
+ pr("01");
+ pr("12");
+ pr("123");
+ pr("1:23");
+ pr("1:23.456");
+ pr("12:345.567");
+ pr("123:45.678");
+ pr("12:34:5.678");
+ pr("12:34:56.789");
+ pr("0d 12:34:56.789");
+ pr("1d 23:45:67.890");
+ pr("0d 12:34:56");
+ pr("1d 23:45:67");
+ pr("100d 23:45:67.890");
+ pr("001d 23:45:67.890");
+ pr("0d");
+ pr("1d");
+ pr("0y");
+ pr("1y");
+ pr("100y 100d 23:45:67.890");
+ pr("001y 001d 23:45:67.890");
+ pr("-1y 2d 03:45:67.890");
+
+ pn(123456.7890, -6);
+ pn(123456.7890, -5);
+ pn(123456.7890, -4);
+ pn(123456.7890, -3);
+ pn(123456.7890, -2);
+ pn(123456.7890, -1);
+ pn(123456.7890, 0);
+ pn(123456.7890, 1);
+ pn(123456.7890, 2);
+ pn(123456.7890123, 3);
+ pn(123456.7890123, 4);
+ pn(123456.7890123, 5);
+
+ pn(.1234567890, -6);
+ pn(.1234567890, -5);
+ pn(.1234567890, -4);
+ pn(.1234567890, -3);
+ pn(.1234567890, -2);
+ pn(.1234567890, -1);
+ pn(.1234567890, 0);
+ pn(.1234567890, 1);
+ pn(.1234567890, 2);
+ pn(.1234567890123, 3);
+ pn(.1234567890123, 4);
+ pn(.1234567890123, 5);
+
+ pn(-123456.7890, -6);
+ pn(-123456.7890, -5);
+ pn(-123456.7890, -4);
+ pn(-123456.7890, -3);
+ pn(-123456.7890, -2);
+ pn(-123456.7890, -1);
+ pn(-123456.7890, 0);
+ pn(-123456.7890, 1);
+ pn(-123456.7890, 2);
+ pn(-123456.7890123, 3);
+ pn(-123456.7890123, 4);
+ pn(-123456.7890123, 5);
+
+ pn(12.9876543210, -6);
+ pn(12.9876543210, -5);
+ pn(12.9876543210, -4);
+ pn(12.9876543210, -3);
+ pn(12.9876543210, -2);
+ pn(12.9876543210, -1);
+ pn(12.9876543210, 0);
+ pn(12.9876543210, 1);
+ pn(12.9876543210, 2);
+ pn(12.9876543210, 3);
+ pn(12.9876543210, 4);
+ pn(12.9876543210, 5);
+
+ pn(-12.9876543210, -6);
+ pn(-12.9876543210, -5);
+ pn(-12.9876543210, -4);
+ pn(-12.9876543210, -3);
+ pn(-12.9876543210, -2);
+ pn(-12.9876543210, -1);
+ pn(-12.9876543210, 0);
+ pn(-12.9876543210, 1);
+ pn(-12.9876543210, 2);
+ pn(-12.9876543210, 3);
+ pn(-12.9876543210, 4);
+ pn(-12.9876543210, 5);
+
+ pn(-.1234567890, -6);
+ pn(-.1234567890, -5);
+ pn(-.1234567890, -4);
+ pn(-.1234567890, -3);
+ pn(-.1234567890, -2);
+ pn(-.1234567890, -1);
+ pn(-.1234567890, 0);
+ pn(-.1234567890, 1);
+ pn(-.1234567890, 2);
+ pn(-.1234567890123, 3);
+ pn(-.1234567890123, 4);
+ pn(-.1234567890123, 5);
+
+ pn(1.4999999999, 1);
+ pn(1.5, 1);
+ pn(1.5000000001, 1);
+ pn(1.4999999999, 0);
+ pn(1.5, 0);
+ pn(1.5000000001, 0);
+
+ pn(34.999999999999, 3);
+ pn(-34.999999999999, 3);
+
+ for (int i = 0; i < 10; ++i)
+ pn(i, 3);
+ pn(0.5, 3);
+ }
+
+}