# RUN: %PYTHON %s | FileCheck %s

import torch
import numpy as np

from mpact.mpactbackend import mpact_jit

from mpact.models.gat import gat_4_64_8_3

net = gat_4_64_8_3()
net.eval()  # Switch to inference.

# Sparse input.
idx = torch.tensor([[0, 0, 1, 2], [0, 2, 3, 1]], dtype=torch.int64)
val = torch.tensor([14.0, 3.0, -8.0, 11.0], dtype=torch.float32)
S = torch.sparse_coo_tensor(idx, val, size=[4, 4])

# Construct adjacency matrix.
V = 4
edges = np.array([[0, 1], [0, 2], [1, 2], [1, 3], [2, 3]], dtype=np.int32)
E = edges.shape[0]
adj_mat = torch.sparse_coo_tensor(edges.T, torch.ones(E), (V, V), dtype=torch.int64)
adj_mat = (
    torch.eye(V) + adj_mat
)  # Add self-loops to the adjacency matrix (becomes dense)


#
# CHECK: pytorch gat
# CHECK:   tensor({{\[}}[-1.0986, -1.0986, -1.0986],
# CHECK:                [-1.0986, -1.0986, -1.0986],
# CHECK:                [-1.0986, -1.0986, -1.0986],
# CHECK:                [-1.0986, -1.0986, -1.0986]{{\]}}
# CHECK: mpact gat
# CHECK:   {{\[}}[-1.0986123 -1.0986123 -1.0986123]
# CHECK:         [-1.0986123 -1.0986123 -1.0986123]
# CHECK:         [-1.0986123 -1.0986123 -1.0986123]
# CHECK:         [-1.0986123 -1.0986123 -1.0986123]{{\]}}
#
with torch.no_grad():
    # Run it with PyTorch.
    print("pytorch gat")
    res = net(S, adj_mat)
    print(res)

    # Run it with MPACT.
    print("mpact gat")
    res = mpact_jit(net, S, adj_mat)
    print(res)
