blob: e10eda3cd7b6f3f907ebc2e3b5c311f0af180e64 [file] [log] [blame]
/*
* Copyright 2013-present Facebook, Inc.
*
* Licensed 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 com.facebook.buck.util.unit;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class SizeUnitTest {
@Test(expected = NumberFormatException.class)
public void testInvalidParseBytes() {
SizeUnit.parseBytes("foobar");
}
@Test
public void testParseBytes() {
assertEquals(Long.MAX_VALUE, SizeUnit.parseBytes(
Long.toString(Long.MAX_VALUE) + "00 B"));
assertEquals(0L, SizeUnit.parseBytes("0GB"));
assertEquals(123L, SizeUnit.parseBytes("123 B"));
assertEquals(123L, SizeUnit.parseBytes("123 Bytes"));
assertEquals(1024L, SizeUnit.parseBytes("1 kb"));
assertEquals(1536L, SizeUnit.parseBytes("1.5 kb"));
assertEquals(1024L, SizeUnit.parseBytes("1 kilobytes"));
assertEquals(10L * 1024L * 1024L, SizeUnit.parseBytes("10 mb"));
assertEquals(2L * 1024L * 1024L, SizeUnit.parseBytes("2 megabytes"));
assertEquals(10L * 1024L * 1024L * 1024L, SizeUnit.parseBytes("10 gb"));
assertEquals(2L * 1024L * 1024L * 1024L, SizeUnit.parseBytes("2 gigabytes"));
assertEquals(10L * 1024L * 1024L * 1024L * 1024L, SizeUnit.parseBytes("10 tb"));
assertEquals(42L * 1024L * 1024L * 1024L * 1024L, SizeUnit.parseBytes("42 terabytes"));
}
@Test
public void testBytes() {
assertEquals(4L, SizeUnit.BYTES.toBytes(4L));
assertEquals(0L, SizeUnit.BYTES.toKilobytes(4L));
assertEquals(2L, SizeUnit.BYTES.toKilobytes(2048L));
assertEquals(10L, SizeUnit.BYTES.toMegabytes(10L * 1024L * 1024L));
assertEquals(10L, SizeUnit.BYTES.toGigabytes(10L * 1024L * 1024L * 1024L));
assertEquals(10L, SizeUnit.BYTES.toTerabytes(10L * 1024L * 1024L * 1024L * 1024L));
}
@Test
public void testKilobytes() {
assertEquals(2048L, SizeUnit.KILOBYTES.toBytes(2L));
assertEquals(2048L, SizeUnit.KILOBYTES.toKilobytes(2048L));
assertEquals(0L, SizeUnit.KILOBYTES.toMegabytes(4L));
assertEquals(10L, SizeUnit.KILOBYTES.toMegabytes(10L * 1024L));
assertEquals(10L, SizeUnit.KILOBYTES.toGigabytes(10L * 1024L * 1024L));
assertEquals(10L, SizeUnit.KILOBYTES.toTerabytes(10L * 1024L * 1024L * 1024L));
}
@Test
public void testMegabytes() {
assertEquals(1024L * 1024L, SizeUnit.MEGABYTES.toBytes(1L));
assertEquals(2048L, SizeUnit.MEGABYTES.toKilobytes(2L));
assertEquals(42L, SizeUnit.MEGABYTES.toMegabytes(42L));
assertEquals(0L, SizeUnit.MEGABYTES.toGigabytes(4L));
assertEquals(10L, SizeUnit.MEGABYTES.toGigabytes(10L* 1024L));
assertEquals(10L, SizeUnit.MEGABYTES.toTerabytes(10L * 1024L * 1024L));
}
@Test
public void testGigabytes() {
assertEquals(1024L * 1024L * 1024L, SizeUnit.GIGABYTES.toBytes(1L));
assertEquals(2 * 1024L * 1024L, SizeUnit.GIGABYTES.toKilobytes(2L));
assertEquals(2048L, SizeUnit.GIGABYTES.toMegabytes(2L));
assertEquals(42L, SizeUnit.GIGABYTES.toGigabytes(42L));
assertEquals(0L, SizeUnit.GIGABYTES.toTerabytes(4L));
assertEquals(10L, SizeUnit.GIGABYTES.toTerabytes(10L * 1024L));
}
@Test
public void testTerabytes() {
assertEquals(1024L * 1024L * 1024L * 1024L, SizeUnit.TERABYTES.toBytes(1L));
assertEquals(2 * 1024L * 1024L * 1024L, SizeUnit.TERABYTES.toKilobytes(2L));
assertEquals(2L * 1024L * 1024L, SizeUnit.TERABYTES.toMegabytes(2L));
assertEquals(2048L, SizeUnit.TERABYTES.toGigabytes(2L));
assertEquals(42L, SizeUnit.TERABYTES.toTerabytes(42L));
}
}