KiCad PCB EDA Suite
Loading...
Searching...
No Matches
test_format_units.cpp
Go to the documentation of this file.
1
/*
2
* This program source code file is part of KiCad, a free EDA CAD application.
3
*
4
* Copyright The KiCad Developers, see AUTHORS.TXT for contributors.
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, you may find one here:
18
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19
* or you may search the http://www.gnu.org website for the version 2 license,
20
* or you may write to the Free Software Foundation, Inc.,
21
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22
*/
23
24
#include <
qa_utils/wx_utils/unit_test_utils.h
>
25
26
#include <
base_units.h
>
27
#include <
eda_units.h
>
28
#include <
locale_io.h
>
29
30
#include <algorithm>
31
#include <iostream>
32
33
struct
UnitFixture
34
{
35
};
36
37
41
BOOST_FIXTURE_TEST_SUITE( UnitConversion,
UnitFixture
)
42
43
44
47
BOOST_AUTO_TEST_CASE
( VECTOR2IUnitFormat )
48
{
49
LOCALE_IO
toggle;
50
51
#ifdef EESCHEMA
52
const
EDA_IU_SCALE
& iuScale =
schIUScale
;
53
#elif GERBVIEW
54
const
EDA_IU_SCALE
& iuScale =
gerbIUScale
;
55
#elif PCBNEW
56
const
EDA_IU_SCALE
& iuScale =
pcbIUScale
;
57
#endif
58
59
std::string str =
EDA_UNIT_UTILS::FormatInternalUnits
( iuScale,
VECTOR2I
( 123456, 52525252 ) );
60
std::string strZero =
EDA_UNIT_UTILS::FormatInternalUnits
( iuScale,
VECTOR2I
( 0, 0 ) );
61
std::string strNeg =
EDA_UNIT_UTILS::FormatInternalUnits
( iuScale,
VECTOR2I
( -123456, -52525252 ) );
62
std::string strOddNeg =
EDA_UNIT_UTILS::FormatInternalUnits
( iuScale,
VECTOR2I
( -350000, -0 ) );
63
std::string strMax =
EDA_UNIT_UTILS::FormatInternalUnits
( iuScale,
VECTOR2I
( std::numeric_limits<int>::min(), std::numeric_limits<int>::max() ) );
64
65
BOOST_CHECK_EQUAL
( strZero,
"0 0"
);
66
67
#ifdef EESCHEMA
68
BOOST_CHECK_EQUAL
( str,
"12.3456 5252.5252"
);
69
BOOST_CHECK_EQUAL
( strNeg,
"-12.3456 -5252.5252"
);
70
BOOST_CHECK_EQUAL
( strMax,
"-214748.3648 214748.3647"
);
71
BOOST_CHECK_EQUAL
( strOddNeg,
"-35 0"
);
72
#elif GERBVIEW
73
BOOST_CHECK_EQUAL
( str,
"1.23456 525.25252"
);
74
BOOST_CHECK_EQUAL
( strNeg,
"-1.23456 -525.25252"
);
75
BOOST_CHECK_EQUAL
( strMax,
"-21474.83648 21474.83647"
);
76
BOOST_CHECK_EQUAL
( strOddNeg,
"-3.5 0"
);
77
#elif PCBNEW
78
BOOST_CHECK_EQUAL
( str,
"0.123456 52.525252"
);
79
BOOST_CHECK_EQUAL
( strNeg,
"-0.123456 -52.525252"
);
80
BOOST_CHECK_EQUAL
( strMax,
"-2147.483648 2147.483647"
);
81
BOOST_CHECK_EQUAL
( strOddNeg,
"-0.35 0"
);
82
#endif
83
84
}
85
86
87
BOOST_AUTO_TEST_SUITE_END
()
base_units.h
schIUScale
constexpr EDA_IU_SCALE schIUScale
Definition
base_units.h:114
pcbIUScale
constexpr EDA_IU_SCALE pcbIUScale
Definition
base_units.h:112
gerbIUScale
constexpr EDA_IU_SCALE gerbIUScale
Definition
base_units.h:111
LOCALE_IO
Instantiate the current locale within a scope in which you are expecting exceptions to be thrown.
Definition
locale_io.h:41
eda_units.h
locale_io.h
EDA_UNIT_UTILS::FormatInternalUnits
KICOMMON_API std::string FormatInternalUnits(const EDA_IU_SCALE &aIuScale, int aValue)
Converts aValue from internal units to a string appropriate for writing to file.
Definition
eda_units.cpp:194
EDA_IU_SCALE
Definition
base_units.h:75
UnitFixture
Definition
test_format_units.cpp:34
BOOST_AUTO_TEST_CASE
BOOST_AUTO_TEST_CASE(HorizontalAlignment)
Definition
test_api_enums.cpp:134
BOOST_AUTO_TEST_SUITE_END
BOOST_AUTO_TEST_SUITE_END()
BOOST_CHECK_EQUAL
BOOST_CHECK_EQUAL(result, "25.4")
unit_test_utils.h
VECTOR2I
VECTOR2< int32_t > VECTOR2I
Definition
vector2d.h:695
src
qa
tests
common
test_format_units.cpp
Generated on Mon Oct 13 2025 00:06:27 for KiCad PCB EDA Suite by
1.13.2