mirror of https://github.com/ecmwf/eccodes.git
Testing: Julian dates
This commit is contained in:
parent
29fb827391
commit
1eb99c0bf8
|
@ -14,18 +14,14 @@
|
||||||
#define EPSILON 1e-12
|
#define EPSILON 1e-12
|
||||||
#define DBL_EQUAL(a, b) (fabs((a) - (b)) <= (EPSILON)*fabs((a)))
|
#define DBL_EQUAL(a, b) (fabs((a) - (b)) <= (EPSILON)*fabs((a)))
|
||||||
|
|
||||||
#define BOOL int
|
static bool Check(
|
||||||
#define TRUE 1
|
|
||||||
#define FALSE 0
|
|
||||||
|
|
||||||
static BOOL Check(
|
|
||||||
const long year1, const long month1, const long day1, const long hour1, const long min1, const long sec1,
|
const long year1, const long month1, const long day1, const long hour1, const long min1, const long sec1,
|
||||||
const long year2, const long month2, const long day2, const long hour2, const long min2, const long sec2)
|
const long year2, const long month2, const long day2, const long hour2, const long min2, const long sec2)
|
||||||
{
|
{
|
||||||
if (year1 != year2 || month1 != month2 || day1 != day2 || hour1 != hour2 || min1 != min2 || sec1 != sec2) {
|
if (year1 != year2 || month1 != month2 || day1 != day2 || hour1 != hour2 || min1 != min2 || sec1 != sec2) {
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void TestDateTime(const long year, const long month, const long day, const long hour, const long min, const long sec)
|
static void TestDateTime(const long year, const long month, const long day, const long hour, const long min, const long sec)
|
||||||
|
@ -184,6 +180,7 @@ static void Test3()
|
||||||
static void Test4()
|
static void Test4()
|
||||||
{
|
{
|
||||||
const long iyear = 1582;
|
const long iyear = 1582;
|
||||||
|
printf("Test4...\n");
|
||||||
|
|
||||||
TestDateTime(iyear, 9, 1, 1, 0, 0);
|
TestDateTime(iyear, 9, 1, 1, 0, 0);
|
||||||
TestDateTime(iyear, 9, 2, 1, 0, 0);
|
TestDateTime(iyear, 9, 2, 1, 0, 0);
|
||||||
|
@ -215,6 +212,21 @@ static void Test4()
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void Test5()
|
||||||
|
{
|
||||||
|
printf("Test5...\n");
|
||||||
|
double jd = 0.0;
|
||||||
|
long year=2017, month=2, day=29, hour=0, min=0, sec=0; // Feb 2017 had 28 days
|
||||||
|
long year1, month1, day1, hour1, min1, sec1;
|
||||||
|
|
||||||
|
codes_datetime_to_julian(year, month, day, hour, min, sec, &jd);
|
||||||
|
codes_julian_to_datetime(jd, &year1, &month1, &day1, &hour1, &min1, &sec1);
|
||||||
|
|
||||||
|
if (Check(year, month, day, hour, min, sec, year1, month1, day1, hour1, min1, sec1)) {
|
||||||
|
Assert(!"Bad input should have failed checks");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
Test0();
|
Test0();
|
||||||
|
@ -222,6 +234,7 @@ int main(int argc, char* argv[])
|
||||||
Test2();
|
Test2();
|
||||||
Test3();
|
Test3();
|
||||||
Test4();
|
Test4();
|
||||||
|
Test5();
|
||||||
printf("All OK\n");
|
printf("All OK\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue