public void HexProjTest()
{
Z3Provider z3p = new Z3Provider();
//Sort bv64 = z3p.MkBitVecSort(64);
Sort sort = z3p.MkBitVecSort(64);
Expr _0x654321 = z3p.MkNumeral((uint)0x654321, sort);
Expr _5 = z3p.MkHexProj(4, _0x654321, sort).Simplify();
Expr _4 = z3p.MkHexProj(3, _0x654321, sort).Simplify();
Expr _3 = z3p.MkHexProj(2, _0x654321, sort).Simplify();
Expr _2 = z3p.MkHexProj(1, _0x654321, sort).Simplify();
Expr _1 = z3p.MkHexProj(0, _0x654321, sort).Simplify();
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>(5, _5v);
Assert.AreEqual<int>(4, _4v);
Assert.AreEqual<int>(3, _3v);
Assert.AreEqual<int>(2, _2v);
Assert.AreEqual<int>(1, _1v);
}