blob: fd146b8fc81e92baf16db1da029a997189609687 [file] [log] [blame]
/*
* Copyright 2017 HugeGraph Authors
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with this
* work for additional information regarding copyright ownership. The ASF
* licenses this file to You under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
package org.apache.hugegraph.unit.util;
import org.junit.Test;
import org.apache.hugegraph.util.Bytes;
import org.apache.hugegraph.util.UnitUtil;
import org.apache.hugegraph.testutil.Assert;
public class UnitUtilTest {
@Test
public void testBytesToMB() {
double value = UnitUtil.bytesToMB(0L);
Assert.assertEquals(0d, value, 0d);
// KB
value = UnitUtil.bytesToMB(Bytes.KB * 1);
Assert.assertEquals(0d, value, 0d);
value = UnitUtil.bytesToMB(Bytes.KB * 10);
Assert.assertEquals(0.01d, value, 0d);
value = UnitUtil.bytesToMB(Bytes.KB * 100);
Assert.assertEquals(0.1d, value, 0d);
value = UnitUtil.bytesToMB(Bytes.KB * (long) (134 * 1.024));
Assert.assertEquals(0.13d, value, 0d);
value = UnitUtil.bytesToMB(Bytes.KB * (long) (135 * 1.024));
Assert.assertEquals(0.13d, value, 0d);
value = UnitUtil.bytesToMB(Bytes.KB * (long) (136 * 1.024));
Assert.assertEquals(0.14d, value, 0d);
value = UnitUtil.bytesToMB(Bytes.KB * (long) (144 * 1.024));
Assert.assertEquals(0.14d, value, 0d);
value = UnitUtil.bytesToMB(Bytes.KB * (long) (754 * 1.024));
Assert.assertEquals(0.75d, value, 0d);
value = UnitUtil.bytesToMB(Bytes.KB * (long) (755 * 1.024));
Assert.assertEquals(0.75d, value, 0d);
value = UnitUtil.bytesToMB(Bytes.KB * (long) (756 * 1.024));
Assert.assertEquals(0.76d, value, 0d);
// MB
value = UnitUtil.bytesToMB(Bytes.MB * 1);
Assert.assertEquals(1d, value, 0d);
value = UnitUtil.bytesToMB(Bytes.MB * 13);
Assert.assertEquals(13d, value, 0d);
value = UnitUtil.bytesToMB(Bytes.MB * 1357);
Assert.assertEquals(1357d, value, 0d);
value = UnitUtil.bytesToMB(Bytes.MB * 1357924680);
Assert.assertEquals(1357924680d, value, 0d);
value = UnitUtil.bytesToMB(Bytes.MB * 1357924680246L);
Assert.assertEquals(1357924680246d, value, 0d);
}
@Test
public void testBytesToGB() {
double value = UnitUtil.bytesToGB(0L);
Assert.assertEquals(0d, value, 0d);
// MB
value = UnitUtil.bytesToGB(Bytes.MB * 1);
Assert.assertEquals(0d, value, 0d);
value = UnitUtil.bytesToGB(Bytes.MB * 10);
Assert.assertEquals(0.01d, value, 0d);
value = UnitUtil.bytesToGB(Bytes.MB * 100);
Assert.assertEquals(0.10d, value, 0d);
value = UnitUtil.bytesToGB(Bytes.MB * (long) (134 * 1.024));
Assert.assertEquals(0.13d, value, 0d);
value = UnitUtil.bytesToGB(Bytes.MB * (long) (135 * 1.024));
Assert.assertEquals(0.13d, value, 0d);
value = UnitUtil.bytesToGB(Bytes.MB * (long) (136 * 1.024));
Assert.assertEquals(0.14d, value, 0d);
value = UnitUtil.bytesToGB(Bytes.MB * (long) (144 * 1.024));
Assert.assertEquals(0.14d, value, 0d);
value = UnitUtil.bytesToGB(Bytes.MB * (long) (754 * 1.024));
Assert.assertEquals(0.75d, value, 0d);
value = UnitUtil.bytesToGB(Bytes.MB * (long) (755 * 1.024));
Assert.assertEquals(0.75d, value, 0d);
value = UnitUtil.bytesToGB(Bytes.MB * (long) (756 * 1.024));
Assert.assertEquals(0.76d, value, 0d);
// GB
value = UnitUtil.bytesToGB(Bytes.GB * 1);
Assert.assertEquals(1d, value, 0d);
value = UnitUtil.bytesToGB(Bytes.GB * 13);
Assert.assertEquals(13d, value, 0d);
value = UnitUtil.bytesToGB(Bytes.GB * 1357);
Assert.assertEquals(1357d, value, 0d);
value = UnitUtil.bytesToGB(Bytes.GB * 1357924680);
Assert.assertEquals(1357924680d, value, 0d);
value = UnitUtil.bytesToGB(Bytes.GB * 7357924680L);
Assert.assertEquals(7357924680d, value, 0d);
// Bytes overflow long value
value = UnitUtil.bytesToGB(Bytes.GB * 9357924680L);
Assert.assertEquals(-7.821944504E9, value, 0d);
}
@Test
public void testBytesToReadableString() {
String value = UnitUtil.bytesToReadableString(0L);
Assert.assertEquals("0 B", value);
// B
value = UnitUtil.bytesToReadableString(1);
Assert.assertEquals("1 B", value);
value = UnitUtil.bytesToReadableString(3);
Assert.assertEquals("3 B", value);
value = UnitUtil.bytesToReadableString(10);
Assert.assertEquals("10 B", value);
value = UnitUtil.bytesToReadableString(100);
Assert.assertEquals("100 B", value);
value = UnitUtil.bytesToReadableString(1000);
Assert.assertEquals("1000 B", value);
value = UnitUtil.bytesToReadableString(1023);
Assert.assertEquals("1023 B", value);
// KB
value = UnitUtil.bytesToReadableString(1024);
Assert.assertEquals("1 KB", value);
value = UnitUtil.bytesToReadableString(Bytes.KB + 1);
Assert.assertEquals("1.0 KB", value);
value = UnitUtil.bytesToReadableString(Bytes.KB + 10);
Assert.assertEquals("1.01 KB", value);
value = UnitUtil.bytesToReadableString(Bytes.KB + 20);
Assert.assertEquals("1.02 KB", value);
value = UnitUtil.bytesToReadableString(Bytes.KB + 100);
Assert.assertEquals("1.1 KB", value);
value = UnitUtil.bytesToReadableString(Bytes.KB + 123);
Assert.assertEquals("1.12 KB", value);
value = UnitUtil.bytesToReadableString(Bytes.KB + 129);
Assert.assertEquals("1.13 KB", value);
value = UnitUtil.bytesToReadableString(Bytes.KB * 8 +
(long) (755 * 1.024));
Assert.assertEquals("8.75 KB", value);
value = UnitUtil.bytesToReadableString(Bytes.KB * 168 +
(long) (756 * 1.024));
Assert.assertEquals("168.76 KB", value);
// MB
value = UnitUtil.bytesToReadableString(Bytes.KB * 1024);
Assert.assertEquals("1 MB", value);
value = UnitUtil.bytesToReadableString(Bytes.MB + 1 * Bytes.KB);
Assert.assertEquals("1.0 MB", value);
value = UnitUtil.bytesToReadableString(Bytes.MB + 10 * Bytes.KB);
Assert.assertEquals("1.01 MB", value);
value = UnitUtil.bytesToReadableString(Bytes.MB + 20 * Bytes.KB);
Assert.assertEquals("1.02 MB", value);
value = UnitUtil.bytesToReadableString(Bytes.MB + 100 * Bytes.KB);
Assert.assertEquals("1.1 MB", value);
value = UnitUtil.bytesToReadableString(Bytes.MB + 123 * Bytes.KB);
Assert.assertEquals("1.12 MB", value);
value = UnitUtil.bytesToReadableString(Bytes.MB + 129 * Bytes.KB);
Assert.assertEquals("1.13 MB", value);
value = UnitUtil.bytesToReadableString(Bytes.MB * 8 +
(long) (755 * 1.024) * Bytes.KB);
Assert.assertEquals("8.75 MB", value);
value = UnitUtil.bytesToReadableString(Bytes.MB * 168 +
(long) (756 * 1.024) * Bytes.KB);
Assert.assertEquals("168.76 MB", value);
// GB
value = UnitUtil.bytesToReadableString(Bytes.MB * 1024);
Assert.assertEquals("1 GB", value);
value = UnitUtil.bytesToReadableString(Bytes.GB + 1 * Bytes.MB);
Assert.assertEquals("1.0 GB", value);
value = UnitUtil.bytesToReadableString(Bytes.GB + 10 * Bytes.MB);
Assert.assertEquals("1.01 GB", value);
value = UnitUtil.bytesToReadableString(Bytes.GB + 20 * Bytes.MB);
Assert.assertEquals("1.02 GB", value);
value = UnitUtil.bytesToReadableString(Bytes.GB + 100 * Bytes.MB);
Assert.assertEquals("1.1 GB", value);
value = UnitUtil.bytesToReadableString(Bytes.GB + 123 * Bytes.MB);
Assert.assertEquals("1.12 GB", value);
value = UnitUtil.bytesToReadableString(Bytes.GB + 129 * Bytes.MB);
Assert.assertEquals("1.13 GB", value);
value = UnitUtil.bytesToReadableString(Bytes.GB * 8 +
(long) (755 * 1.024) * Bytes.MB);
Assert.assertEquals("8.75 GB", value);
value = UnitUtil.bytesToReadableString(Bytes.GB * 168 +
(long) (756 * 1.024) * Bytes.MB);
Assert.assertEquals("168.76 GB", value);
// TB
value = UnitUtil.bytesToReadableString(Bytes.GB * 1024);
Assert.assertEquals("1 TB", value);
value = UnitUtil.bytesToReadableString(Bytes.TB + 1 * Bytes.GB);
Assert.assertEquals("1.0 TB", value);
value = UnitUtil.bytesToReadableString(Bytes.TB + 10 * Bytes.GB);
Assert.assertEquals("1.01 TB", value);
value = UnitUtil.bytesToReadableString(Bytes.TB + 20 * Bytes.GB);
Assert.assertEquals("1.02 TB", value);
value = UnitUtil.bytesToReadableString(Bytes.TB + 100 * Bytes.GB);
Assert.assertEquals("1.1 TB", value);
value = UnitUtil.bytesToReadableString(Bytes.TB + 123 * Bytes.GB);
Assert.assertEquals("1.12 TB", value);
value = UnitUtil.bytesToReadableString(Bytes.TB + 129 * Bytes.GB);
Assert.assertEquals("1.13 TB", value);
value = UnitUtil.bytesToReadableString(Bytes.TB * 8 +
(long) (755 * 1.024) * Bytes.GB);
Assert.assertEquals("8.75 TB", value);
value = UnitUtil.bytesToReadableString(Bytes.TB * 168 +
(long) (756 * 1.024) * Bytes.GB);
Assert.assertEquals("168.76 TB", value);
// PB
value = UnitUtil.bytesToReadableString(Bytes.TB * 1024);
Assert.assertEquals("1 PB", value);
value = UnitUtil.bytesToReadableString(Bytes.PB + 1 * Bytes.TB);
Assert.assertEquals("1.0 PB", value);
value = UnitUtil.bytesToReadableString(Bytes.PB + 10 * Bytes.TB);
Assert.assertEquals("1.01 PB", value);
value = UnitUtil.bytesToReadableString(Bytes.PB + 20 * Bytes.TB);
Assert.assertEquals("1.02 PB", value);
value = UnitUtil.bytesToReadableString(Bytes.PB + 100 * Bytes.TB);
Assert.assertEquals("1.1 PB", value);
value = UnitUtil.bytesToReadableString(Bytes.PB + 123 * Bytes.TB);
Assert.assertEquals("1.12 PB", value);
value = UnitUtil.bytesToReadableString(Bytes.PB + 129 * Bytes.TB);
Assert.assertEquals("1.13 PB", value);
value = UnitUtil.bytesToReadableString(Bytes.PB * 8 +
(long) (755 * 1.024) * Bytes.TB);
Assert.assertEquals("8.75 PB", value);
value = UnitUtil.bytesToReadableString(Bytes.PB * 168 +
(long) (756 * 1.024) * Bytes.TB);
Assert.assertEquals("168.76 PB", value);
// EB
value = UnitUtil.bytesToReadableString(Bytes.PB * 1024);
Assert.assertEquals("1 EB", value);
value = UnitUtil.bytesToReadableString(Bytes.EB + 1 * Bytes.PB);
Assert.assertEquals("1.0 EB", value);
value = UnitUtil.bytesToReadableString(Bytes.EB + 10 * Bytes.PB);
Assert.assertEquals("1.01 EB", value);
value = UnitUtil.bytesToReadableString(Bytes.EB + 20 * Bytes.PB);
Assert.assertEquals("1.02 EB", value);
value = UnitUtil.bytesToReadableString(Bytes.EB + 100 * Bytes.PB);
Assert.assertEquals("1.1 EB", value);
value = UnitUtil.bytesToReadableString(Bytes.EB + 123 * Bytes.PB);
Assert.assertEquals("1.12 EB", value);
value = UnitUtil.bytesToReadableString(Bytes.EB + 129 * Bytes.PB);
Assert.assertEquals("1.13 EB", value);
value = UnitUtil.bytesToReadableString(Bytes.EB * 7 +
(long) (755 * 1.024) * Bytes.PB);
Assert.assertEquals("7.75 EB", value);
// Bytes overflow long value
value = UnitUtil.bytesToReadableString(Bytes.EB * 8);
Assert.assertEquals("0 B", value);
}
@Test
public void testBytesFromReadableString() {
// B
Assert.assertEquals(0L, UnitUtil.bytesFromReadableString("0 B"));
Assert.assertEquals(1L, UnitUtil.bytesFromReadableString("1 Bytes"));
Assert.assertEquals(3L, UnitUtil.bytesFromReadableString("3 bytes"));
Assert.assertEquals(10L, UnitUtil.bytesFromReadableString("10 Byte"));
Assert.assertEquals(100L, UnitUtil.bytesFromReadableString("100 byte"));
Assert.assertEquals(1000L, UnitUtil.bytesFromReadableString("1000 b"));
Assert.assertEquals(1023L, UnitUtil.bytesFromReadableString("1023 B"));
Assert.assertEquals(1024L, UnitUtil.bytesFromReadableString("1024 B"));
Assert.assertEquals(10245678L,
UnitUtil.bytesFromReadableString("10245678 B"));
Assert.assertEquals(102456789012L,
UnitUtil.bytesFromReadableString("102456789012 B"));
Assert.assertEquals(1L, UnitUtil.bytesFromReadableString("1 B"));
Assert.assertEquals(1L, UnitUtil.bytesFromReadableString("1 B "));
Assert.assertEquals(-2L, UnitUtil.bytesFromReadableString("-2 B"));
// KB
Assert.assertEquals(0L, UnitUtil.bytesFromReadableString("0 KB"));
Assert.assertEquals(Bytes.KB * 1L,
UnitUtil.bytesFromReadableString("1 KB"));
Assert.assertEquals((long) (Bytes.KB * 3.14),
UnitUtil.bytesFromReadableString("3.14 KB"));
Assert.assertEquals(Bytes.KB * 10L,
UnitUtil.bytesFromReadableString("10 kB"));
Assert.assertEquals(Bytes.KB * 100L,
UnitUtil.bytesFromReadableString("100 KiB"));
Assert.assertEquals(Bytes.KB * 1000L,
UnitUtil.bytesFromReadableString("1000 kb"));
Assert.assertEquals(Bytes.KB * 1023L,
UnitUtil.bytesFromReadableString("1023 kib"));
Assert.assertEquals(Bytes.KB * 1234567890L,
UnitUtil.bytesFromReadableString("1234567890 Kib"));
// MB
Assert.assertEquals(0L, UnitUtil.bytesFromReadableString("0 MB"));
Assert.assertEquals(Bytes.MB * 1L,
UnitUtil.bytesFromReadableString("1 MB"));
Assert.assertEquals((long) (Bytes.MB * 3.14),
UnitUtil.bytesFromReadableString("3.14 MB"));
Assert.assertEquals(Bytes.MB * 10L,
UnitUtil.bytesFromReadableString("10 mB"));
Assert.assertEquals(Bytes.MB * 100L,
UnitUtil.bytesFromReadableString("100 MiB"));
Assert.assertEquals(Bytes.MB * 1000L,
UnitUtil.bytesFromReadableString("1000 mib"));
Assert.assertEquals(Bytes.MB * 1023L,
UnitUtil.bytesFromReadableString("1023 MIB"));
Assert.assertEquals(Bytes.MB * 1234567890L,
UnitUtil.bytesFromReadableString("1234567890 Mb"));
// GB
Assert.assertEquals(0L, UnitUtil.bytesFromReadableString("0 GB"));
Assert.assertEquals(Bytes.GB * 1L,
UnitUtil.bytesFromReadableString("1 GB"));
Assert.assertEquals((long) (Bytes.GB * 3.14),
UnitUtil.bytesFromReadableString("3.14 GB"));
Assert.assertEquals(Bytes.GB * 10L,
UnitUtil.bytesFromReadableString("10 gB"));
Assert.assertEquals(Bytes.GB * 100L,
UnitUtil.bytesFromReadableString("100 GiB"));
Assert.assertEquals(Bytes.GB * 1000L,
UnitUtil.bytesFromReadableString("1000 gib"));
Assert.assertEquals(Bytes.GB * 1023L,
UnitUtil.bytesFromReadableString("1023 GIB"));
Assert.assertEquals(Bytes.GB * 1234567890L,
UnitUtil.bytesFromReadableString("1234567890 Gb"));
// TB
Assert.assertEquals(0L, UnitUtil.bytesFromReadableString("0 TB"));
Assert.assertEquals(Bytes.TB * 1L,
UnitUtil.bytesFromReadableString("1 TB"));
Assert.assertEquals((long) (Bytes.TB * 3.14),
UnitUtil.bytesFromReadableString("3.14 TB"));
Assert.assertEquals(Bytes.TB * 10L,
UnitUtil.bytesFromReadableString("10 tB"));
Assert.assertEquals(Bytes.TB * 100L,
UnitUtil.bytesFromReadableString("100 TiB"));
Assert.assertEquals(Bytes.TB * 1000L,
UnitUtil.bytesFromReadableString("1000 tib"));
Assert.assertEquals(Bytes.TB * 1023L,
UnitUtil.bytesFromReadableString("1023 TIB"));
Assert.assertEquals(Bytes.TB * 123456L,
UnitUtil.bytesFromReadableString("123456 Tb"));
// PB
Assert.assertEquals(0L, UnitUtil.bytesFromReadableString("0 PB"));
Assert.assertEquals(Bytes.PB * 1L,
UnitUtil.bytesFromReadableString("1 PB"));
Assert.assertEquals((long) (Bytes.PB * 3.14),
UnitUtil.bytesFromReadableString("3.14 PB"));
Assert.assertEquals(Bytes.PB * 10L,
UnitUtil.bytesFromReadableString("10 pB"));
Assert.assertEquals(Bytes.PB * 100L,
UnitUtil.bytesFromReadableString("100 PiB"));
Assert.assertEquals(Bytes.PB * 1000L,
UnitUtil.bytesFromReadableString("1000 pib"));
Assert.assertEquals(Bytes.PB * 1023L,
UnitUtil.bytesFromReadableString("1023 PIB"));
Assert.assertEquals(Bytes.PB * 8024L,
UnitUtil.bytesFromReadableString("8024 PIB"));
// EB
Assert.assertEquals(0L, UnitUtil.bytesFromReadableString("0 EB"));
Assert.assertEquals(Bytes.EB * 1L,
UnitUtil.bytesFromReadableString("1 EB"));
Assert.assertEquals((long) (Bytes.EB * 3.14),
UnitUtil.bytesFromReadableString("3.14 EB"));
Assert.assertEquals((long) (Bytes.EB * 5.01),
UnitUtil.bytesFromReadableString("5.01 eB"));
Assert.assertEquals((long) (Bytes.EB * 6.28),
UnitUtil.bytesFromReadableString("6.28 EiB"));
Assert.assertEquals((long) (Bytes.EB * 7.9876),
UnitUtil.bytesFromReadableString("7.9876 eib"));
Assert.assertEquals((long) (Bytes.EB * 8.0),
UnitUtil.bytesFromReadableString("8.0 EIB")); // max
}
@Test
public void testBytesFromReadableStringWithInvalidFormat() {
// No space
Assert.assertThrows(IllegalArgumentException.class, () -> {
UnitUtil.bytesFromReadableString("1kb");
}, e -> {
Assert.assertContains("Invalid readable bytes '1kb'",
e.getMessage());
});
// Invalid unit
Assert.assertThrows(IllegalArgumentException.class, () -> {
UnitUtil.bytesFromReadableString("1 aBc");
}, e -> {
Assert.assertContains("Unrecognized unit aBc", e.getMessage());
});
Assert.assertThrows(IllegalArgumentException.class, () -> {
UnitUtil.bytesFromReadableString("1 k");
}, e -> {
Assert.assertContains("Unrecognized unit k", e.getMessage());
});
Assert.assertThrows(IllegalArgumentException.class, () -> {
UnitUtil.bytesFromReadableString("1 m");
}, e -> {
Assert.assertContains("Unrecognized unit m", e.getMessage());
});
Assert.assertThrows(IllegalArgumentException.class, () -> {
UnitUtil.bytesFromReadableString("1 2 MB");
}, e -> {
Assert.assertContains("Unrecognized unit 2 MB", e.getMessage());
});
// Invalid number
Assert.assertThrows(IllegalArgumentException.class, () -> {
UnitUtil.bytesFromReadableString("2b kb");
}, e -> {
Assert.assertContains("Invalid parameter(not number): '2b kb'",
e.getMessage());
});
Assert.assertThrows(IllegalArgumentException.class, () -> {
UnitUtil.bytesFromReadableString("2.3.4 kb");
}, e -> {
Assert.assertContains("Invalid parameter(not number): '2.3.4 kb'",
e.getMessage());
});
// Bytes overflow long value
Assert.assertThrows(IllegalArgumentException.class, () -> {
UnitUtil.bytesFromReadableString("8.1 EIB");
}, e -> {
Assert.assertContains("The value 9.33866418731546E18 from " +
"parameter '8.1 EIB' is out of range",
e.getMessage());
});
Assert.assertThrows(IllegalArgumentException.class, () -> {
UnitUtil.bytesFromReadableString("9024 Pb");
}, e -> {
Assert.assertContains("is out of range", e.getMessage());
});
Assert.assertThrows(IllegalArgumentException.class, () -> {
UnitUtil.bytesFromReadableString("12345678 Tb");
}, e -> {
Assert.assertContains("is out of range", e.getMessage());
});
}
@Test
public void testTimestampToReadableString() {
Assert.assertEquals("0ms",
UnitUtil.timestampToReadableString(0L));
Assert.assertEquals("1ms",
UnitUtil.timestampToReadableString(1L));
Assert.assertEquals("100ms",
UnitUtil.timestampToReadableString(100L));
Assert.assertEquals("999ms",
UnitUtil.timestampToReadableString(999L));
Assert.assertEquals("1s",
UnitUtil.timestampToReadableString(1000L));
Assert.assertEquals("10s",
UnitUtil.timestampToReadableString(10000L));
Assert.assertEquals("1s1ms",
UnitUtil.timestampToReadableString(1001L));
Assert.assertEquals("1s200ms",
UnitUtil.timestampToReadableString(1200L));
Assert.assertEquals("6s789ms",
UnitUtil.timestampToReadableString(6789L));
Assert.assertEquals("59s789ms",
UnitUtil.timestampToReadableString(59789L));
Assert.assertEquals("1m0s",
UnitUtil.timestampToReadableString(60789L));
Assert.assertEquals("1m1s",
UnitUtil.timestampToReadableString(61789L));
Assert.assertEquals("1m2s",
UnitUtil.timestampToReadableString(62000L));
Assert.assertEquals("2m2s",
UnitUtil.timestampToReadableString(122000L));
Assert.assertEquals("2m12s",
UnitUtil.timestampToReadableString(132000L));
Assert.assertEquals("59m59s",
UnitUtil.timestampToReadableString(3599000L));
Assert.assertEquals("1h0m0s",
UnitUtil.timestampToReadableString(3600000L));
Assert.assertEquals("1h0m23s",
UnitUtil.timestampToReadableString(3623000L));
Assert.assertEquals("1h1m23s",
UnitUtil.timestampToReadableString(3683000L));
Assert.assertEquals("1h24m43s",
UnitUtil.timestampToReadableString(5083000L));
Assert.assertEquals("23h59m59s",
UnitUtil.timestampToReadableString(86399000L));
Assert.assertEquals("1d0h0m0s",
UnitUtil.timestampToReadableString(86400000L));
Assert.assertEquals("1d1h24m43s",
UnitUtil.timestampToReadableString(91483000L));
Assert.assertEquals("1d1h24m43s",
UnitUtil.timestampToReadableString(91483000L));
Assert.assertEquals("30d0h0m0s",
UnitUtil.timestampToReadableString(2592000000L));
Assert.assertEquals("30d23h59m59s",
UnitUtil.timestampToReadableString(2678399000L));
Assert.assertEquals("130d23h59m59s",
UnitUtil.timestampToReadableString(11318399000L));
Assert.assertEquals("1130d23h59m59s",
UnitUtil.timestampToReadableString(97718399000L));
}
@Test
public void testTimestampFromReadableString() {
Assert.assertEquals(0L,
UnitUtil.timestampFromReadableString("0ms"));
Assert.assertEquals(1L,
UnitUtil.timestampFromReadableString("1ms"));
Assert.assertEquals(100L,
UnitUtil.timestampFromReadableString("100ms"));
Assert.assertEquals(999L,
UnitUtil.timestampFromReadableString("999ms"));
Assert.assertEquals(1001L,
UnitUtil.timestampFromReadableString("1001ms"));
Assert.assertEquals(0L,
UnitUtil.timestampFromReadableString("0s"));
Assert.assertEquals(1000L,
UnitUtil.timestampFromReadableString("1s"));
Assert.assertEquals(10000L,
UnitUtil.timestampFromReadableString("10s"));
Assert.assertEquals(1001L,
UnitUtil.timestampFromReadableString("1s1ms"));
Assert.assertEquals(1200L,
UnitUtil.timestampFromReadableString("1s200ms"));
Assert.assertEquals(6789L,
UnitUtil.timestampFromReadableString("6s789ms"));
Assert.assertEquals(59789L,
UnitUtil.timestampFromReadableString("59s789ms"));
Assert.assertEquals(59789L,
UnitUtil.timestampFromReadableString("59s2789ms"));
Assert.assertEquals(60000L,
UnitUtil.timestampFromReadableString("1m0s"));
Assert.assertEquals(61000L,
UnitUtil.timestampFromReadableString("1m1s"));
Assert.assertEquals(62000L,
UnitUtil.timestampFromReadableString("1m2s"));
Assert.assertEquals(122000L,
UnitUtil.timestampFromReadableString("2m2s"));
Assert.assertEquals(132000L,
UnitUtil.timestampFromReadableString("2m12s"));
Assert.assertEquals(3599000L,
UnitUtil.timestampFromReadableString("59m59s"));
Assert.assertEquals(3600000L,
UnitUtil.timestampFromReadableString("1h0m0s"));
Assert.assertEquals(3623000L,
UnitUtil.timestampFromReadableString("1h0m23s"));
Assert.assertEquals(3683000L,
UnitUtil.timestampFromReadableString("1h1m23s"));
Assert.assertEquals(5083000L,
UnitUtil.timestampFromReadableString("1h24m43s"));
Assert.assertEquals(86399000L,
UnitUtil.timestampFromReadableString("23h59m59s"));
Assert.assertEquals(86400000L,
UnitUtil.timestampFromReadableString("1d0h0m0s"));
Assert.assertEquals(91483000L,
UnitUtil.timestampFromReadableString("1d1h24m43s"));
Assert.assertEquals(91483000L,
UnitUtil.timestampFromReadableString("1d1h24m43s"));
Assert.assertEquals(2592000000L, UnitUtil.timestampFromReadableString(
"30d0h0m0s"));
Assert.assertEquals(2678399000L, UnitUtil.timestampFromReadableString(
"30d23h59m59s"));
Assert.assertEquals(11318399000L, UnitUtil.timestampFromReadableString(
"130d23h59m59s"));
Assert.assertEquals(97718399000L, UnitUtil.timestampFromReadableString(
"1130d23h59m59s"));
}
}