mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 14:55:36 +08:00
122 lines
4.1 KiB
C++
122 lines
4.1 KiB
C++
/* Copyright (C) 2013 VATSIM Community / contributors
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "samplesphysicalquantities.h"
|
|
|
|
using namespace BlackMisc::PhysicalQuantities;
|
|
|
|
namespace BlackMiscTest
|
|
{
|
|
|
|
/**
|
|
* Running the quantities
|
|
*/
|
|
int CSamplesPhysicalQuantities::samples()
|
|
{
|
|
|
|
// cases which must not work
|
|
// CMeasurementUnit mu; //must not work
|
|
// CLengthUnit du1(CAngleUnit::rad());
|
|
|
|
CMeasurementPrefix pf1 = CMeasurementPrefix::h();
|
|
CMeasurementPrefix pf2 = CMeasurementPrefix::M();
|
|
qDebug() << pf1 << pf2 << (1.0 * pf1.toDouble());
|
|
|
|
CLengthUnit lu1(CLengthUnit::cm());
|
|
CLengthUnit lu2(CLengthUnit::ft());
|
|
QString lu1s = lu1.toQString(true);
|
|
QString lu2s = lu2.toQString(true);
|
|
qDebug() << lu1 << lu2 << lu1s << lu2s << lu1.getName(true) << lu2.getName(true);
|
|
const CLength l1(5.0, CLengthUnit::ft()); // 5 ft
|
|
CLength l2(1, CLengthUnit::NM()); // 1NM
|
|
CLength l3(1, CLengthUnit::km());
|
|
CLength l4(l3);
|
|
|
|
qDebug() << CLengthUnit::ft();
|
|
qDebug() << l1 << l2 << l3 << l4;
|
|
qDebug() << l1.valueRoundedWithUnit(CLengthUnit::ft(), 5)
|
|
<< l2.valueRoundedWithUnit(CLengthUnit::km());
|
|
qDebug() << l3.getUnit();
|
|
|
|
|
|
l2.switchUnit(CLengthUnit::ft()); // now in ft
|
|
l3 += l3; // 2km now
|
|
l3 *= 1.5;// 3km now
|
|
qDebug() << l2 << l3;
|
|
|
|
l3 = l3 * 2;
|
|
qDebug() << "doubled l3:" << l3;
|
|
|
|
|
|
CFrequency f1(1E6, CFrequencyUnit::Hz()); // 1MHz
|
|
qDebug() << f1 << f1.valueRoundedWithUnit(CFrequencyUnit::MHz()) << f1.valueRoundedWithUnit(CFrequencyUnit::GHz(), 3);
|
|
|
|
CSpeed s1 = CSpeed(100, CSpeedUnit::km_h());
|
|
CSpeed s2 = CSpeed(1000, CSpeedUnit::ft_min());
|
|
CSpeed s3 = CSpeed(s2);
|
|
s3.switchUnit(CSpeedUnit::m_s());
|
|
qDebug() << s1 << s1.convertedSiValueRoundedWithUnit() << s1.valueRoundedWithUnit(CSpeedUnit::NM_h());
|
|
qDebug() << s2 << s3;
|
|
|
|
CAngle a1(180, CAngleUnit::deg());
|
|
CAngle a2(1.5 * CAngle::PI(), CAngleUnit::rad());
|
|
CAngle a3(180.5, CAngleUnit::deg());
|
|
CAngle a4(35.4336, CAngleUnit::sexagesimalDeg()); // 35.72666
|
|
a1 += a2;
|
|
// a1 = d2; // must not work
|
|
qDebug() << a1;
|
|
a1.switchUnit(CAngleUnit::deg());
|
|
// a2 += d1; // must not work
|
|
a2 = a1 + a1;
|
|
|
|
a2.switchUnit(CAngleUnit::deg());
|
|
qDebug() << a1.unitValueRoundedWithUnit() << a1.piFactor();
|
|
qDebug() << a2;
|
|
a3.switchUnit(CAngleUnit::sexagesimalDeg());
|
|
a4.switchUnit(CAngleUnit::deg());
|
|
qDebug() << a3 << a4;
|
|
|
|
CMass w1(1, CMassUnit::t());
|
|
CMass w2(w1);
|
|
w2.switchUnit(CMassUnit::lb());
|
|
qDebug() << w1 << w1.valueRoundedWithUnit(CMassUnit::kg()) << w2;
|
|
|
|
CPressure p1(1013.25, CPressureUnit::hPa());
|
|
qDebug() << p1 << p1.valueRoundedWithUnit(CPressureUnit::psi()) << p1.valueRoundedWithUnit(CPressureUnit::inHg());
|
|
|
|
CTemperature t1;
|
|
CTemperature t2(20, CTemperatureUnit::C());
|
|
CTemperature t3(1, CTemperatureUnit::F());
|
|
qDebug() << t1 << t2 << t2.convertedSiValueRoundedWithUnit(true);
|
|
qDebug() << t3.valueRoundedWithUnit(CTemperatureUnit::F(), -1 ,true) << t3.valueRoundedWithUnit(CTemperatureUnit::C(), -1, true) << "I18N/UTF";
|
|
|
|
// some logging with CLogMessage
|
|
// bDebug << p1;
|
|
// bDebug << p1.getUnit() << p1.getUnit().getMultiplier();
|
|
|
|
// some of the faults Mathew has pointed out, not longer possible
|
|
// CAngleUnit::rad() = CAngleUnit::deg();
|
|
// qDebug() << CAngleUnit::rad(); // wrong
|
|
|
|
(t1 - t2).switchUnit(CTemperatureUnit::F()); // was not working since wrong return type const
|
|
// CLengthUnit duA(CSpeedUnit::ft_min()); // no longer possible
|
|
CLengthUnit duB(CLengthUnit::cm());
|
|
qDebug() << duB;
|
|
|
|
CTime ti1(1, CTimeUnit::h());
|
|
CTime ti2(ti1);
|
|
ti2.switchUnit(CTimeUnit::ms());
|
|
qDebug() << ti1 << ti2;
|
|
|
|
CAcceleration ac1(10, CAccelerationUnit::m_s2());
|
|
qDebug() << ac1 << ac1.unitValueRoundedWithUnit(-1, true) << "I18N/UTF";
|
|
|
|
// bye
|
|
qDebug() << "-----------------------------------------------";
|
|
return 0;
|
|
}
|
|
|
|
} // namespace
|