diff --git a/examples/simulate_iau.f90 b/examples/simulate_iau.f90
index 3867c408c4ce2d9a9abb58e9a9179a33b776667f..afa60a9cee76686af5bd0b34af5613c0bfc4ecde 100644
--- a/examples/simulate_iau.f90
+++ b/examples/simulate_iau.f90
@@ -4,45 +4,41 @@ program simulate_iau
   use mtime_hl
 
   implicit none
-  
+
   type(t_datetime)  :: start_date, stop_date, current_date, previous_date
-  type(t_timedelta) :: time_step, iau_time_shift 
+  type(t_timedelta) :: time_step, iau_time_shift
 
-  logical :: iterate_iau = .true.
+  logical, parameter :: iterate_iau = .TRUE.
   integer :: iau_iter
 
-  real :: dt_shift, dtime 
+  real :: dt_shift, dtime
 
   integer :: jstep, jstep0, jstep_shift
 
   write (0,*) "Start execution, set calendar ..."
 
   call setCalendar(proleptic_gregorian)
-  
+
   write (0,*) "Assign values ..."
-  
+
   start_date = t_datetime("2016-01-01T00:00:00")
-  stop_date  = t_datetime("2016-01-02T00:00:00")  
+  stop_date  = t_datetime("2016-01-02T00:00:00")
 
   time_step = t_timedelta("PT15M")
   dtime = 900.0
-  
+
   iau_time_shift = t_timedelta("-PT1H30M")
   dt_shift = -5400.0
 
   write (0,*) "Prepare time loop ..."
-  
+
   current_date = start_date
   current_date = current_date + iau_time_shift
 
   write (0,*) '           start date ', start_date%to_string()
   write (0,*) '   shifted start date ', current_date%to_string()
-  
-  if (iterate_iau) then
-    iau_iter = 1
-  else
-    iau_iter = 0
-  endif
+
+  iau_iter = MERGE(1, 0, iterate_iau)
 
   if (iterate_iau) then
     jstep_shift = nint(dt_shift/dtime)
@@ -51,28 +47,28 @@ program simulate_iau
   endif
 
   previous_date = current_date
-  
+
   jstep0 = 0
   jstep = (jstep0 + 1) + jstep_shift
 
   write (0,*) "Start time loop ..."
-  
+
   time_loop: do
 
     current_date = current_date + time_step
 
     write (0,*) "   Time loop ", current_date%to_string(), jstep
-    
+
     if ( (current_date%day() /= previous_date%day()) .and. .not. (jstep == 0 .and. iau_iter == 1) ) then
       previous_date = current_date
     endif
-    
+
     write (0,*) '   --- integrate nh input: ', current_date%to_string(), jstep-jstep_shift, iau_iter
 
     if (current_date >= stop_date) then
       exit time_loop
     end if
-    
+
     if (jstep == 0 .and. iau_iter == 1) then
       iau_iter = 2
       jstep = (jstep0 + 1) + jstep_shift
diff --git a/include/mtime_datetime.h b/include/mtime_datetime.h
index be10d886c210bb58f8470e38b42c077b2a4918b1..37dff6e0c47e7d89ecd3afbf0a19ddad2a21fbcb 100644
--- a/include/mtime_datetime.h
+++ b/include/mtime_datetime.h
@@ -71,8 +71,13 @@ int
 getNoOfDaysInYearDateTime(struct _datetime* dt);
 
 /*! \cond PRIVATE */
-bool
-testYearIsLeapYear(int64_t year);
+static inline bool
+testYearIsLeapYear(int64_t year)
+{
+  bool isLeapYear = !(year % 400) || ((year % 100) && !(year % 4));
+  return isLeapYear;
+}
+
 
 struct _datetime *
 convertDateToDateTime(struct _date* d, struct _datetime* dt_return);
diff --git a/src/mtime_datetime.c b/src/mtime_datetime.c
index cc71bc0921ecf5b8a4a44a31a0db9765bc4d2d3a..1fc55971386efe9153ec22054b689dedbc0af750 100644
--- a/src/mtime_datetime.c
+++ b/src/mtime_datetime.c
@@ -336,26 +336,6 @@ else
 }
 
 
