RayleighCorrAlgorithm { double[] waterVaporCorrection709(double[] reflectances, double[] bWVRefTile, double[] bWVTile) { double[] H2O_COR_POLY = new double[]{0.3832989, 1.6527957, -1.5635101, 0.5311913}; for (int i = 0; i < bWVTile.length; i++) { double trans709 = 1.0037757999999999; if (bWVTile[i] > 0) { double X2 = bWVTile[i] / bWVRefTile[i]; trans709 = H2O_COR_POLY[0] + (H2O_COR_POLY[1] + (H2O_COR_POLY[2] + H2O_COR_POLY[3] * X2) * X2) * X2; } reflectances[i] = reflectances[i] / trans709; } return reflectances; } RayleighCorrAlgorithm(String bandPattern, int numBands);  RayleighCorrAlgorithm(Sensor sensor); RayleighOutput getRayleighReflectance(RayleighInput rayleighInput, RayleighAux rayleighAux,
                                                 double[] absorptionOfBand, Product product); void getRayleighThicknessBodhaineTest();  }
@Test public void testWaterVapor() { double[] bWVTile = {1.0}; double[] bWVRefTile = {1.0}; double[] reflectances = {1.0}; double[] vaporCorrection709 = algo.waterVaporCorrection709(reflectances, bWVRefTile, bWVTile); assertArrayEquals(new double[]{0.996}, vaporCorrection709, 1e-3); }