blob: c49d4f2981cacb8e36e8fd190c92cc3f69b9e516 [file] [log] [blame]
/*
* Copyright 2000-2011 JetBrains s.r.o.
*
* 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.intellij.codeInsight.intention;
import com.intellij.psi.PsiType;
import com.intellij.util.text.LiteralFormatUtil;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class UnderscoresInLiteralsFormatterTest {
@Test
public void testIntegers() {
assertEquals("0", LiteralFormatUtil.format("0", PsiType.INT));
assertEquals("12", LiteralFormatUtil.format("12", PsiType.INT));
assertEquals("123", LiteralFormatUtil.format("123", PsiType.INT));
assertEquals("123L", LiteralFormatUtil.format("123L", PsiType.INT));
assertEquals("1_234", LiteralFormatUtil.format("1234", PsiType.INT));
assertEquals("123_456", LiteralFormatUtil.format("123456", PsiType.INT));
assertEquals("1_234_567_890l", LiteralFormatUtil.format("1234567890l", PsiType.LONG));
assertEquals("0x", LiteralFormatUtil.format("0x", PsiType.INT));
assertEquals("0xL", LiteralFormatUtil.format("0xL", PsiType.LONG));
assertEquals("0x1L", LiteralFormatUtil.format("0x1L", PsiType.LONG));
assertEquals("0x1234", LiteralFormatUtil.format("0x1234", PsiType.INT));
assertEquals("0x1234l", LiteralFormatUtil.format("0x1234l", PsiType.LONG));
assertEquals("0x1_abcd", LiteralFormatUtil.format("0x1abcd", PsiType.INT));
assertEquals("07", LiteralFormatUtil.format("07", PsiType.INT));
assertEquals("0_777", LiteralFormatUtil.format("0777", PsiType.INT));
assertEquals("077_777", LiteralFormatUtil.format("077777", PsiType.INT));
assertEquals("0b", LiteralFormatUtil.format("0b", PsiType.INT));
assertEquals("0b1010", LiteralFormatUtil.format("0b1010", PsiType.INT));
assertEquals("0b0_1010", LiteralFormatUtil.format("0b01010", PsiType.INT));
assertEquals("0b1010_1010", LiteralFormatUtil.format("0b10101010", PsiType.INT));
assertEquals("0b1010_1010L", LiteralFormatUtil.format("0b10101010L", PsiType.LONG));
}
@Test
public void testDecimalFloatingPoints() {
assertEquals("1f", LiteralFormatUtil.format("1f", PsiType.FLOAT));
assertEquals("123f", LiteralFormatUtil.format("123f", PsiType.FLOAT));
assertEquals("1_234f", LiteralFormatUtil.format("1234f", PsiType.FLOAT));
assertEquals("1_234d", LiteralFormatUtil.format("1234d", PsiType.DOUBLE));
assertEquals("1.", LiteralFormatUtil.format("1.", PsiType.DOUBLE));
assertEquals("1.f", LiteralFormatUtil.format("1.f", PsiType.FLOAT));
assertEquals("123.", LiteralFormatUtil.format("123.", PsiType.DOUBLE));
assertEquals("123.f", LiteralFormatUtil.format("123.f", PsiType.FLOAT));
assertEquals("1_234.", LiteralFormatUtil.format("1234.", PsiType.DOUBLE));
assertEquals("1_234.d", LiteralFormatUtil.format("1234.d", PsiType.FLOAT));
assertEquals("1_234.f", LiteralFormatUtil.format("1234.f", PsiType.FLOAT));
assertEquals(".1", LiteralFormatUtil.format(".1", PsiType.DOUBLE));
assertEquals(".1f", LiteralFormatUtil.format(".1f", PsiType.FLOAT));
assertEquals(".123", LiteralFormatUtil.format(".123", PsiType.DOUBLE));
assertEquals(".123f", LiteralFormatUtil.format(".123f", PsiType.FLOAT));
assertEquals(".123_4", LiteralFormatUtil.format(".1234", PsiType.DOUBLE));
assertEquals(".123_4f", LiteralFormatUtil.format(".1234f", PsiType.FLOAT));
assertEquals(".123_456", LiteralFormatUtil.format(".123456", PsiType.DOUBLE));
assertEquals(".123_456d", LiteralFormatUtil.format(".123456d", PsiType.DOUBLE));
assertEquals(".123_456f", LiteralFormatUtil.format(".123456f", PsiType.FLOAT));
assertEquals("1.1", LiteralFormatUtil.format("1.1", PsiType.DOUBLE));
assertEquals("1.1f", LiteralFormatUtil.format("1.1f", PsiType.FLOAT));
assertEquals("123.123", LiteralFormatUtil.format("123.123", PsiType.DOUBLE));
assertEquals("123.123f", LiteralFormatUtil.format("123.123f", PsiType.FLOAT));
assertEquals("1_234.123_4", LiteralFormatUtil.format("1234.1234", PsiType.DOUBLE));
assertEquals("1_234.123_4f", LiteralFormatUtil.format("1234.1234f", PsiType.FLOAT));
assertEquals("1.1e0", LiteralFormatUtil.format("1.1e0", PsiType.DOUBLE));
assertEquals("1.1E0f", LiteralFormatUtil.format("1.1E0f", PsiType.FLOAT));
assertEquals("123.123e+123", LiteralFormatUtil.format("123.123e+123", PsiType.DOUBLE));
assertEquals("123.123e-123f", LiteralFormatUtil.format("123.123e-123f", PsiType.FLOAT));
assertEquals("1_234.123_4e1_000", LiteralFormatUtil.format("1234.1234e1000", PsiType.DOUBLE));
assertEquals("1_234.123_4e1_000f", LiteralFormatUtil.format("1234.1234e1000f", PsiType.FLOAT));
}
@Test
public void testHexFloatingPoints() {
assertEquals("0xp1", LiteralFormatUtil.format("0xp1", PsiType.DOUBLE));
assertEquals("0xp1f", LiteralFormatUtil.format("0xp1f", PsiType.FLOAT));
assertEquals("0x1p1", LiteralFormatUtil.format("0x1p1", PsiType.DOUBLE));
assertEquals("0x1p1f", LiteralFormatUtil.format("0x1p1f", PsiType.FLOAT));
assertEquals("0x1234p+1", LiteralFormatUtil.format("0x1234p+1", PsiType.DOUBLE));
assertEquals("0x1234p-1f", LiteralFormatUtil.format("0x1234p-1f", PsiType.FLOAT));
assertEquals("0x1_2345p1", LiteralFormatUtil.format("0x12345p1", PsiType.DOUBLE));
assertEquals("0x1_2345p1f", LiteralFormatUtil.format("0x12345p1f", PsiType.FLOAT));
assertEquals("0x1.p1", LiteralFormatUtil.format("0x1.p1", PsiType.DOUBLE));
assertEquals("0x1.p1f", LiteralFormatUtil.format("0x1.p1f", PsiType.FLOAT));
assertEquals("0x1234.p+1", LiteralFormatUtil.format("0x1234.p+1", PsiType.DOUBLE));
assertEquals("0x1234.p-1f", LiteralFormatUtil.format("0x1234.p-1f", PsiType.FLOAT));
assertEquals("0x1_2345.p1", LiteralFormatUtil.format("0x12345.p1", PsiType.DOUBLE));
assertEquals("0x1_2345.p1f", LiteralFormatUtil.format("0x12345.p1f", PsiType.FLOAT));
assertEquals("0x.1p1", LiteralFormatUtil.format("0x.1p1", PsiType.DOUBLE));
assertEquals("0x.1p1f", LiteralFormatUtil.format("0x.1p1f", PsiType.FLOAT));
assertEquals("0x.1234p+1", LiteralFormatUtil.format("0x.1234p+1", PsiType.DOUBLE));
assertEquals("0x.1234p-1f", LiteralFormatUtil.format("0x.1234p-1f", PsiType.FLOAT));
assertEquals("0x.1234_5p1", LiteralFormatUtil.format("0x.12345p1", PsiType.DOUBLE));
assertEquals("0x.1234_5p1f", LiteralFormatUtil.format("0x.12345p1f", PsiType.FLOAT));
assertEquals("0x1.1p+1", LiteralFormatUtil.format("0x1.1p+1", PsiType.DOUBLE));
assertEquals("0x1.1p-1f", LiteralFormatUtil.format("0x1.1p-1f", PsiType.FLOAT));
assertEquals("0xabcd.1234p+100", LiteralFormatUtil.format("0xabcd.1234p+100", PsiType.DOUBLE));
assertEquals("0xabcd.1234P-100f", LiteralFormatUtil.format("0xabcd.1234P-100f", PsiType.FLOAT));
assertEquals("0xab_cdef.1234_5p+1_024", LiteralFormatUtil.format("0xabcdef.12345p+1024", PsiType.DOUBLE));
assertEquals("0xab_cdef.1234_5P-1_024f", LiteralFormatUtil.format("0xabcdef.12345P-1024f", PsiType.FLOAT));
}
}