-/*! \cond PRIVATE */
-/* Internal function. Test is year a leap year? */
-
-bool
-testYearIsLeapYear(int64_t year)
-{
-  bool flag = false;
-
-  if (!(year % 400))
-    flag = true;
-  else if (!(year % 100))
-    flag = false;
-  else if (!(year % 4))
-    flag = true;
-  else
-    flag = false;
-
-  return flag;
-}
-
 /*
  * NOTE: Internal and not doxyfied.
  *
diff --git a/src/mtime_timedelta.c b/src/mtime_timedelta.c
index 0f4c70a828a7601330be5adc2ccbd120ed6bc552..e82c9532a4bdd2ce01a975f72c7f317421aeb1f6 100644
--- a/src/mtime_timedelta.c
+++ b/src/mtime_timedelta.c
@@ -873,65 +873,63 @@ julianDeltaToTimeDelta(struct _juliandelta* jd, struct _datetime* base_dt, struc
       msdinm = monthSpecificDeltaInMonths365;
       ndiny = NO_OF_DAYS_IN_A_YEAR_FOR_CAL_TYPE365;
       break;
-      
+
     case YEAR_OF_360_DAYS:
-      
+
       msdinm = monthSpecificDeltaInMonths360;
       ndiny = NO_OF_DAYS_IN_A_YEAR_FOR_CAL_TYPE360;
       break;
 
     case PROLEPTIC_GREGORIAN:
       /* Handle all Gregorian related code here. */
-      
+
       /* Gregorian will have 366 days and 365 days depending on Leap year. */
