`timescale 1ns/1ps
`include "uvm_macros.svh"
import uvm_pkg::*;
class bounded_library extends uvm_sequence_library#(uvm_sequence_item);
  int unsigned next_index;
  function new(string name="bounded_library"); super.new(name); endfunction
  virtual function int unsigned select_sequence(int unsigned max);
    if (next_index > max) next_index = 0;
    select_sequence = next_index;
    next_index = next_index == max ? 0 : next_index + 1;
  endfunction
endclass
module library_migrated;
  initial begin
    bounded_library lib = new("lib");
    int selected;
    repeat(3) selected = lib.select_sequence(3);
    $display("REVIEW|shrinking_max_selection|%0d", lib.select_sequence(0));
    $display("REVIEW|done|1");
    $finish;
  end
endmodule
