Covergroup for a multidimensional array

Can I use this approach?



module top;
  int addr[4][4];
  
  function bit uniq (ref addr);
    bit uniq_yes,uniq_no;
    foreach (addr[i,j]) 
      foreach (addr[a,b])
        if !(i==a && j==b) 
          if (addr[i,j] != addr[a,b]) begin
            uniq_yes = 1;
          end else begin
            uniq_no = 1;
          end
    return uniq_yes && (~uniq_no);
          
  endfunction
  
  covergroup cg;
    in: coverpoint uniq(addr) { 
      bins uniq = {1};
    }
  endgroup

endmodule