-      
+
       if ( jd->sign == '-' )
         {
           /* Negative TimeDelta.  A negative juliandelta is represented in the following 
              way: -P01DT00.500S  = jd2->sign = '-', jd2->day = -30, jd2->ms = -500. */  
-          
+
           td_return->sign = '-';
 
-          fprintf(stderr, "NEGATIVE CASE ....\n");
-          
           /* No of days in the final year */
           int64_t delta_final_year;
           int64_t days = (-1)*jd->day;
-          /* Set counter to base year and then jump forward to get to the final year.
+          /* Set counter to base year and then iterate backward to get to the final year.
              For each loop forward, increment year by 1.
           */
           int64_t j = base_dt->date.year;
           /* Initialize to 0. */
           td_return->year = 0;
-          
+
           /* Fast-Fwd >= 400 */
           if (days >= NO_OF_DAYS_IN_400_YEARS)
             {
               int64_t numberOf400YearPeriods = days / NO_OF_DAYS_IN_400_YEARS;
               td_return->year = td_return->year + numberOf400YearPeriods * 400;
-              j = j + numberOf400YearPeriods * 400;
+              j = j - numberOf400YearPeriods * 400;
               days = days - numberOf400YearPeriods * NO_OF_DAYS_IN_400_YEARS;
             }
 
           do
             {
-              
+
               /* Loop over and get to the final year by substracting 366/365 days depending
-                 on leap/non-leap year. For each substraction, increment year by 1.  
+                 on leap/non-leap year. For each substraction, increment year by 1.
               */
-              
+
               /* The crucial point is month of february. */
               delta_final_year = days;
               if (
                   ( (testYearIsLeapYear(j)) && (base_dt->date.month >= 3) )
                   ||
-                  ( (testYearIsLeapYear(j+1)) && (base_dt->date.month < 3) )
+                  ( (testYearIsLeapYear(j-1)) && (base_dt->date.month < 3) )
                   )
                 {
-                  /* If next year is leap year and base month is >= 3 
-                     OR 
-                     this year is a leap year and month is < 3
-                     => delta of 1 year corresponds to 366 day julian delta.  
+                  /* If year is leap year and base month is >= 3
+                     OR
+                     next year is a leap year and month is < 3
+                     => delta of 1 year corresponds to 366 day julian delta.
                   */
                   days = days - NO_OF_DAYS_IN_A_LEAP_YEAR;
                 }
@@ -941,7 +939,7 @@ julianDeltaToTimeDelta(struct _juliandelta* jd, struct _datetime* base_dt, struc
                   days = days - NO_OF_DAYS_IN_A_YEAR_FOR_CAL_TYPE365;
                 }
               td_return->year++;
-              j++;
+              j--;
             } while (days >= 0);
 
           /* The loop ran one time too much. */
@@ -949,20 +947,20 @@ julianDeltaToTimeDelta(struct _juliandelta* jd, struct _datetime* base_dt, struc
           if (days < 0)
             {
               td_return->year--;
-              j--;
+              j++;
             }
-          
+
           /* In final year, the crucial point is the month of february. */
 
           if (
               ((testYearIsLeapYear(j)) && (base_dt->date.month >= 3))
               ||
-              ((testYearIsLeapYear(j+1)) && (base_dt->date.month < 3))
+              ((testYearIsLeapYear(j-1)) && (base_dt->date.month < 3))
               )
             {
-              /* If final year's next year is a leap year and base month is >= 3 
-                 OR 
-                 final year is a leap year and month is < 3
+              /* If final year is a leap year and base month is >= 3
+                 OR
+                 year preceding final year is a leap year and month is < 3
                  => An addition of leap-year specific delta for each month.
               */
               msdinm = monthSpecificDeltaInMonthsLeapyear;
@@ -974,17 +972,20 @@ julianDeltaToTimeDelta(struct _juliandelta* jd, struct _datetime* base_dt, struc
               msdinm = monthSpecificDeltaInMonths365;
               ndiny = NO_OF_DAYS_IN_A_YEAR_FOR_CAL_TYPE365;
             }
-          
+
           for (i = 1; i <= NO_OF_MONTHS_IN_A_YEAR; i++)
             {
               if (delta_final_year < msdinm[base_dt->date.month - 1][i])
                 {
+                  /* Month  */
                   td_return->month = i - 1;
+                  /* Day. */
                   td_return->day = (int) delta_final_year - msdinm[base_dt->date.month - 1][i - 1];
                   break;
                 }
             }
-          
+
+          /* Time. */
           td_return->hour       = ((-1)*(int) jd->ms) / NO_OF_MS_IN_A_HOUR;
           td_return->minute     = ((-1)*(int) jd->ms - td_return->hour * NO_OF_MS_IN_A_HOUR) / NO_OF_MS_IN_A_MINUTE;
           td_return->second     = ((-1)*(int) jd->ms - td_return->hour * NO_OF_MS_IN_A_HOUR - td_return->minute * NO_OF_MS_IN_A_MINUTE) / NO_OF_MS_IN_A_SECOND;
@@ -994,8 +995,6 @@ julianDeltaToTimeDelta(struct _juliandelta* jd, struct _datetime* base_dt, struc
         {
           td_return->sign = '+';
 
-          fprintf(stderr, "POSITIVE CASE ....\n");
-          
           /* No days in the final year. */
           int64_t delta_final_year;
           int64_t days = jd->day;
@@ -1005,69 +1004,63 @@ julianDeltaToTimeDelta(struct _juliandelta* jd, struct _datetime* base_dt, struc
           int64_t j = base_dt->date.year;
           /* Initialize. */
           td_return->year = 0;
-          
+
           /* Fast-Fwd >= 400 */
           if (days >= NO_OF_DAYS_IN_400_YEARS)
             {
-              int64_t numberOf400YearPeriods = days / NO_OF_DAYS_IN_400_YEARS; 
+              int64_t numberOf400YearPeriods = days / NO_OF_DAYS_IN_400_YEARS;
               td_return->year = td_return->year + numberOf400YearPeriods * 400;
               j = j - numberOf400YearPeriods * 400;
               days = days - numberOf400YearPeriods * NO_OF_DAYS_IN_400_YEARS;
             }
-          
-          fprintf(stderr, "y: %ld ym1: %ld\n", j, j-1);
-          
+
           do
             {
               /* Loop over and get the year by substracting 366/365 days depending
-                 on leap/non-leap year. For each substraction, increment year by 1.  
+                 on leap/non-leap year. For each substraction, increment year by 1.
               */
-              
+
               /* The crucial point is month of february. */
               delta_final_year = days;
               if (
-                  ((testYearIsLeapYear(j)) && (base_dt->date.month <= 3))
+                  ((testYearIsLeapYear(j+1)) && (base_dt->date.month >= 3))
                   ||
-                  ((testYearIsLeapYear(j-1)) && (base_dt->date.month > 3))
+                  ((testYearIsLeapYear(j)) && (base_dt->date.month < 3))
                   )
                 {
-                  fprintf(stderr, "   .... special 1 (leap)\n");                  
-                  /* If previous year is leap year and base month is < 3 
-                     OR 
-                     this year is a leap year and month is >= 3
-                     => delta of 1 year corresponds to 366 day julian delta.  
+                  /* If next year is leap year and base month is < 3
+                     OR
+                     this year is a leap year and month is < 3
+                     => delta of 1 year corresponds to 366 day julian delta.
                   */
                   days = days - NO_OF_DAYS_IN_A_LEAP_YEAR;
                 }
               else
                 {
-                  fprintf(stderr, "   .... normal 1\n");                                    
                   /* Otherwise. */
                   days = days - NO_OF_DAYS_IN_A_YEAR_FOR_CAL_TYPE365;
                 }
-              
+
               td_return->year++;
-              j--;
+              j++;
             } while (days >= 0);
 
           /* The loop ran one time too much. */
-
           if (days < 0)
             {
               td_return->year--;
-              j++;
+              j--;
             }
-          
-          /* In final year, the crucial point is the month of february. */
 
+          /* In final year, the crucial point is the month of february. */
           if (
-              ((testYearIsLeapYear(j)) && (base_dt->date.month <= 3))
+              ((testYearIsLeapYear(j+1)) && (base_dt->date.month >= 3))
               ||
-              ((testYearIsLeapYear(j-1)) && (base_dt->date.month > 3))
+              ((testYearIsLeapYear(j)) && (base_dt->date.month < 3))
               )
             {
-              /* If final year is a leap year and base month is >= 3 
-                 OR 
+              /* If final year is a leap year and base month is >= 3
+                 OR
                  final year's previous year is a leap year and month is < 3
                  => An addition of leap-year specific delta for each month.
               */
@@ -1092,7 +1085,8 @@ julianDeltaToTimeDelta(struct _juliandelta* jd, struct _datetime* base_dt, struc
                   break;
                 }
             }
-          
+
+          /* Time */
           td_return->hour       =  (int) jd->ms / NO_OF_MS_IN_A_HOUR;
           td_return->minute     = ((int) jd->ms - td_return->hour * NO_OF_MS_IN_A_HOUR) / NO_OF_MS_IN_A_MINUTE;
           td_return->second     = ((int) jd->ms - td_return->hour * NO_OF_MS_IN_A_HOUR - td_return->minute * NO_OF_MS_IN_A_MINUTE) / NO_OF_MS_IN_A_SECOND;
@@ -1442,10 +1436,6 @@ getTimeDeltaFromDateTime(struct _datetime* dt1, struct _datetime* dt2, struct _t
   /* Substract the 2 dates on julian axis. */
   jd = substractJulianDay(jd1, jd2, jd);
 
-  fprintf(stderr, "jd1 %6ld %10ld\n", (long) jd1->day, (long) jd1->ms);
-  fprintf(stderr, "jd2 %6ld %10ld\n", (long) jd2->day, (long) jd2->ms);  
-  fprintf(stderr, "jd  %6ld %10ld\n", (long) jd->day, (long) jd->ms);
-  
   /* Convert Julian-delta to TimeDelta. */
   td_return = julianDeltaToTimeDelta(jd, dt2, td_return);
 
diff --git a/test/mtime_timedelta_test.c b/test/mtime_timedelta_test.c
index 3ad7d838e21e7b7fd5f5af11e2c18620a14ce849..dd5aebec3b9c6b33aaf346b2f5b112ccc6366397 100644
--- a/test/mtime_timedelta_test.c
+++ b/test/mtime_timedelta_test.c
@@ -524,7 +524,9 @@ START_TEST(test_mtime_add_months_atEnd)
   int i;
   struct _timedelta *td, *offset;
   struct _datetime *start, *ref;
+#ifdef DEBUG
   char curs[MAX_DATETIME_STR_LEN];
+#endif
 
   start  = newDateTime("2001-01-01T00:00:00");
   ref    = newDateTime("1999-12-31T23:50:00");
@@ -534,7 +536,7 @@ START_TEST(test_mtime_add_months_atEnd)
   ref    = start;
 
   struct _datetime* cur = constructAndCopyDateTime(ref);
-#ifdef EBUG
+#ifdef DEBUG
   printf("\n#==================================================================\n");
   printf("Results from test: test_mtime_add_months_atEnd\n");
   printf("Start date is: %s\n",datetimeToString(cur, curs));
@@ -692,24 +694,17 @@ END_TEST
 
 START_TEST(test_getTimeDeltaFromDateTime)
 {
-  // These tests are taken from ac66aeaef2dde828aa31b63f88076070a8282b49
-        fprintf(stderr, "TEST A:\n");
+        // These tests are taken from ac66aeaef2dde828aa31b63f88076070a8282b49
         assertGetTimeDeltaFromDateTime("1979-03-01T00:00:00.000", "1979-01-01T01:00:00.000", "P01M27DT23H");
-        fprintf(stderr, "TEST B:\n");
 	assertGetTimeDeltaFromDateTime("1979-07-01T00:00:00.000", "1979-01-01T01:00:00.000", "P05M29DT23H");
-        fprintf(stderr, "TEST C:\n");
 	assertGetTimeDeltaFromDateTime("1979-12-01T00:00:00.000", "1979-01-01T01:00:00.000", "P10M29DT23H");
-        fprintf(stderr, "TEST D:\n");
 	assertGetTimeDeltaFromDateTime("1980-01-01T00:00:00.000", "1979-01-01T01:00:00.000", "P11M30DT23H");
 
 	// These tests are taken from 5bcba6591c38fbb9f7a3a5f63c86963d8a066595
-        fprintf(stderr, "TEST E:\n");
 	assertGetTimeDeltaFromDateTime("2017-07-31T00:00:00.000", "2017-07-01T00:00:00.000", "P30D");
-        fprintf(stderr, "TEST F:\n");
 	assertGetTimeDeltaFromDateTime("2017-08-01T00:00:00.000", "2017-07-01T00:00:00.000", "P1M");
 
 	// FIXME: This needs to be fulfilled for amip restart to work fine.
-        fprintf(stderr, "TEST G:\n");
 	assertGetTimeDeltaFromDateTime("1981-01-01T00:00:00.000", "1980-01-01T00:10:00.000", "P11M30DT23H50M");
 }
 END_TEST
@@ -717,7 +712,7 @@ END_TEST
 START_TEST(test_timeDeltaToJulianDeltaToTimeDelta)
 {
 	assertTimeDeltaToJulianDeltaToTimeDelta("1979-01-01T01:00:00.000", "P01M27DT23H");
-	assertTimeDeltaToJulianDeltaToTimeDelta("1979-02-01T01:00:00.000", "P01M27DT23H");        
+	assertTimeDeltaToJulianDeltaToTimeDelta("1979-02-01T01:00:00.000", "P01M27DT23H");
 	assertTimeDeltaToJulianDeltaToTimeDelta("1979-03-01T00:00:00.000", "P01M27DT23H");
 	assertTimeDeltaToJulianDeltaToTimeDelta("1979-04-01T01:00:00.000", "P01M27DT23H");
 	assertTimeDeltaToJulianDeltaToTimeDelta("1979-05-01T01:00:00.000", "P01M27DT23H");
@@ -731,21 +726,21 @@ START_TEST(test_timeDeltaToJulianDeltaToTimeDelta)
 	assertTimeDeltaToJulianDeltaToTimeDelta("1980-01-01T01:00:00.000", "P01M27DT23H");
         assertTimeDeltaToJulianDeltaToTimeDelta("1980-02-01T01:00:00.000", "P01M27DT23H");
         assertTimeDeltaToJulianDeltaToTimeDelta("1980-03-01T01:00:00.000", "P01M27DT23H");
-        assertTimeDeltaToJulianDeltaToTimeDelta("1980-04-01T01:00:00.000", "P01M27DT23H");        
+        assertTimeDeltaToJulianDeltaToTimeDelta("1980-04-01T01:00:00.000", "P01M27DT23H");
 	assertTimeDeltaToJulianDeltaToTimeDelta("1979-01-01T01:00:00.000", "P05M29DT23H");
 	assertTimeDeltaToJulianDeltaToTimeDelta("1979-07-01T00:00:00.000", "P05M29DT23H");
 	assertTimeDeltaToJulianDeltaToTimeDelta("1979-01-01T01:00:00.000", "P10M29DT23H");
 	assertTimeDeltaToJulianDeltaToTimeDelta("1979-12-01T00:00:00.000", "P10M29DT23H");
-	/* assertTimeDeltaToJulianDeltaToTimeDelta("1979-01-01T01:00:00.000", "P11M30DT23H"); */
-	/* assertTimeDeltaToJulianDeltaToTimeDelta("1980-01-01T00:00:00.000", "P11M30DT23H"); */
+	assertTimeDeltaToJulianDeltaToTimeDelta("1979-01-01T01:00:00.000", "P11M30DT23H");
+	assertTimeDeltaToJulianDeltaToTimeDelta("1980-01-01T00:00:00.000", "P11M30DT23H");
 
-	/* assertTimeDeltaToJulianDeltaToTimeDelta("2017-07-01T00:00:00.000", "P30D"); */
-	/* assertTimeDeltaToJulianDeltaToTimeDelta("2017-07-31T00:00:00.000", "P30D"); */
-	/* assertTimeDeltaToJulianDeltaToTimeDelta("2017-07-01T00:00:00.000", "P1M"); */
-	/* assertTimeDeltaToJulianDeltaToTimeDelta("2017-08-01T00:00:00.000", "P1M"); */
+	assertTimeDeltaToJulianDeltaToTimeDelta("2017-07-01T00:00:00.000", "P30D");
+	assertTimeDeltaToJulianDeltaToTimeDelta("2017-07-31T00:00:00.000", "P30D");
+	assertTimeDeltaToJulianDeltaToTimeDelta("2017-07-01T00:00:00.000", "P1M");
+	assertTimeDeltaToJulianDeltaToTimeDelta("2017-08-01T00:00:00.000", "P1M");
 
-	/* assertTimeDeltaToJulianDeltaToTimeDelta("1980-01-01T00:10:00.000", "P11M30DT23H50M"); */
-	/* assertTimeDeltaToJulianDeltaToTimeDelta("1981-01-01T00:00:00.000", "P11M30DT23H50M"); */
+	assertTimeDeltaToJulianDeltaToTimeDelta("1980-01-01T00:10:00.000", "P11M30DT23H50M");
+	assertTimeDeltaToJulianDeltaToTimeDelta("1981-01-01T00:00:00.000", "P11M30DT23H50M");
 }
 END_TEST
 
@@ -786,25 +781,25 @@ void add_mtime_timedelta_test_to_suite(Suite* suite)
 	tcase_add_test(tcase_ProlepticGregorian, test_getTimeDeltaFromDateTime);
         tcase_add_test(tcase_ProlepticGregorian, test_timeDeltaToJulianDeltaToTimeDelta);
 
-	/* TCase *tcase_YearOf365Days = tcase_create("mtime_time_test_YearOf365Days"); */
-	/* suite_add_tcase(suite, tcase_YearOf365Days); */
-	/* tcase_add_checked_fixture(tcase_YearOf365Days, setup_YearOf365Days, teardown); */
-	/* tcase_add_test(tcase_YearOf365Days, test_timeDeltaToJulianDelta_YearOf365Days); */
-
-	/* TCase *tcase_YearOf360Days = tcase_create("mtime_time_test_YearOf360Days"); */
-	/* suite_add_tcase(suite, tcase_YearOf360Days); */
-	/* tcase_add_checked_fixture(tcase_YearOf360Days, setup_YearOf360Days, teardown); */
-	/* tcase_add_test(tcase_YearOf360Days, test_timeDeltaToJulianDelta_YearOf360Days); */
-
-        /* TCase *tcase_timedeltaCompute = tcase_create("mtime_timedelta_computations"); */
-	/* tcase_add_checked_fixture(tcase_timedeltaCompute, setup_ProlepticGregorian, teardown); */
-        /* suite_add_tcase(suite,tcase_timedeltaCompute); */
-        /* tcase_add_test(tcase_timedeltaCompute,test_timeDeltaAddLeadingZero); */
-        /* tcase_add_test(tcase_timedeltaCompute,test_mtime_add_months); */
-        /* tcase_add_test(tcase_timedeltaCompute,test_mtime_add_months_atEnd); */
-        /* tcase_add_test(tcase_timedeltaCompute,test_add_negative_delta); */
-        /* tcase_add_test(tcase_timedeltaCompute,test_event_at_end_of_month); */
-        /* tcase_add_test(tcase_timedeltaCompute,test_timeDeltaMilliseconds); */
+	TCase *tcase_YearOf365Days = tcase_create("mtime_time_test_YearOf365Days");
+	suite_add_tcase(suite, tcase_YearOf365Days);
+	tcase_add_checked_fixture(tcase_YearOf365Days, setup_YearOf365Days, teardown);
+	tcase_add_test(tcase_YearOf365Days, test_timeDeltaToJulianDelta_YearOf365Days);
+
+	TCase *tcase_YearOf360Days = tcase_create("mtime_time_test_YearOf360Days");
+	suite_add_tcase(suite, tcase_YearOf360Days);
+	tcase_add_checked_fixture(tcase_YearOf360Days, setup_YearOf360Days, teardown);
+	tcase_add_test(tcase_YearOf360Days, test_timeDeltaToJulianDelta_YearOf360Days);
+
+        TCase *tcase_timedeltaCompute = tcase_create("mtime_timedelta_computations");
+	tcase_add_checked_fixture(tcase_timedeltaCompute, setup_ProlepticGregorian, teardown);
+        suite_add_tcase(suite,tcase_timedeltaCompute);
+        tcase_add_test(tcase_timedeltaCompute,test_timeDeltaAddLeadingZero);
+        tcase_add_test(tcase_timedeltaCompute,test_mtime_add_months);
+        tcase_add_test(tcase_timedeltaCompute,test_mtime_add_months_atEnd);
+        tcase_add_test(tcase_timedeltaCompute,test_add_negative_delta);
+        tcase_add_test(tcase_timedeltaCompute,test_event_at_end_of_month);
+        tcase_add_test(tcase_timedeltaCompute,test_timeDeltaMilliseconds);
 }
 
 /*** SPECIAL ASSERT FUNCTIONS ***/
@@ -950,13 +945,9 @@ void assertTimeDeltaToJulianDeltaToTimeDelta (const char* base_dt_string, const
 {
 	void* err;
 
-        fprintf(stderr, "TDT test A: %s\n", base_dt_string);
-        
 	struct _datetime* base_dt = newDateTime(base_dt_string);
 	ck_assert(base_dt != NULL);
 
-        fprintf(stderr, "TDT test B: %s\n", td_string);
-        
 	struct _timedelta* td = newTimeDelta(td_string);
 	ck_assert(td != NULL);
 
@@ -964,19 +955,13 @@ void assertTimeDeltaToJulianDeltaToTimeDelta (const char* base_dt_string, const
 	err = timeDeltaToJulianDelta(td, base_dt, &jd);
 	ck_assert(err != NULL);
 
-        fprintf(stderr, "TDT test C: %ld %ld\n", jd.day, jd.ms);
-        
 	struct _timedelta res_td;
 	err = julianDeltaToTimeDelta(&jd, base_dt, &res_td);
 	ck_assert(err != NULL);
 
-        fprintf(stderr, "TDT test D: %d %d %d\n", res_td.month, res_td.day, res_td.hour);
-        
 	char str[MAX_TIMEDELTA_STR_LEN];
 	timedeltaToString(&res_td, str);
 
-        fprintf(stderr, "TDT test E: %s\n", str);
-        
 	ck_assert_msg(compareTimeDelta(td, &res_td) == equal_to, "base datetime %s original %s != %s returned",
 			base_dt_string, td_string, str);