use std::path::PathBuf;

use alloy::{
    hex::FromHex,
    primitives::{utils::parse_ether, Address, Uint, U256},
};
use candid::Principal;
use ic_test::{EvmUser, IcpTest, IcpUser};

use crate::bindings::{ {% for c in canisters %}
    {{ c.var_name }}::{self, {{c.service_name}}},{% endfor %}{% for c in contracts %}
    evm::{{ c.name }}::{self, {{c.name}}Instance},{% endfor %}
};

use crate::test_setup;

#[tokio::test]
async fn test_() {
    let test_setup::Env {
        icp_test,
        evm_user,{% for c in canisters %}
        {{ c.var_name }},{% endfor %}{% for c in contracts %}
        {{ c.var_name }},{% endfor %}
    } = test_setup::setup(IcpTest::new().await).await;

    // Your test code
    // ...

    // example calls{% for c in canisters %}
    // let result = {{ c.var_name }}./*canister method name*/().call().await;{% endfor %}
}
