Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.06 KB | None | 0 0
  1. import android.icu.text.CompactDecimalFormat;
  2. import androidx.test.runner.AndroidJUnit4;
  3. import org.junit.Test;
  4. import org.junit.runner.RunWith;
  5. import java.util.Locale;
  6. import static org.junit.Assert.assertEquals;
  7.  
  8. @RunWith(AndroidJUnit4.class)
  9. public class CompactDecimalFormatTest {
  10.  
  11. private final CompactDecimalFormat testObject = CompactDecimalFormat.getInstance(
  12. Locale.ENGLISH,
  13. CompactDecimalFormat.CompactStyle.SHORT
  14. );
  15.  
  16. // Fails on API 24. Works on API 28
  17. @Test
  18. public void testSignificantDigitsUsedFalseThenSetMaximumIntegerDigitsThenSetMaximumFractionDigitsForOneThousandish() {
  19. testObject.setSignificantDigitsUsed(false);
  20. testObject.setMaximumIntegerDigits(3);
  21. testObject.setMaximumFractionDigits(1);
  22.  
  23. final String actual = testObject.format(1_234);
  24. assertEquals("1.2K", actual);
  25. // API 24: "1K"
  26. // API 28: "1.2K"
  27. }
  28.  
  29. // Fails on API 24. Works on API 28
  30. @Test
  31. public void testSetMaximumIntegerDigitsThenSetMaximumFractionDigitsThenSetSignificantDigitsUsedFalseOneThousandish() {
  32. testObject.setMaximumIntegerDigits(3);
  33. testObject.setMaximumFractionDigits(1);
  34. testObject.setSignificantDigitsUsed(false);
  35.  
  36. final String actual = testObject.format(1_234);
  37. assertEquals("1.2K", actual);
  38. // API 24: "1K"
  39. // API 28: "1.2K"
  40. }
  41.  
  42. // Works on API 24 and API 28
  43. @Test
  44. public void testSetMaximumSignificantDigitsOneThousandish() {
  45. testObject.setMaximumSignificantDigits(2);
  46.  
  47. final String actual = testObject.format(1_234);
  48. assertEquals("1.2K", actual);
  49. }
  50.  
  51. // Fails on API 24. Works on API 28
  52. @Test
  53. public void testSignificantDigitsUsedFalseThenSetMaximumIntegerDigitsThenSetMaximumFractionDigitsForTenThousandish() {
  54. testObject.setSignificantDigitsUsed(false);
  55. testObject.setMaximumIntegerDigits(3);
  56. testObject.setMaximumFractionDigits(1);
  57.  
  58. final String actual = testObject.format(12_345);
  59. assertEquals("12.3K", actual);
  60. // API 24: "10K"
  61. // API 28: "12.3K"
  62. }
  63.  
  64. // Fails on API 24. Works on API 28
  65. @Test
  66. public void testSetMaximumIntegerDigitsThenSetMaximumFractionDigitsThenSetSignificantDigitsUsedFalseTenThousandish() {
  67. testObject.setMaximumIntegerDigits(3);
  68. testObject.setMaximumFractionDigits(1);
  69. testObject.setSignificantDigitsUsed(false);
  70.  
  71. final String actual = testObject.format(12_345);
  72. assertEquals("12.3K", actual);
  73. // API 24: "10K"
  74. // API 28: "12.3K"
  75. }
  76.  
  77. // Works on API 24 and API 28
  78. @Test
  79. public void testSetMaximumSignificantDigitsTenThousandish() {
  80. testObject.setMaximumSignificantDigits(3);
  81.  
  82. final String actual = testObject.format(12_345);
  83. assertEquals("12.3K", actual);
  84. }
  85.  
  86. // Fails on API 24. Works on API 28
  87. @Test
  88. public void testSignificantDigitsUsedFalseThenSetMaximumIntegerDigitsThenSetMaximumFractionDigitsForHundredThousandish() {
  89. testObject.setSignificantDigitsUsed(false);
  90. testObject.setMaximumIntegerDigits(3);
  91. testObject.setMaximumFractionDigits(1);
  92.  
  93. final String actual = testObject.format(123_456);
  94. assertEquals("123.5K", actual); // rounding
  95. // API 24: "100K"
  96. // API 28: "123.5K"
  97. }
  98.  
  99. // Fails on API 24. Works on API 28
  100. @Test
  101. public void testSetMaximumIntegerDigitsThenSetMaximumFractionDigitsThenSetSignificantDigitsUsedFalseHundredThousandish() {
  102. testObject.setMaximumIntegerDigits(3);
  103. testObject.setMaximumFractionDigits(1);
  104. testObject.setSignificantDigitsUsed(false);
  105.  
  106. final String actual = testObject.format(123_456);
  107. assertEquals("123.5K", actual); // rounding
  108. // API 24: "100K"
  109. // API 28: "123.5K"
  110. }
  111.  
  112. // Works on API 24 and API 28
  113. @Test
  114. public void testSetMaximumSignificantDigitsHundredThousandish() {
  115. testObject.setMaximumSignificantDigits(4);
  116.  
  117. final String actual = testObject.format(123_456);
  118. assertEquals("123.5K", actual); // rounding
  119. }
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement