@@ -32,6 +32,7 @@ TEST_CASE("Visiting smt_bool_sortt.", "[core][smt2_incremental]")
3232 public:
3333 bool bool_visited = false ;
3434 bool bit_vec_visited = false ;
35+ bool array_visited = false ;
3536
3637 void visit (const smt_bool_sortt &) override
3738 {
@@ -42,10 +43,16 @@ TEST_CASE("Visiting smt_bool_sortt.", "[core][smt2_incremental]")
4243 {
4344 bit_vec_visited = true ;
4445 }
46+
47+ void visit (const smt_array_sortt &) override
48+ {
49+ array_visited = true ;
50+ }
4551 } visitor;
4652 smt_bool_sortt{}.accept (visitor);
4753 REQUIRE (visitor.bool_visited );
4854 REQUIRE_FALSE (visitor.bit_vec_visited );
55+ REQUIRE_FALSE (visitor.array_visited );
4956}
5057
5158TEST_CASE (" Visiting smt_bit_vec_sortt." , " [core][smt2_incremental]" )
@@ -55,6 +62,7 @@ TEST_CASE("Visiting smt_bit_vec_sortt.", "[core][smt2_incremental]")
5562 public:
5663 bool bool_visited = false ;
5764 bool bit_vec_visited = false ;
65+ bool array_visited = false ;
5866
5967 void visit (const smt_bool_sortt &) override
6068 {
@@ -66,10 +74,53 @@ TEST_CASE("Visiting smt_bit_vec_sortt.", "[core][smt2_incremental]")
6674 bit_vec_visited = true ;
6775 REQUIRE (bit_vec.bit_width () == 8 );
6876 }
77+
78+ void visit (const smt_array_sortt &) override
79+ {
80+ array_visited = true ;
81+ }
6982 } visitor;
7083 smt_bit_vector_sortt{8 }.accept (visitor);
7184 REQUIRE_FALSE (visitor.bool_visited );
7285 REQUIRE (visitor.bit_vec_visited );
86+ REQUIRE_FALSE (visitor.array_visited );
87+ }
88+
89+ TEST_CASE (" Visiting smt_array_sort." , " [core][smt2_incremental]" )
90+ {
91+ class : public smt_sort_const_downcast_visitort
92+ {
93+ public:
94+ bool bool_visited = false ;
95+ bool bit_vec_visited = false ;
96+ bool array_visited = false ;
97+
98+ void visit (const smt_bool_sortt &) override
99+ {
100+ bool_visited = true ;
101+ }
102+
103+ void visit (const smt_bit_vector_sortt &bit_vec) override
104+ {
105+ bit_vec_visited = true ;
106+ }
107+
108+ void visit (const smt_array_sortt &) override
109+ {
110+ array_visited = true ;
111+ }
112+ } visitor, visitor_second;
113+
114+ smt_array_sortt{smt_bool_sortt{}, smt_bool_sortt{}}.accept (visitor);
115+ REQUIRE_FALSE (visitor.bool_visited );
116+ REQUIRE_FALSE (visitor.bit_vec_visited );
117+ REQUIRE (visitor.array_visited );
118+
119+ smt_array_sortt{smt_bit_vector_sortt{64 }, smt_bit_vector_sortt{32 }}.accept (
120+ visitor_second);
121+ REQUIRE_FALSE (visitor_second.bool_visited );
122+ REQUIRE_FALSE (visitor_second.bit_vec_visited );
123+ REQUIRE (visitor_second.array_visited );
73124}
74125
75126TEST_CASE (" smt_sortt equality" , " [core][smt2_incremental]" )
@@ -83,4 +134,36 @@ TEST_CASE("smt_sortt equality", "[core][smt2_incremental]")
83134 CHECK (bit_vector8 != bool_sort1);
84135 const smt_bit_vector_sortt bit_vector16{16 };
85136 CHECK (bit_vector8 != bit_vector16);
137+ const smt_array_sortt array_sort{smt_bool_sortt{}, smt_bool_sortt{}};
138+ CHECK (array_sort != bool_sort1);
139+ CHECK (array_sort != bit_vector8);
140+ const smt_array_sortt array_sort2{smt_bool_sortt{}, smt_bool_sortt{}};
141+ CHECK (array_sort == array_sort2);
142+ const smt_array_sortt array_sort_bv{bit_vector16, bit_vector16};
143+ CHECK (array_sort_bv != array_sort);
144+ const smt_array_sortt array_sort_bv2{bit_vector16, bit_vector16};
145+ CHECK (array_sort_bv2 == array_sort_bv);
146+ }
147+
148+ TEST_CASE (
149+ " Test smt_array_sort get_index_sort getter." ,
150+ " [core][smt2_incremental]" )
151+ {
152+ const smt_array_sortt array_sort{smt_bool_sortt{}, smt_bool_sortt{}};
153+ REQUIRE (smt_bool_sortt{} == array_sort.index_sort ());
154+
155+ const smt_array_sortt array_sort2{smt_bit_vector_sortt{16 }, smt_bool_sortt{}};
156+ REQUIRE (smt_bit_vector_sortt{16 } == array_sort2.index_sort ());
157+ }
158+
159+ TEST_CASE (
160+ " Test smt_array_sort get_element_sort getter." ,
161+ " [core][smt2_incremental]" )
162+ {
163+ const smt_array_sortt array_sort{smt_bool_sortt{}, smt_bool_sortt{}};
164+ REQUIRE (smt_bool_sortt{} == array_sort.element_sort ());
165+
166+ const smt_array_sortt array_sort2{
167+ smt_bit_vector_sortt{16 }, smt_bit_vector_sortt{64 }};
168+ REQUIRE (smt_bit_vector_sortt{64 } == array_sort2.element_sort ());
86169}
0 commit comments