1 18 package com.Ostermiller.util; 19 20 import java.util.*; 21 import java.io.*; 22 23 class SignificantFiguresTests { 24 25 private static class TestCase { 26 private String original; 27 private int sigfigs; 28 private String desiredResult; 29 30 public TestCase(String original, int sigfigs, String desiredResult){ 31 this.original = original; 32 this.sigfigs = sigfigs; 33 this.desiredResult = desiredResult; 34 } 35 private void test() throws Exception { 36 String result = SignificantFigures.format(original, sigfigs); 37 if (!desiredResult.equals(result)) throw new Exception ("Got " + result + " but expected " + desiredResult + " for " + original + " with " + sigfigs + " significant digits."); 38 } 39 } 40 private static final TestCase[] testCases = new TestCase[]{ 41 new TestCase("1234", 3, "1230"), 42 new TestCase("60.91", 3, "60.9"), 43 new TestCase("3343", 1, "3000"), 44 new TestCase("200", 2, "2.0E2"), new TestCase("5097.808073851760832954355668151943215272", 3, "5.10E3"), new TestCase("6.15", 2, "6.2"), new TestCase("6.25", 2, "6.2"), new TestCase("6.150", 2, "6.2"), new TestCase("6.250", 2, "6.2"), new TestCase("6.1500", 2, "6.2"), new TestCase("6.2500", 2, "6.2"), new TestCase("6.153", 2, "6.2"), new TestCase("6.253", 2, "6.3"), new TestCase("200.123", 3, "200."), new TestCase("234.123", 3, "234"), new TestCase("199.87", 3, "200."), new TestCase(".0033234324", 2, "0.0033"), new TestCase("0.0033234324", 2, "0.0033"), new TestCase(".00033234324", 2, "3.3E-4"), new TestCase("1234567", 3, "1230000"), new TestCase("12345678", 3, "1.23E7"), }; 63 64 public static void main(String [] args){ 65 try { 66 for (int i=0; i<testCases.length; i++){ 67 testCases[i].test(); 68 } 69 } catch (Exception x){ 70 x.printStackTrace(System.err); 71 System.exit(1); 72 } 73 System.exit(0); 74 } 75 } 76 | Popular Tags |