KiCad PCB EDA Suite
Loading...
Searching...
No Matches
test_construction_geom.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, see <https://www.gnu.org/licenses/>.
18
*/
19
20
#include <boost/test/unit_test.hpp>
21
22
#include <
preview_items/construction_geom.h
>
23
#include <
tool/construction_manager.h
>
24
25
26
BOOST_AUTO_TEST_SUITE
( ConstructionGeom )
27
28
29
BOOST_AUTO_TEST_CASE
( HorizontalDimensionBracketHasPerpendicularEndTicks )
30
{
31
std::array<SEG, 3> segments =
32
KIGFX::CONSTRUCTION_GEOM::DimensionBracketSegments
(
SEG
( { 10, 20 }, { 40, 20 } ), 6 );
33
34
BOOST_CHECK_EQUAL
( segments[0].
A
,
VECTOR2I
( 10, 20 ) );
35
BOOST_CHECK_EQUAL
( segments[0].
B
,
VECTOR2I
( 40, 20 ) );
36
BOOST_CHECK_EQUAL
( segments[1].
A
,
VECTOR2I
( 10, 17 ) );
37
BOOST_CHECK_EQUAL
( segments[1].
B
,
VECTOR2I
( 10, 23 ) );
38
BOOST_CHECK_EQUAL
( segments[2].
A
,
VECTOR2I
( 40, 17 ) );
39
BOOST_CHECK_EQUAL
( segments[2].
B
,
VECTOR2I
( 40, 23 ) );
40
}
41
42
43
BOOST_AUTO_TEST_CASE
( VerticalDimensionBracketHasPerpendicularEndTicks )
44
{
45
std::array<SEG, 3> segments =
46
KIGFX::CONSTRUCTION_GEOM::DimensionBracketSegments
(
SEG
( { 10, 20 }, { 10, 50 } ), 6 );
47
48
BOOST_CHECK_EQUAL
( segments[0].
A
,
VECTOR2I
( 10, 20 ) );
49
BOOST_CHECK_EQUAL
( segments[0].
B
,
VECTOR2I
( 10, 50 ) );
50
BOOST_CHECK_EQUAL
( segments[1].
A
,
VECTOR2I
( 7, 20 ) );
51
BOOST_CHECK_EQUAL
( segments[1].
B
,
VECTOR2I
( 13, 20 ) );
52
BOOST_CHECK_EQUAL
( segments[2].
A
,
VECTOR2I
( 7, 50 ) );
53
BOOST_CHECK_EQUAL
( segments[2].
B
,
VECTOR2I
( 13, 50 ) );
54
}
55
56
57
BOOST_AUTO_TEST_CASE
( DimensionBracketOffsetsOutsideObjectEdge )
58
{
59
std::array<SEG, 3> segments =
60
KIGFX::CONSTRUCTION_GEOM::DimensionBracketSegments
(
SEG
( { 10, 20 }, { 10, 50 } ), 6, 8 );
61
62
BOOST_CHECK_EQUAL
( segments[0].
A
,
VECTOR2I
( 18, 20 ) );
63
BOOST_CHECK_EQUAL
( segments[0].
B
,
VECTOR2I
( 18, 50 ) );
64
BOOST_CHECK_EQUAL
( segments[1].
A
,
VECTOR2I
( 15, 20 ) );
65
BOOST_CHECK_EQUAL
( segments[1].
B
,
VECTOR2I
( 21, 20 ) );
66
}
67
68
69
BOOST_AUTO_TEST_CASE
( SnapManagerOwnsDimensionBracketLifecycle )
70
{
71
KIGFX::CONSTRUCTION_GEOM
geometry;
72
SNAP_MANAGER
manager( geometry );
73
74
manager.
SetDimensionBrackets
( {
SEG
( { 10, 20 }, { 40, 20 } ),
SEG
( { 50, 20 }, { 80, 20 } ) } );
75
76
BOOST_REQUIRE_EQUAL( geometry.
DimensionBrackets
().size(), 2 );
77
manager.
Clear
();
78
BOOST_CHECK( geometry.
DimensionBrackets
().empty() );
79
}
80
81
82
BOOST_AUTO_TEST_SUITE_END
()
B
Definition
test_property.cpp:52
KIGFX::CONSTRUCTION_GEOM
Shows construction geometry for things like line extensions, arc centers, etc.
Definition
construction_geom.h:41
KIGFX::CONSTRUCTION_GEOM::DimensionBrackets
const std::vector< SEG > & DimensionBrackets() const
Definition
construction_geom.h:71
KIGFX::CONSTRUCTION_GEOM::DimensionBracketSegments
static std::array< SEG, 3 > DimensionBracketSegments(const SEG &aSpan, int aTickLength, int aOffset=0)
Definition
construction_geom.cpp:40
SEG
Definition
seg.h:38
SNAP_MANAGER
A SNAP_MANAGER glues together the snap line manager and construction manager., along with some other ...
Definition
construction_manager.h:276
SNAP_MANAGER::Clear
void Clear()
Definition
construction_manager.cpp:898
SNAP_MANAGER::SetDimensionBrackets
void SetDimensionBrackets(std::vector< SEG > aBrackets)
Definition
construction_manager.cpp:774
construction_geom.h
construction_manager.h
A
Definition
test_ki_any.cpp:97
BOOST_AUTO_TEST_CASE
BOOST_AUTO_TEST_CASE(HorizontalAlignment)
Definition
test_api_enums.cpp:72
BOOST_AUTO_TEST_SUITE
BOOST_AUTO_TEST_SUITE(CadstarPartParser)
BOOST_AUTO_TEST_CASE
BOOST_AUTO_TEST_CASE(HorizontalDimensionBracketHasPerpendicularEndTicks)
Definition
test_construction_geom.cpp:29
BOOST_AUTO_TEST_SUITE_END
BOOST_AUTO_TEST_SUITE_END()
BOOST_CHECK_EQUAL
BOOST_CHECK_EQUAL(result, "25.4")
VECTOR2I
VECTOR2< int32_t > VECTOR2I
Definition
vector2d.h:683
src
qa
tests
common
test_construction_geom.cpp
Generated on Fri Jul 31 2026 00:08:01 for KiCad PCB EDA Suite by
1.13.2