summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Paviot <tpaviot@gmail.com>2011-11-27 06:46:13 -0800
committerThomas Paviot <tpaviot@gmail.com>2011-11-27 06:46:13 -0800
commit58631cbf2cbf1cb02f4e8dab8e35cf534f83e7a5 (patch)
tree8f6da8ba953ff58cba996907e5306a6a99b0b5ce
parent98f14d60bf55369fff312da47709c6ecaf3f1996 (diff)
parentf4b1c63be4b2090e35b6b6e1da5c06bf3a9c4adc (diff)
downloadoce-58631cbf2cbf1cb02f4e8dab8e35cf534f83e7a5.tar.gz
oce-58631cbf2cbf1cb02f4e8dab8e35cf534f83e7a5.zip
Merge pull request #197 from tpaviot/review/fix-bug-195
Solves a copy-paste bug in TDataXtd_PatternStd (bug #195)
-rw-r--r--src/TDataXtd/TDataXtd_PatternStd.cxx4
-rw-r--r--test/TDataXtd_test/CMakeLists.txt1
-rw-r--r--test/TDataXtd_test/TDataXtd_test.cpp52
3 files changed, 55 insertions, 2 deletions
diff --git a/src/TDataXtd/TDataXtd_PatternStd.cxx b/src/TDataXtd/TDataXtd_PatternStd.cxx
index 064a8261..8f8a4421 100644
--- a/src/TDataXtd/TDataXtd_PatternStd.cxx
+++ b/src/TDataXtd/TDataXtd_PatternStd.cxx
@@ -188,8 +188,8 @@ void TDataXtd_PatternStd::NbInstances1(const Handle(TDataStd_Integer)& NbInstanc
void TDataXtd_PatternStd::NbInstances2(const Handle(TDataStd_Integer)& NbInstances2)
{
// OCC2932 correction
- if(!myNb1.IsNull())
- if(myNb1->Get() == NbInstances2->Get())
+ if(!myNb2.IsNull())
+ if(myNb2->Get() == NbInstances2->Get())
return;
Backup();
diff --git a/test/TDataXtd_test/CMakeLists.txt b/test/TDataXtd_test/CMakeLists.txt
new file mode 100644
index 00000000..6da9b0da
--- /dev/null
+++ b/test/TDataXtd_test/CMakeLists.txt
@@ -0,0 +1 @@
+ADD_OCE_TEST(TDataXtd_test "TKCAF;TKXCAF")
diff --git a/test/TDataXtd_test/TDataXtd_test.cpp b/test/TDataXtd_test/TDataXtd_test.cpp
new file mode 100644
index 00000000..0d984b1d
--- /dev/null
+++ b/test/TDataXtd_test/TDataXtd_test.cpp
@@ -0,0 +1,52 @@
+#include "TDataXtd_PatternStd.hxx"
+#include "TDF_Label.hxx"
+#include "XCAFApp_Application.hxx"
+#include "TDocStd_Document.hxx"
+#include "TDataStd_Integer.hxx"
+#include "TDataStd_Real.hxx"
+#include "TDataXtd_Array1OfTrsf.hxx"
+#include "TNaming_NamedShape.hxx"
+
+#include <gtest/gtest.h>
+
+TEST(TDataXtdTestSuite, testPattern)
+{
+ Handle(TDocStd_Document) document;
+ Handle (XCAFApp_Application) anApp = XCAFApp_Application::GetApplication();
+ anApp->NewDocument("", document);
+ Handle(TNaming_NamedShape) axis1 = new TNaming_NamedShape();
+ ASSERT_FALSE(axis1.IsNull());
+ Handle(TNaming_NamedShape) axis2 = new TNaming_NamedShape();
+ ASSERT_FALSE(axis2.IsNull());
+ TDF_Label patternsLabel = document->Main();
+ TDF_Label newPatternLabel = TDF_TagSource::NewChild(patternsLabel);
+ // adding the pattern data as an attribute
+ Handle(TDataXtd_PatternStd) pattern = TDataXtd_PatternStd::Set(newPatternLabel);
+ ASSERT_FALSE(pattern.IsNull());
+ pattern->Signature(3);
+ TDF_Label nbInst1Lab = TDF_TagSource::NewChild(newPatternLabel);
+ Handle(TDataStd_Integer) nbInst1Attr = TDataStd_Integer::Set(nbInst1Lab,5);
+ ASSERT_FALSE(nbInst1Attr.IsNull());
+ pattern->NbInstances1(nbInst1Attr);
+ TDF_Label nbInst2Lab = TDF_TagSource::NewChild(newPatternLabel);
+ Handle(TDataStd_Integer) nbInst2Attr = TDataStd_Integer::Set(nbInst2Lab,5);
+ ASSERT_FALSE(nbInst2Attr.IsNull());
+ pattern->NbInstances2(nbInst2Attr);
+ TDF_Label value1Lab = TDF_TagSource::NewChild(newPatternLabel);
+ Handle(TDataStd_Real) value1Attr = TDataStd_Real::Set(value1Lab,20);
+ ASSERT_FALSE(value1Attr.IsNull());
+ pattern->Value1(value1Attr);
+ TDF_Label value2Lab = TDF_TagSource::NewChild(newPatternLabel);
+ Handle(TDataStd_Real) value2Attr = TDataStd_Real::Set(value2Lab,20);
+ ASSERT_FALSE(value2Attr.IsNull());
+ pattern->Value2(value2Attr);
+ pattern->Axis1(axis1);
+ pattern->Axis2(axis2);
+ TDataXtd_Array1OfTrsf trsfArray(0, pattern->NbTrsfs());
+ pattern->ComputeTrsfs(trsfArray);
+}
+
+int main(int argc, char **argv){
+ testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();
+}