Covergroup "per object" as opposed to "per instance"

There are multiple instances of the same class containing a covergroup:


class A;
covergroup X {
...
}
endclass
class B;
A a_inst[5];
for (int i = 0; i < 5; i++) A.sample();
endclass

I expected the above to generate coverage per instance, meaning 5 coverage items.
However, it appears as a coverage per object, meaning 1 item.
Is it supposed to be like that?

In reply to Alex K.:

By default, covergroups coverage is collected by type, not per instance. You can change that with

class A;
covergroup X;
  option.per_instance = 1;
endgroup
endclass