--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/apicompatanamdw/bcdrivers/os/lbs/LocAcquisition/src/testlocality.cpp Thu Apr 22 17:15:08 2010 +0530
@@ -0,0 +1,357 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Helper class for TLocality class
+*
+*/
+
+
+// System Includes
+
+
+// User Includes
+#include "testlocality.h"
+
+// Constant Declarations
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// C++ Default Constructor
+// ---------------------------------------------------------------------------
+//
+TTestLocality ::TTestLocality (CStifLogger* aLog):iLog(aLog)
+ {
+
+ }
+
+// ---------------------------------------------------------------------------
+// C++ Destructor
+// ---------------------------------------------------------------------------
+//
+TTestLocality ::~TTestLocality ()
+ {
+
+ }
+
+// -----------------------------------------------------------------------------
+// This method calls the respective constructor based on the number of arguments
+// -----------------------------------------------------------------------------
+//
+TInt TTestLocality ::CreateLocality(CStifItemParser& aItem)
+ {
+ TInt lat = 0;
+ TInt lon = 0;
+ TInt alt = 0;
+ TInt haccuracy = 0;
+ TInt vaccuracy = 0;
+
+ TInt error1 = aItem.GetNextInt(lat);
+ TInt error2 = aItem.GetNextInt(lon);
+ TInt error3 = aItem.GetNextInt(alt);
+ TInt error4 = aItem.GetNextInt(haccuracy);
+ TInt error5 = aItem.GetNextInt(vaccuracy);
+ if ( !error1 && !error2 && !error3 )
+ {
+ TCoordinate co_ord(lat,lon,alt);
+ if(!error4 && !error5)
+ {
+ return Locality2(co_ord,haccuracy,vaccuracy);
+ }
+ else if(!error4)
+ {
+ return Locality1(co_ord,haccuracy);
+ }
+ else
+ return KErrArgument;
+ }
+ else
+ return DefaultConstructor();
+
+
+ }
+
+// ---------------------------------------------------------
+// Test case for Default Constructor of TLocality
+// ---------------------------------------------------------
+//
+TInt TTestLocality :: DefaultConstructor()
+ {
+ TLocality locality;
+
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------
+// Test case for Constructor of TLocality with horizontal accuracy
+// ---------------------------------------------------------
+TInt TTestLocality :: Locality1(TCoordinate& aCoordinate,TReal32 aHorizontalAccuracy)
+ {
+ TLocality locality(aCoordinate,aHorizontalAccuracy);
+ if(locality.HorizontalAccuracy()!=aHorizontalAccuracy)
+ {
+ return KErrGeneral;
+ }
+ else
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------
+// Test case for Constructor of TLocality with horizontal accuracy & vertical accuracy
+// -----------------------------------------------------------------------
+
+TInt TTestLocality :: Locality2(TCoordinate& aCoordinate,TReal32 aHorizontalAccuracy,TReal32 aVerticalAccuracy)
+ {
+ TLocality locality(aCoordinate,aHorizontalAccuracy,aVerticalAccuracy);
+ if(locality.HorizontalAccuracy()!=aHorizontalAccuracy && locality.VerticalAccuracy()!=aVerticalAccuracy)
+ {
+ return KErrGeneral;
+ }
+ else
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------
+// Test case for setting horizontal accuracy
+// -----------------------------------------------------------------------
+
+ TInt TTestLocality :: SetGetHorAccuracy(CStifItemParser& aItem)
+ {
+ TLocality locality;
+ TInt haccuracy = 0;
+ TInt error = aItem.GetNextInt(haccuracy);
+ if(!error)
+ {
+ locality.SetHorizontalAccuracy(haccuracy);
+ if(locality.HorizontalAccuracy()==haccuracy)
+ {
+ return KErrNone;
+ }
+ }
+ return KErrGeneral;
+ }
+
+// -----------------------------------------------------------------------
+// Test case for setting vertical accuracy
+// -----------------------------------------------------------------------
+
+ TInt TTestLocality :: SetGetVerAccuracy(CStifItemParser& aItem)
+ {
+ TLocality locality;
+ TInt vaccuracy = 0;
+ TInt error = aItem.GetNextInt(vaccuracy);
+ if(!error)
+ {
+ locality.SetVerticalAccuracy(vaccuracy);
+ if(locality.VerticalAccuracy()==vaccuracy)
+ {
+ return KErrNone;
+ }
+ }
+ return KErrGeneral;
+ }
+// -----------------------------------------------------------------------
+// Test case for setting horizontal & vertical accuracy
+// -----------------------------------------------------------------------
+
+ TInt TTestLocality :: SetGetAccuracy(CStifItemParser& aItem)
+ {
+ TLocality locality;
+ TInt haccuracy = 0;
+ TInt vaccuracy = 0;
+ TInt error1 = aItem.GetNextInt(haccuracy);
+ TInt error2 = aItem.GetNextInt(vaccuracy);
+ if(!error1 && !error2)
+ {
+ locality.SetAccuracy(haccuracy,vaccuracy);
+ if(locality.HorizontalAccuracy()==haccuracy && locality.VerticalAccuracy()==vaccuracy)
+ {
+ return KErrNone;
+ }
+ }
+ return KErrGeneral;
+ }
+
+// -----------------------------------------------------------------------
+// Test case for obtaining the distance between 2 coordinates
+// -----------------------------------------------------------------------
+
+ TInt TTestLocality :: GetDistance(CStifItemParser& aItem)
+ {
+ TInt lat1 = 0;
+ TInt lon1 = 0;
+ TInt lat2 = 0;
+ TInt lon2 = 0;
+ TPtrC ptr;
+ //TReal32 dist;
+ TReal32 distance = 0;
+ TInt err1 = aItem.GetNextInt(lat1);
+ TInt err2 = aItem.GetNextInt(lon1);
+ TInt err3 = aItem.GetNextInt(lat2);
+ TInt err4 = aItem.GetNextInt(lon2);
+ TInt haccuracy = 0;
+ //TInt err5 = aItem.GetNextString(ptr);
+ //TLex lex(ptr);
+ //lex.Val(dist);
+
+ if(!err1 && !err2 && !err3 && !err4 )
+ {
+ TCoordinate co_ord1(lat1,lon1);
+ TCoordinate co_ord2(lat2,lon2);
+ TLocality locality(co_ord2,haccuracy);
+
+ TInt error = locality.Distance(co_ord1,distance);
+ if(!error)
+ {
+ return KErrNone;
+ }
+ else
+ return KErrArgument;
+
+ }
+ else
+ return KErrArgument;
+
+ }
+
+// -----------------------------------------------------------------------
+// Test case for obtaining the distance between 2 localities
+// -----------------------------------------------------------------------
+ TInt TTestLocality :: GetDistance1(CStifItemParser& aItem)
+ {
+ TInt lat1 = 0;
+ TInt lon1 = 0;
+ TInt lat2 = 0;
+ TInt lon2 = 0;
+ TInt haccuracy1 = 0;
+ TInt haccuracy2 = 0;
+ TInt err1 = aItem.GetNextInt(lat1);
+ TInt err2 = aItem.GetNextInt(lon1);
+ TInt err3 = aItem.GetNextInt(lat2);
+ TInt err4 = aItem.GetNextInt(lon2);
+ TInt err5 = aItem.GetNextInt(haccuracy1);
+ TInt err6 = aItem.GetNextInt(haccuracy2);
+ TReal32 distance;
+ TReal32 delta;
+
+ if(!err1 && !err2 && !err3 && !err4 )
+ {
+
+ TCoordinate co_ord1(lat1,lon1);
+ TCoordinate co_ord2(lat2,lon2);
+ if(!err5 && !err6)
+ {
+ TLocality locality1(co_ord1,haccuracy1);
+ TLocality locality2(co_ord2,haccuracy2);
+ TInt error = locality1.Distance(locality2,distance,delta);
+ if(!error)
+ {
+ return KErrNone;
+ }
+ else
+ return KErrGeneral;
+
+ }
+ else
+ return KErrArgument;
+ }
+ else
+ return KErrArgument;
+
+ }
+
+
+
+// -----------------------------------------------------------------------
+// Test case for obtaining the bearing between 2 coordinates
+// -----------------------------------------------------------------------
+
+ TInt TTestLocality :: GetBearing(CStifItemParser& aItem)
+ {
+ TInt lat1 = 0;
+ TInt lon1 = 0;
+ TInt lat2 = 0;
+ TInt lon2 = 0;
+ //TInt bearing1 = 0;
+ TReal32 bearing2 = 0;
+ TInt err1 = aItem.GetNextInt(lat1);
+ TInt err2 = aItem.GetNextInt(lon1);
+ TInt err3 = aItem.GetNextInt(lat2);
+ TInt err4 = aItem.GetNextInt(lon2);
+ if(!err1 && !err2 && !err3 && !err4 )
+ {
+ TCoordinate co_ord1(lat1,lon1);
+ TCoordinate co_ord2(lat2,lon2);
+ //TReal32 bearing = static_cast<TReal32>(bearing1);
+ TInt error = co_ord1.BearingTo(co_ord2,bearing2);
+ if(!error)
+ {
+ return KErrNone;
+
+ }
+ else
+ return KErrGeneral;
+ }
+ else
+ return KErrArgument;
+
+
+ }
+
+
+
+// -----------------------------------------------------------------------
+// Test case for obtaining the bearing between 2 localities
+// -----------------------------------------------------------------------
+
+ TInt TTestLocality :: GetBearing1(CStifItemParser& aItem)
+ {
+ TInt lat1 = 0;
+ TInt lon1 = 0;
+ TInt lat2 = 0;
+ TInt lon2 = 0;
+ TInt haccuracy1 = 0;
+ TInt haccuracy2 = 0;
+ TInt err1 = aItem.GetNextInt(lat1);
+ TInt err2 = aItem.GetNextInt(lon1);
+ TInt err3 = aItem.GetNextInt(lat2);
+ TInt err4 = aItem.GetNextInt(lon2);
+ TInt err5 = aItem.GetNextInt(haccuracy1);
+ TInt err6 = aItem.GetNextInt(haccuracy2);
+ TReal32 bearing;
+ TReal32 delta;
+
+ if(!err1 && !err2 && !err3 && !err4 )
+ {
+
+ TCoordinate co_ord1(lat1,lon1);
+ TCoordinate co_ord2(lat2,lon2);
+ if(!err5 && !err6)
+ {
+ TLocality locality1(co_ord1,haccuracy1);
+ TLocality locality2(co_ord2,haccuracy2);
+ TInt error = locality1.BearingTo(locality2,bearing,delta);
+ if(!error)
+ {
+ return KErrNone;
+ }
+ else
+ return KErrGeneral;
+ }
+ else
+ return KErrArgument;
+ }
+ else
+ return KErrArgument;
+ }