diff -r 61e9400fe245 -r 0cb2248d0edc apicompatanamdw/bcdrivers/os/lbs/LocAcquisition/src/testlocality.cpp --- /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(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; + }