@@ -1251,6 +1251,35 @@ TEST_CASE(
12511251 }
12521252}
12531253
1254+ TEST_CASE (
1255+ " expr to smt conversion for concatenation_exprt expressions" ,
1256+ " [core][smt2_incremental]" )
1257+ {
1258+ auto test =
1259+ expr_to_smt_conversion_test_environmentt::make (test_archt::x86_64);
1260+ SECTION (" Bit vector types" )
1261+ {
1262+ const exprt bit_vector_1 =
1263+ symbol_exprt{" my_bit_vector_1" , signedbv_typet{8 }};
1264+ const exprt bit_vector_2 =
1265+ symbol_exprt{" my_bit_vector_2" , signedbv_typet{9 }};
1266+ const exprt bit_vector_3 =
1267+ symbol_exprt{" my_bit_vector_3" , signedbv_typet{10 }};
1268+ const concatenation_exprt concatenation{
1269+ {bit_vector_1, bit_vector_2, bit_vector_3}, signedbv_typet{27 }};
1270+ INFO (" Expression being converted: " + concatenation.pretty (2 , 0 ));
1271+ const smt_identifier_termt smt_id_1{
1272+ " my_bit_vector_1" , smt_bit_vector_sortt{8 }};
1273+ const smt_identifier_termt smt_id_2{
1274+ " my_bit_vector_2" , smt_bit_vector_sortt{9 }};
1275+ const smt_identifier_termt smt_id_3{
1276+ " my_bit_vector_3" , smt_bit_vector_sortt{10 }};
1277+ const smt_termt expected = smt_bit_vector_theoryt::concat (
1278+ smt_bit_vector_theoryt::concat (smt_id_1, smt_id_2), smt_id_3);
1279+ CHECK (test.convert (concatenation) == expected);
1280+ }
1281+ }
1282+
12541283TEST_CASE (
12551284 " expr to smt conversion for extract bits expressions" ,
12561285 " [core][smt2_incremental]" )
0 commit comments