public void HexProjTest2()
{
Z3Provider z3p = new Z3Provider();
Sort bv64 = z3p.MkBitVecSort(64);
Sort bv16 = z3p.MkBitVecSort(16);
Expr _0x654321 = z3p.MkNumeral((uint)0xF54321, bv64);
Expr _6 = z3p.MkHexProj(5, _0x654321, bv16).Simplify();
Expr _5 = z3p.MkHexProj(4, _0x654321, bv16).Simplify();
Expr _4 = z3p.MkHexProj(3, _0x654321, bv16).Simplify();
Expr _3 = z3p.MkHexProj(2, _0x654321, bv16).Simplify();
Expr _2 = z3p.MkHexProj(1, _0x654321, bv16).Simplify();
Expr _1 = z3p.MkHexProj(0, _0x654321, bv16).Simplify();
int _6v = (int)z3p.GetNumeralInt(_6);
int _5v = (int)z3p.GetNumeralInt(_5);
int _4v = (int)z3p.GetNumeralInt(_4);
int _3v = (int)z3p.GetNumeralInt(_3);
int _2v = (int)z3p.GetNumeralInt(_2);
int _1v = (int)z3p.GetNumeralInt(_1);
Assert.AreEqual<int>(0xF, _6v);
Assert.AreEqual<int>(5, _5v);
Assert.AreEqual<int>(4, _4v);
Assert.AreEqual<int>(3, _3v);
Assert.AreEqual<int>(2, _2v);
Assert.AreEqual<int>(1, _1v);
}