3 XCSoar Glide Computer - http://www.xcsoar.org/
4 Copyright (C) 2000-2013 The XCSoar Project
5 A detailed list of copyright holders can be found in the file "AUTHORS".
7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License
9 as published by the Free Software Foundation; either version 2
10 of the License, or (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 #include "Units/Units.hpp"
24 #include "TestUtil.hpp"
26 int main(int argc
, char **argv
)
30 UnitSetting
&config
= Units::current
;
32 config
.distance_unit
= Unit::METER
;
33 ok1(equals(Units::ToUserDistance(fixed(1)), 1));
35 config
.distance_unit
= Unit::KILOMETER
;
36 ok1(equals(Units::ToUserDistance(fixed(1)), 0.001));
38 config
.temperature_unit
= Unit::KELVIN
;
39 ok1(equals(Units::ToUserTemperature(fixed(0)), fixed(0)));
40 ok1(equals(Units::ToSysTemperature(fixed(0)), fixed(0)));
42 config
.temperature_unit
= Unit::DEGREES_CELCIUS
;
43 ok1(equals(Units::ToUserTemperature(fixed(0)), -273.15));
44 ok1(equals(Units::ToUserTemperature(fixed(20)), -253.15));
45 ok1(equals(Units::ToSysTemperature(fixed(0)), 273.15));
46 ok1(equals(Units::ToSysTemperature(fixed(20)), 293.15));
48 config
.temperature_unit
= Unit::DEGREES_FAHRENHEIT
;
49 ok1(equals(Units::ToUserTemperature(fixed(0)), -459.67));
50 ok1(equals(Units::ToSysTemperature(fixed(0)), 255.37));
52 ok1(equals(Units::ToUserUnit(fixed(1013.25), Unit::TORR
), 760));
53 ok1(equals(Units::ToUserUnit(fixed(1013.25), Unit::INCH_MERCURY
), 29.92));