module testbench;
    reg [0:7] in;

	reg patt_B = 0;
	wire B;

    initial begin
        // $dumpfile("testbench.vcd");
        // $dumpvars(0, testbench);

        #5 in = 0;
        repeat (10000) begin
            #5 in = in + 1;
        end

        $display("OKAY");
    end

    top uut (
	.x(in[1:2]),
	.y(in[3:4]),
	.z(in[5:6]),
	.clk(in[0]),
	.A(in[7]),
	.B(B)
	);
	
	always @(negedge in[0]) begin
    if (in[1:2] || in[3:4] && in[5:6])
        patt_B <=  in[7] & in[5:6];
    if (in[1:2] || in[3:4] && !in[5:6])
        patt_B <=  in[7] | in[1:2];
end
	
	assert_tri out_test(.A(patt_B), .B(B), .en(1'b1));

endmodule