Commit 84d801d3 authored by aorlati's avatar aorlati Committed by Giuseppe Carboni
Browse files

fix issue #271: problem related to integers beeing 4 bytes not 8 byte on 64...

fix issue #271: problem related to integers beeing 4 bytes not 8 byte on 64 bits platoform, so the correct format specifier is d not ld
parent 3d3cad39
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -714,7 +714,12 @@ bool CIRATools::radToHourAngle(const double& rad,IRA::CString& outString,char de
	int hmsf[4];
	double ranged=dmod(rad,D2PI); // put the angle in the range -2PI..2PI
	slaDr2tf(3,ranged,&sign,hmsf); // convert it into hour minute second and fraction
	outString.Format("%c%02ld%c%02ld%c%02ld.%03ld",sign,hmsf[0],delimiter,hmsf[1],delimiter,hmsf[2],hmsf[3]);
	if (sign=='+') {
		outString.Format("%02d%c%02d%c%02d.%03d",hmsf[0],delimiter,hmsf[1],delimiter,hmsf[2],hmsf[3]);
	}
	else {
		outString.Format("%c%02d%c%02d%c%02d.%03d",sign,hmsf[0],delimiter,hmsf[1],delimiter,hmsf[2],hmsf[3]);
	}
	return true;
}

@@ -775,7 +780,12 @@ bool CIRATools::radToSexagesimalAngle(const double& rad,IRA::CString& outString,
	double ranged=dmod(rad,D2PI); // put the angle in the range -2PI..2PI
	// convert it into hour minute second anf fraction..keeping track of the sign
	slaDr2af(3,ranged,&sign,dmsf); 
	outString.Format("%c%02ld%c%02ld%c%02ld.%03ld",sign,dmsf[0],delimiter,dmsf[1],delimiter,dmsf[2],dmsf[3]);
	if (sign=='+') {
		outString.Format("%02d%c%02d%c%02d.%03d",dmsf[0],delimiter,dmsf[1],delimiter,dmsf[2],dmsf[3]);
	}
	else {
		outString.Format("%c%02d%c%02d%c%02d.%03d",sign,dmsf[0],delimiter,dmsf[1],delimiter,dmsf[2],dmsf[3]);
	}
	return true;
}

+55 −0
Original line number Diff line number Diff line
#include "IRATools.h"
#include "String.h"

#include <stdlib.h>
#include <slamac.h>

#define DEC2000 "29:40:15.201"
#define RA2000 "04:37:04.370"


namespace IRALibraryTest {

class IRALibrary_CIRATools_regression : public ::testing::Test {
public:
	::testing::AssertionResult radToSexagesimalAngle_badconversion() {	
		double dec;
		IRA::CString outdec;
		RecordProperty("description","check the conversion of arc seconds which seems screwed up after 64 bit migration");
		IRA::CIRATools::sexagesimalAngleToRad(DEC2000,dec,true);		
		IRA::CIRATools::radToSexagesimalAngle(dec,outdec);	
		if (outdec!=DEC2000) {
			return ::testing::AssertionFailure() << " unexpected arc seconds conversion";
		}
		return ::testing::AssertionSuccess();
	}

	::testing::AssertionResult radToHourAngle_badconversion() {	
		double ra;
		IRA::CString outra;
		RecordProperty("description","check the conversion of arc seconds which seems screwed up after 64 bit migration");
		IRA::CIRATools::hourAngleToRad(RA2000,ra,true);
		IRA::CIRATools::radToHourAngle(ra,outra);		
		if (outra!=RA2000) {
			return ::testing::AssertionFailure() << " unexpected arc seconds conversion";
		}
		return ::testing::AssertionSuccess();
	}

protected:

	static void TearDownTestCase()
	{
	}

	static void SetUpTestCase()
	{
	}

	virtual void SetUp() {
	}
	virtual void TearDown() {
	}
};

}
+10 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@

#include "CError_regression.i"
#include "CDBTable_regression.i"
#include "CIRATools_regression.i"

#include "CString_test.i"

@@ -92,3 +93,12 @@ TEST_F(IRALibrary_BaseConverter,decToBin_checkConversion) {
TEST_F(IRALibrary_BaseConverter,decToHex_checkConversion) {
	EXPECT_TRUE(decToHex_checkConversion());
}

TEST_F(IRALibrary_CIRATools_regression,radToSexagesimalAngle_badconversion) {
	EXPECT_TRUE(radToSexagesimalAngle_badconversion());
}

TEST_F(IRALibrary_CIRATools_regression,radToHourAngle_badconversion) {
	EXPECT_TRUE(radToHourAngle_badconversion());
}
+1 −1

File changed.

Contains only whitespace changes.