Sierra Toolkit  Version of the Day
UnitTestFieldRestriction.cpp
1 /*------------------------------------------------------------------------*/
2 /* Copyright 2010 Sandia Corporation. */
3 /* Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive */
4 /* license for use of this work by or on behalf of the U.S. Government. */
5 /* Export of this program may require a license from the */
6 /* United States Government. */
7 /*------------------------------------------------------------------------*/
8 
9 
10 #include <stdexcept>
11 #include <sstream>
12 
13 #include <stk_util/unit_test_support/stk_utest_macros.hpp>
14 
15 #include <stk_mesh/base/FieldRestriction.hpp>
16 #include <stk_mesh/base/Types.hpp>
17 
18 namespace {
19 
20 
21 STKUNIT_UNIT_TEST( UnitTestFieldRestriction, defaultConstruct )
22 {
24  STKUNIT_EXPECT_EQ( fr.part_ordinal(), stk_classic::mesh::InvalidPartOrdinal );
25  for (stk_classic::mesh::Ordinal i = 0 ; i < stk_classic::mesh::MaximumFieldDimension ; ++i) {
26  STKUNIT_EXPECT_EQ( fr.stride(i), 0 );
27  }
28  STKUNIT_EXPECT_EQ( fr.dimension(), 0 );
29 }
30 
31 
32 STKUNIT_UNIT_TEST( UnitTestFieldRestriction, construct )
33 {
35  for (stk_classic::mesh::Ordinal i = 0 ; i < stk_classic::mesh::MaximumFieldDimension ; ++i) {
36  fr.stride(i) = i+1;
37  }
38 
39  STKUNIT_EXPECT_EQ( fr.entity_rank(), 1u );
40  STKUNIT_EXPECT_EQ( fr.part_ordinal(), 2u );
41  const int max_field_dimension = stk_classic::mesh::MaximumFieldDimension;
42  for (int i = 0 ; i < max_field_dimension ; ++i) {
43  STKUNIT_EXPECT_EQ( fr.stride(i), i+1 );
44  }
45  STKUNIT_EXPECT_EQ( fr.dimension(), 1 );
46 }
47 
48 
49 STKUNIT_UNIT_TEST( UnitTestFieldRestriction, copyConstruct )
50 {
52  for (stk_classic::mesh::Ordinal i = 0 ; i < stk_classic::mesh::MaximumFieldDimension ; ++i) {
53  fr.stride(i) = i+1;
54  }
55 
57  STKUNIT_EXPECT_EQ( tmpfr.entity_rank(), 1u );
58  STKUNIT_EXPECT_EQ( tmpfr.part_ordinal(), 2u );
59  const int max_field_dimension = stk_classic::mesh::MaximumFieldDimension;
60  for (int i = 0 ; i < max_field_dimension ; ++i) {
61  STKUNIT_EXPECT_EQ( tmpfr.stride(i), i+1 );
62  }
63  STKUNIT_EXPECT_EQ( tmpfr.dimension(), 1 );
64 }
65 
66 
67 STKUNIT_UNIT_TEST( UnitTestFieldRestriction, operatorEqual )
68 {
70  for (stk_classic::mesh::Ordinal i = 0 ; i < stk_classic::mesh::MaximumFieldDimension ; ++i) {
71  fr.stride(i) = i+1;
72  }
74  for (stk_classic::mesh::Ordinal i = 0 ; i < stk_classic::mesh::MaximumFieldDimension ; ++i) {
75  tmpfr.stride(i) = i+10;
76  }
77 
78  tmpfr = fr;
79  STKUNIT_EXPECT_EQ( tmpfr.entity_rank(), 1u );
80  STKUNIT_EXPECT_EQ( tmpfr.part_ordinal(), 2u );
81  const int max_field_dimension = stk_classic::mesh::MaximumFieldDimension;
82  for (int i = 0 ; i < max_field_dimension ; ++i) {
83  STKUNIT_EXPECT_EQ( tmpfr.stride(i), i+1 );
84  }
85  STKUNIT_EXPECT_EQ( tmpfr.dimension(), 1 );
86 }
87 
88 
89 STKUNIT_UNIT_TEST( UnitTestFieldRestriction, operatorLess )
90 {
91  {
94  STKUNIT_EXPECT_EQ( frA < frB, true );
95  STKUNIT_EXPECT_EQ( frB < frA, false );
96  }
97  {
100  STKUNIT_EXPECT_EQ( frA < frB, true );
101  STKUNIT_EXPECT_EQ( frB < frA, false );
102  }
103  {
106  STKUNIT_EXPECT_EQ( frA < frB, true );
107  STKUNIT_EXPECT_EQ( frB < frA, false );
108  }
109 }
110 
111 
112 STKUNIT_UNIT_TEST( UnitTestFieldRestriction, operatorLessInvalid )
113 {
116  STKUNIT_EXPECT_EQ( frA < frB, true );
117  STKUNIT_EXPECT_EQ( frB < frA, false );
118 }
119 
120 
121 STKUNIT_UNIT_TEST( UnitTestFieldRestriction, operatorEqualEqual_and_NotEqual )
122 {
123  {
125  frA.stride(0) = 25;
127  frB.stride(0) = 10;
128  STKUNIT_EXPECT_EQ( frA == frB, true );
129  STKUNIT_EXPECT_EQ( frA != frB, false );
130  }
131  {
133  frA.stride(0) = 3;
135  frB.stride(0) = 3;
136  STKUNIT_EXPECT_EQ( frA == frB, false );
137  STKUNIT_EXPECT_EQ( frA != frB, true );
138  }
139  {
142  STKUNIT_EXPECT_EQ( frA == frB, false );
143  STKUNIT_EXPECT_EQ( frA != frB, true );
144  }
145  {
148  STKUNIT_EXPECT_EQ( frA == frB, true );
149  STKUNIT_EXPECT_EQ( frA != frB, false );
150  }
151 }
152 
153 
154 STKUNIT_UNIT_TEST( UnitTestFieldRestriction, not_equal_stride )
155 {
156  {
158  frA.stride(0) = 25;
160  frB.stride(0) = 10;
161  STKUNIT_EXPECT_EQ( frA.not_equal_stride(frB), true );
162  STKUNIT_EXPECT_EQ( frB.not_equal_stride(frA), true );
163  }
164  {
166  for (stk_classic::mesh::Ordinal i=0 ; i < stk_classic::mesh::MaximumFieldDimension ; ++i ) {
167  frA.stride(0) = i+1;
168  }
170  for (stk_classic::mesh::Ordinal i=0 ; i < stk_classic::mesh::MaximumFieldDimension ; ++i ) {
171  frB.stride(0) = i+1;
172  }
173  STKUNIT_EXPECT_EQ( frA.not_equal_stride(frB), false );
174  STKUNIT_EXPECT_EQ( frB.not_equal_stride(frA), false );
175  frB.stride(stk_classic::mesh::MaximumFieldDimension-1) = 1;
176  STKUNIT_EXPECT_EQ( frA.not_equal_stride(frB), true );
177  STKUNIT_EXPECT_EQ( frB.not_equal_stride(frA), true );
178  }
179 }
180 
181 
182 } //namespace <anonymous>
183