updates with formatting

This commit is contained in:
Manfred Karrer 2014-08-28 12:53:27 +02:00
parent 56ca79a58f
commit a8c3040fb3
9 changed files with 224 additions and 91 deletions

View file

@ -17,6 +17,10 @@
package io.bitsquare.gui.util;
import com.google.bitcoin.core.Coin;
import java.util.Locale;
import org.junit.Test;
import org.slf4j.Logger;
@ -29,18 +33,115 @@ public class BSFormatterTest {
private static final Logger log = LoggerFactory.getLogger(BSFormatterTest.class);
@Test
public void testParseToBtcWith4Decimals() {
public void testParseToBtc() {
useMilliBitFormat(false);
setLocale(Locale.GERMAN);
assertEquals(Coin.ZERO, parseToCoin("0"));
assertEquals(Coin.COIN, parseToCoin("1"));
assertEquals(Coin.SATOSHI, parseToCoin("0,00000001"));
assertEquals("0", parseToBtcWith4Decimals("0").toPlainString());
assertEquals("0", parseToBtcWith4Decimals(null).toPlainString());
assertEquals("0", parseToBtcWith4Decimals("s").toPlainString());
assertEquals("0.0012", parseToBtcWith4Decimals("0.00123").toPlainString());
assertEquals("0.0013", parseToBtcWith4Decimals("0.00125").toPlainString());
assertEquals("0.0013", parseToBtcWith4Decimals("0,00125").toPlainString());
assertEquals(Coin.parseCoin("-1"), parseToCoin("-1"));
assertEquals(Coin.parseCoin("1.1"), parseToCoin("1,1"));
assertEquals(Coin.parseCoin("11"), parseToCoin("1.1"));
assertEquals(Coin.parseCoin("1123.45"), parseToCoin("1.123,45"));
assertEquals(Coin.parseCoin("1.123"), parseToCoin("1,123.45"));
assertEquals(Coin.parseCoin("1.1234"), parseToCoinWith4Decimals("1,12342"));
assertEquals(Coin.parseCoin("1.1235"), parseToCoinWith4Decimals("1,12345"));
assertEquals(Coin.parseCoin("1.1230"), parseToCoinWith4Decimals("1,123"));
// change locale
setLocale(Locale.US);
assertEquals(Coin.parseCoin("1.1"), parseToCoin("1.1"));
assertEquals(Coin.parseCoin("11"), parseToCoin("1,1"));
assertEquals(Coin.parseCoin("1.123"), parseToCoin("1.123,45"));
assertEquals(Coin.parseCoin("1123.45"), parseToCoin("1,123.45"));
// change to mBTC
useMilliBitFormat(true);
assertEquals(Coin.parseCoin("1"), parseToCoin("1000"));
assertEquals(Coin.parseCoin("0.123"), parseToCoin("123"));
assertEquals(Coin.parseCoin("0.1234"), parseToCoin("123.4"));
assertEquals(Coin.parseCoin("0.12345"), parseToCoin("123.45"));
assertEquals(Coin.parseCoin("0.123456"), parseToCoin("123.456"));
assertEquals(Coin.parseCoin("123.4567"), parseToCoin("123,456.7"));
assertEquals(Coin.parseCoin("0.001123"), parseToCoinWith4Decimals("1.123"));
assertEquals(Coin.parseCoin("0.0011234"), parseToCoinWith4Decimals("1.1234"));
assertEquals(Coin.parseCoin("0.0011234"), parseToCoinWith4Decimals("1.12342"));
assertEquals(Coin.parseCoin("0.0011235"), parseToCoinWith4Decimals("1.12345"));
}
@Test
public void testFormatCoin() {
useMilliBitFormat(false);
setLocale(Locale.GERMAN);
assertEquals("1,00", formatCoin(Coin.COIN));
assertEquals("1,0120", formatCoin(Coin.parseCoin("1.012")));
assertEquals("1.012,30", formatCoin(Coin.parseCoin("1012.3")));
assertEquals("1,0120", formatCoin(Coin.parseCoin("1.01200")));
assertEquals("1,0123", formatCoin(Coin.parseCoin("1.01234")));
assertEquals("1,2345", formatCoin(Coin.parseCoin("1.2345")));
assertEquals("1,2346", formatCoin(Coin.parseCoin("1.23456")));
assertEquals("1,2346", formatCoin(Coin.parseCoin("1.234567")));
assertEquals("1,2345", formatCoin(Coin.parseCoin("1.23448")));
setLocale(Locale.US);
assertEquals("1.00", formatCoin(Coin.COIN));
assertEquals("1,012.30", formatCoin(Coin.parseCoin("1012.3")));
// change to mBTC
useMilliBitFormat(true);
assertEquals("1,000.00", formatCoin(Coin.COIN));
assertEquals("1.00", formatCoin(Coin.MILLICOIN));
assertEquals("0.0010", formatCoin(Coin.MICROCOIN));
}
@Test
public void testFormatCoinWithCode() {
useMilliBitFormat(false);
setLocale(Locale.GERMAN);
assertEquals("1,00 BTC", formatCoinWithCode(Coin.COIN));
assertEquals("1,01 BTC", formatCoinWithCode(Coin.parseCoin("1.01")));
assertEquals("1,0120 BTC", formatCoinWithCode(Coin.parseCoin("1.012")));
assertEquals("1.012,30 BTC", formatCoinWithCode(Coin.parseCoin("1012.3")));
assertEquals("1,0120 BTC", formatCoinWithCode(Coin.parseCoin("1.01200")));
assertEquals("1,0123 BTC", formatCoinWithCode(Coin.parseCoin("1.01234")));
assertEquals("1,2345 BTC", formatCoinWithCode(Coin.parseCoin("1.2345")));
assertEquals("1,2346 BTC", formatCoinWithCode(Coin.parseCoin("1.23456")));
assertEquals("1,2346 BTC", formatCoinWithCode(Coin.parseCoin("1.234567")));
assertEquals("1,2345 BTC", formatCoinWithCode(Coin.parseCoin("1.23448")));
setLocale(Locale.US);
assertEquals("1.00 BTC", formatCoinWithCode(Coin.COIN));
assertEquals("1,012.30 BTC", formatCoinWithCode(Coin.parseCoin("1012.3")));
// change to mBTC
useMilliBitFormat(true);
assertEquals("1,000.00 mBTC", formatCoinWithCode(Coin.COIN));
assertEquals("1.00 mBTC", formatCoinWithCode(Coin.MILLICOIN));
assertEquals("0.0010 mBTC", formatCoinWithCode(Coin.MICROCOIN));
}
@Test
public void testParseToBtcWith4Decimals() {
useMilliBitFormat(false);
setLocale(Locale.GERMAN);
assertEquals(Coin.parseCoin("0"), parseToCoinWith4Decimals("0"));
assertEquals(Coin.parseCoin("0"), parseToCoinWith4Decimals(null));
assertEquals(Coin.parseCoin("0"), parseToCoinWith4Decimals("s"));
assertEquals(Coin.parseCoin("0.0012"), parseToCoinWith4Decimals("0,00123"));
assertEquals(Coin.parseCoin("0.0013"), parseToCoinWith4Decimals("0,00125"));
}
/*
@Test
public void testHasBtcValidDecimals() {
useMilliBitFormat(false);
setLocale(Locale.GERMAN);
assertTrue(hasBtcValidDecimals(null));
assertTrue(hasBtcValidDecimals("0"));
assertTrue(hasBtcValidDecimals("0,0001"));
@ -52,19 +153,22 @@ public class BSFormatterTest {
assertFalse(hasBtcValidDecimals("0.0001222312312312313"));
}
@Test
@Test
public void testParseToFiatWith2Decimals() {
assertEquals("0", parseToFiatWith2Decimals("0").toPlainString());
assertEquals("0", parseToFiatWith2Decimals(null).toPlainString());
assertEquals("0", parseToFiatWith2Decimals("s").toPlainString());
assertEquals("0.12", parseToFiatWith2Decimals("0.123").toPlainString());
assertEquals("0.13", parseToFiatWith2Decimals("0.125").toPlainString());
assertEquals("0.13", parseToFiatWith2Decimals("0,125").toPlainString());
useMilliBitFormat(false);
setLocale(Locale.GERMAN);
assertEquals("0", parseToFiatWith2Decimals("0"));
assertEquals("0", parseToFiatWith2Decimals(null));
assertEquals("0", parseToFiatWith2Decimals("s"));
assertEquals("0.12", parseToFiatWith2Decimals("0.123"));
assertEquals("0.13", parseToFiatWith2Decimals("0.125"));
assertEquals("0.13", parseToFiatWith2Decimals("0,125"));
}
@Test
public void testHasFiatValidDecimals() {
useMilliBitFormat(false);
setLocale(Locale.GERMAN);
assertTrue(hasFiatValidDecimals(null));
assertTrue(hasFiatValidDecimals("0"));
assertTrue(hasFiatValidDecimals("0,01"));
@ -74,6 +178,6 @@ public class BSFormatterTest {
assertFalse(hasFiatValidDecimals("20000000.0123"));
assertFalse(hasFiatValidDecimals("0.012"));
assertFalse(hasFiatValidDecimals("0.01222312312312313"));
}
}*/
}