#[cfg(test)]
use crate::{codegen, sema::ast};
#[test]
fn test_builtin_conversion() {
let input: Vec<ast::Builtin> = vec![
ast::Builtin::Accounts,
ast::Builtin::AddMod,
ast::Builtin::ArrayLength,
ast::Builtin::Balance,
ast::Builtin::Blake2_128,
ast::Builtin::Blake2_256,
ast::Builtin::BlockCoinbase,
ast::Builtin::BlockDifficulty,
ast::Builtin::BlockHash,
ast::Builtin::BlockNumber,
ast::Builtin::Calldata,
ast::Builtin::Gasleft,
ast::Builtin::GasLimit,
ast::Builtin::Gasprice,
ast::Builtin::GetAddress,
ast::Builtin::MinimumBalance,
ast::Builtin::MulMod,
ast::Builtin::Keccak256,
ast::Builtin::Origin,
ast::Builtin::ReadAddress,
ast::Builtin::ReadInt8,
ast::Builtin::ReadInt16LE,
ast::Builtin::ReadInt32LE,
ast::Builtin::ReadInt64LE,
ast::Builtin::ReadInt128LE,
ast::Builtin::ReadInt256LE,
ast::Builtin::ReadUint16LE,
ast::Builtin::ReadUint32LE,
ast::Builtin::ReadUint64LE,
ast::Builtin::ReadUint128LE,
ast::Builtin::ReadUint256LE,
ast::Builtin::Ripemd160,
ast::Builtin::Sender,
ast::Builtin::Slot,
ast::Builtin::Sha256,
ast::Builtin::Signature,
ast::Builtin::SignatureVerify,
ast::Builtin::Timestamp,
ast::Builtin::Value,
ast::Builtin::WriteAddress,
ast::Builtin::WriteInt8,
ast::Builtin::WriteInt16LE,
ast::Builtin::WriteInt32LE,
ast::Builtin::WriteInt64LE,
ast::Builtin::WriteInt128LE,
ast::Builtin::WriteInt256LE,
ast::Builtin::WriteUint16LE,
ast::Builtin::WriteUint32LE,
ast::Builtin::WriteUint64LE,
ast::Builtin::WriteUint128LE,
ast::Builtin::WriteUint256LE,
ast::Builtin::WriteString,
ast::Builtin::WriteBytes,
ast::Builtin::ExtendTtl,
ast::Builtin::ExtendInstanceTtl,
];
let output: Vec<codegen::Builtin> = vec![
codegen::Builtin::Accounts,
codegen::Builtin::AddMod,
codegen::Builtin::ArrayLength,
codegen::Builtin::Balance,
codegen::Builtin::Blake2_128,
codegen::Builtin::Blake2_256,
codegen::Builtin::BlockCoinbase,
codegen::Builtin::BlockDifficulty,
codegen::Builtin::BlockHash,
codegen::Builtin::BlockNumber,
codegen::Builtin::Calldata,
codegen::Builtin::Gasleft,
codegen::Builtin::GasLimit,
codegen::Builtin::Gasprice,
codegen::Builtin::GetAddress,
codegen::Builtin::MinimumBalance,
codegen::Builtin::MulMod,
codegen::Builtin::Keccak256,
codegen::Builtin::Origin,
codegen::Builtin::ReadFromBuffer,
codegen::Builtin::ReadFromBuffer,
codegen::Builtin::ReadFromBuffer,
codegen::Builtin::ReadFromBuffer,
codegen::Builtin::ReadFromBuffer,
codegen::Builtin::ReadFromBuffer,
codegen::Builtin::ReadFromBuffer,
codegen::Builtin::ReadFromBuffer,
codegen::Builtin::ReadFromBuffer,
codegen::Builtin::ReadFromBuffer,
codegen::Builtin::ReadFromBuffer,
codegen::Builtin::ReadFromBuffer,
codegen::Builtin::Ripemd160,
codegen::Builtin::Sender,
codegen::Builtin::Slot,
codegen::Builtin::Sha256,
codegen::Builtin::Signature,
codegen::Builtin::SignatureVerify,
codegen::Builtin::Timestamp,
codegen::Builtin::Value,
codegen::Builtin::WriteAddress,
codegen::Builtin::WriteInt8,
codegen::Builtin::WriteInt16LE,
codegen::Builtin::WriteInt32LE,
codegen::Builtin::WriteInt64LE,
codegen::Builtin::WriteInt128LE,
codegen::Builtin::WriteInt256LE,
codegen::Builtin::WriteUint16LE,
codegen::Builtin::WriteUint32LE,
codegen::Builtin::WriteUint64LE,
codegen::Builtin::WriteUint128LE,
codegen::Builtin::WriteUint256LE,
codegen::Builtin::WriteBytes,
codegen::Builtin::WriteBytes,
codegen::Builtin::ExtendTtl,
codegen::Builtin::ExtendInstanceTtl,
];
for (i, item) in input.iter().enumerate() {
assert_eq!(codegen::Builtin::from(item), output[i]);
}
}