iverilog/ivtest/ivltests/sv_queue1.v

96 lines
2.0 KiB
Coq
Raw Normal View History

module main;
string words [$], tmp_word;
int nums [$], tmp_num;
initial begin
words.push_back("Hello");
words.push_back("World");
if (words.size != 2) begin
$display("FAILED -- words.size=%0d", words.size);
$finish;
end
if (words[0] != "Hello") begin
$display("FAILED -- words[0] = %s", words[0]);
$finish;
end
if (words[$] != "World") begin
$display("FAILED -- words[$] = %s", words[$]);
$finish;
end
tmp_word = words.pop_front();
if (tmp_word != "Hello") begin
$display("FAILED -- words.pop_front()=%s", tmp_word);
$finish;
end
if (words[0] != words[$]) begin
$display("FAILED -- words[0](=%s) !== words[$](=%s)", words[0], words[$]);
$finish;
end
nums.push_back(2);
nums.push_back(3);
nums.push_front(1);
if (nums.size != 3) begin
$display("FAILED -- nums.size=%0d", nums.size);
$finish;
end
if (nums[0] !== 1) begin
$display("FAILED -- nums[0] = %0d", nums[0]);
$finish;
end
if (nums[$] !== 3) begin
$display("FAILED -- nums[$] = %0d", nums[$]);
$finish;
end
tmp_num = nums.pop_back();
if (tmp_num !== 3) begin
$display("FAILED -- tmp_num=%0d (from back)", tmp_num);
$finish;
end
if (nums.size !== 2) begin
$display("FAILED -- nums.size after pop_back = %0d", nums.size);
$finish;
end
if (nums[0] !== 1) begin
$display("FAILED -- nums[0] = %0d", nums[0]);
$finish;
end
if (nums[1] !== 2) begin
$display("FAILED -- nums[1] = %0d", nums[1]);
$finish;
end
tmp_num = nums.pop_front();
if (tmp_num !== 1) begin
$display("FAILED == tmp_num=%0d (fron front)", tmp_num);
$finish;
end
if (nums.size !== 1) begin
$display("FAILED -- nums.size after pop_front = %0d", nums.size);
$finish;
end
if (nums[0] !== 2) begin
$display("FAILED -- nums[0] = %0d after pop_front", nums[0]);
$finish;
end
$display("PASSED");
end
endmodule // main