/
spivag
/
command_occ
Обзор
Документация
Войти
/
spivag
/
command_occ
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
initial
tests/test_part_instance_constraints.cpp
46 строк
2 KB
Spivakov
Initial
10 апр 2026, 13:45
10 апр 2026, 13:45
b2ad868
Код
Авторство
О чём код?
#include <gtest/gtest.h> #include "part_structure.h" #include "part_mating.h" #include <memory> using namespace std; TEST(PartInstanceConstraints, RegisterAndIterate) { auto root = make_shared< PartInstance >("root"); auto child = make_shared< PartInstance >("child"); // Простые заглушки для ссылок на экземпляры деталей // Используем AddPartInstance, который создаёт PartInstanceReference MbPlacement3D placement; // по умолчанию auto ref1 = root->AddPartInstance(child, placement, "r1"); auto ref2 = root->AddPartInstance(child, placement, "r2"); // Для теста создания ConstraintElement используем nullptr для TopologyHandle (т.к. мы не вызываем методы GCM) std::shared_ptr< TopologyHandle > topo{}; ConstraintElement ce1(ref1, topo); ConstraintElement ce2(ref2, topo); CoaxialConstraint c1(ce1, ce2, GCM_constraint{}); CoincidenceConstraint c2(ce2, ce1, MateOrientation::same, GCM_constraint{}); // Регистрируем ограничения напрямую root->RegisterConstraint( PartInstance::ConstraintVariant{ c1 } ); root->RegisterConstraint( PartInstance::ConstraintVariant{ c2 } ); auto it = root->GetConstraintsIterator(); ASSERT_TRUE(it->HasNext()); auto v1 = it->Constraint(); EXPECT_TRUE(std::holds_alternative< CoaxialConstraint >(v1)); it->Next(); ASSERT_TRUE(it->HasNext()); auto v2 = it->Constraint(); EXPECT_TRUE(std::holds_alternative< CoincidenceConstraint >(v2)); it->Next(); EXPECT_FALSE(it->HasNext()); }