Loading files
4f95ecaa3This file is pinned to the selected release. Download the original to open it in your design tool.
// Copyright (c) 2025 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <UnitsAPI.hxx>
#include <gtest/gtest.h>
// Test BUC60727: UnitsAPI unit conversion
// Migrated from QABugs_3.cxx
TEST(UnitsAPI_Test, BUC60727_AnyToLS_Conversion)
{
// Set local system to MDTV (Millimeter, Degree, Ton, Velocity)
UnitsAPI::SetLocalSystem(UnitsAPI_MDTV);
// Test conversion: 3 mm in the MDTV system should remain 3
// (since the base unit for length in MDTV is millimeter)
double aResult = UnitsAPI::AnyToLS(3.0, "mm");
EXPECT_DOUBLE_EQ(3.0, aResult);
}
// Test of fix for bug 33176: UnitsAPI::AnyToAny must not crash when one of the units is unknown.
TEST(UnitsAPI_Test, AnyToAny_UnknownUnit)
{
// Attempt to convert using an unknown unit, should not crash and return the input value.
const double aResult1 = UnitsAPI::AnyToAny(1.0, "unknown_unit", "mm");
const double aResult2 = UnitsAPI::AnyToAny(1.0, "mm", "unknown_unit");
EXPECT_DOUBLE_EQ(1.0, aResult1);
EXPECT_DOUBLE_EQ(1.0, aResult2);
}