package org.josast.util.date; import junit.framework.Assert; import junit.framework.TestCase; import java.util.GregorianCalendar; import org.josast.util.date.JulianDay; /** * DOCUMENT ME! * * @author $author$ * @version $Revision: 1.2 $ */ public class JulianDayTest extends TestCase { //~ Static fields/initializers ---------------------------------------- private static final int DAY19 = 19; private static final int MONTH4 = 4; private static final int YEAR1990 = 1990; private static final double JULIANDAY1941990 = 3543.0; //~ Constructors ------------------------------------------------------ /** * Creates a new JulianDayTest object. * * @param arg0 DOCUMENT ME! */ public JulianDayTest(String arg0) { super(arg0); } //~ Methods ----------------------------------------------------------- /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ protected void setUp() throws Exception { super.setUp(); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ protected void tearDown() throws Exception { super.tearDown(); } /** *
unit test for Julian day convertion from Gregorian Calendar *
Date used for the test : *
- 1957 10 4 19 26 24 julian day value expected 2436116.31 *
- 333 1 27 12 0 0 julian day value expected 1842713.0, */ public void testconvertToJulianDayGC() { GregorianCalendar valeur = new GregorianCalendar(1957, GregorianCalendar.OCTOBER, 4, 19, 26, 24); GregorianCalendar valeur1 = new GregorianCalendar(333, GregorianCalendar.JANUARY, 27, 12, 0, 0); Assert.assertEquals(1842713.0, JulianDay.convertToJulianDay(valeur1), 0); Assert.assertEquals(2436116.31, JulianDay.convertToJulianDay(valeur), 0); } /** * unit test for Julian day convertion from a given date *
333 1 27 12 0 0 julian day value expected 1842713.0 *
-584 5 28 0 0 0 julian day value expected 1507899.5 *
1957 10 4 19 26, julian day value expected 24 2436116.31 *
2000 1 1 12 0 0 julian day value expected 2451545.0 *
-4712 1 1 12 0 0 julian day value expected 0.0 *
1999 1 1 0 0 0 julian day value expected 2451179.5 *
1987 1 27 0 0 0 julian day value expected 2446822.5 */ public void testconvertToJulianDay() { Assert.assertEquals(1842713.0, JulianDay.convertToJulianDay(333, 1, 27, 12, 0, 0), 0); Assert.assertEquals(1507899.5, JulianDay.convertToJulianDay(-584, 5, 28, 0, 0, 0), 0); Assert.assertEquals(2436116.31, JulianDay.convertToJulianDay(1957, 10, 4, 19, 26, 24), 0); Assert.assertEquals(2451545.0, JulianDay.convertToJulianDay(2000, 1, 1, 12, 0, 0), 0); Assert.assertEquals(0.0, JulianDay.convertToJulianDay(-4712, 1, 1, 12, 0, 0), 0); Assert.assertEquals(2451179.5, JulianDay.convertToJulianDay(1999, 1, 1, 0, 0, 0), 0); Assert.assertEquals(2446822.5, JulianDay.convertToJulianDay(1987, 1, 27, 0, 0, 0), 0); } /** * Unit test to addDays *
original date 1954 6 28 0, 0, 0 *
add 1 day *
expected results 1954 6 29 0 0 0 * */ public void testaddJours() { GregorianCalendar valeur = new GregorianCalendar(1954, 6, 29, 0, 0, 0); GregorianCalendar valeur2 = new GregorianCalendar(1954, 6, 28, 0, 0, 0); GregorianCalendar resultat = JulianDay.addDays(valeur2, 1); Assert.assertEquals(valeur.getTimeInMillis(), resultat.getTimeInMillis()); } /** * Unit Tes from a Gregorian value *
333 1 27 12 0 0 julian day value expected 1842713.0 *
-584 5 28 0 0 0 julian day value expected 1507899.5 *
1957 10 4 19 26, julian day value expected 24 2436116.31 */ public void testconvertToGregorianCalendar() { GregorianCalendar valeur = new GregorianCalendar(1957, GregorianCalendar.OCTOBER, 4, 19, 26, 24); GregorianCalendar resultat = JulianDay.convertToGregorianCalendar(2436116.31); Assert.assertEquals(valeur.getTimeInMillis(), resultat.getTimeInMillis()); GregorianCalendar valeur1 = new GregorianCalendar(333,GregorianCalendar.JANUARY, 27, 12, 0, 0); GregorianCalendar resultat1 = JulianDay.convertToGregorianCalendar(1842713.0); Assert.assertEquals(valeur1.getTimeInMillis(), resultat1.getTimeInMillis()); GregorianCalendar valeur2 = new GregorianCalendar(-584, GregorianCalendar.MAY, 28, 0, 0, 0); GregorianCalendar resultat2 = JulianDay.convertToGregorianCalendar(1507899.5); Assert.assertEquals(valeur2.getTimeInMillis(), resultat2.getTimeInMillis()); } /** * unit test for */ public void testdiffdate() { GregorianCalendar J1 = new GregorianCalendar(1835, 11, 16, 0, 0, 0); GregorianCalendar J2 = new GregorianCalendar(1910, MONTH4, 20, 0, 0, 0); Assert.assertEquals(27183, JulianDay.diffdate(J2, J1), 0); // new test for bug ? //Le problème rencontré est que lorsque j'essais de soustraire 1940-02-29 et 1940-01-01 j'ai comme résultat 57 alors que je m'attends à avoir 59. J1 = new GregorianCalendar(1940, GregorianCalendar.FEBRUARY, 29, 0, 0, 0); J2 = new GregorianCalendar(1940, GregorianCalendar.JANUARY, 1, 0, 0, 0); Assert.assertEquals(59, JulianDay.diffdate(J1, J2), 0); } /** * DOCUMENT ME! */ public final void testconvertToJulianDay2000() { // 19 april 1990, at 0:00 UT Assert.assertEquals(-JULIANDAY1941990, JulianDay.convertToJulianDay2000(YEAR1990, MONTH4, DAY19, 0, 0, 0), 0); } }