Subversion Repositories distributed

Rev

Blame | Last modification | View Log | RSS feed

  1. package de.viathinksoft.marschall.raumplan.formula;
  2.  
  3. import static org.junit.Assert.*;
  4.  
  5. import org.junit.Test;
  6.  
  7. public class FormulaProbeTest {
  8.  
  9.         @Test
  10.         public void GeneralTests() throws SelfTestException, InvalidValException {
  11.                 assertTrue(nearlyEquals(FormulaProbe.b_star(), 0.6823278038280193));
  12.                 assertTrue(nearlyEquals(FormulaProbe.g_star(), 0.3819660112501051));
  13.                 assertTrue(nearlyEquals(FormulaProbe.w_star(), 0.2838458789785244));
  14.  
  15.                 assertTrue(nearlyEquals(FormulaProbe.w_star(), FormulaProbe.w23(
  16.                                 FormulaProbe.b_star(), FormulaProbe.g_star())));
  17.                 assertTrue(nearlyEquals(FormulaProbe.w_star(), FormulaProbe.w3(
  18.                                 FormulaProbe.b_star(), FormulaProbe.g_star())));
  19.  
  20.                 assertTrue(nearlyEquals(0.0, FormulaProbe.K2(0.5, 0.5, 0.5)));
  21.                 assertFalse(nearlyEquals(0.0, FormulaProbe.K3(0.5, 0.5, 0.5)));
  22.  
  23.                 assertTrue(nearlyEquals(0.0, FormulaProbe.K2(0.0, 0.5, 0.375)));
  24.                 assertFalse(nearlyEquals(0.0, FormulaProbe.K3(0.0, 0.5, 0.375)));
  25.  
  26.                 assertTrue(nearlyEquals(0.0, FormulaProbe.K2(FormulaProbe.b_star(),
  27.                                 FormulaProbe.g_star(), FormulaProbe.w_star())));
  28.                 assertTrue(nearlyEquals(0.0, FormulaProbe.K3(FormulaProbe.b_star(),
  29.                                 FormulaProbe.g_star(), FormulaProbe.w_star())));
  30.  
  31.                 for (double i = 0; i < 0.99; i += 0.01) {
  32.                         assertTrue(nearlyEquals(0.0, FormulaProbe.K2(FormulaProbe.b_star(),
  33.                                         FormulaProbe.g_star(), i)));
  34.                         assertFalse(nearlyEquals(0.0, FormulaProbe.K3(
  35.                                         FormulaProbe.b_star(), FormulaProbe.g_star(), i)));
  36.                 }
  37.  
  38.                 // w23test(0.2, 0.7); // TODO
  39.                 w23test(FormulaProbe.b_star(), FormulaProbe.g_star());
  40.                 w3test(FormulaProbe.b_star(), FormulaProbe.g_star());
  41.                 w2test(0.5, 0.5);
  42.                 w3test(0.6, 0.6);
  43.         }
  44.  
  45.         private static void w23test(double b, double g) throws SelfTestException,
  46.                         InvalidValException {
  47.                 double w = FormulaProbe.w23(b, g);
  48.                 assertTrue(nearlyEquals(0.0, FormulaProbe.K2(b, g, w)));
  49.                 assertTrue(nearlyEquals(0.0, FormulaProbe.K3(b, g, w)));
  50.         }
  51.  
  52.         private static void w2test(double b, double g) throws SelfTestException,
  53.                         InvalidValException {
  54.                 double w = FormulaProbe.w2(b, g);
  55.                 assertTrue(nearlyEquals(0.0, FormulaProbe.K2(b, g, w)));
  56.         }
  57.  
  58.         private static void w3test(double b, double g) throws SelfTestException,
  59.                         InvalidValException {
  60.                 double w = FormulaProbe.w3(b, g);
  61.                 assertTrue(nearlyEquals(0.0, FormulaProbe.K3(b, g, w)));
  62.         }
  63.  
  64.         private static boolean nearlyEquals(double a, double b) {
  65.                 return Math.abs(Math.abs(a) - Math.abs(b)) < 0.0000000000001;
  66.         }
  67.  
  68. }
  69.