Group: Comparators A common function of testbenches is to compare streams of transactions for equivalence. For example, a testbench may compare a stream of transactions from a DUT with expected results. The UVM library provides a base class called ~uvm_in_order_comparator~ and two derived classes: ~uvm_in_order_built_in_comparator~ for comparing streams of built-in types and ~uvm_in_order_class_comparator~ for comparing streams of class objects. The ~uvm_algorithmic_comparator~ also compares two streams of transactions, but the transaction streams might be of different type objects. Thus, this comparator will employ a user-defined transformation function to convert one type to another before performing a comparison. (see uvm_ref_comparators.gif)