In reply to sai_pra99:
To judge a tool with respect to doing things which are not standard compliant is a dangerous thing.
In your last code you have 2 coverage collectors in your environment. 1in your env and 1 in your test. In the test your are constructing this object wrong, calling simply the constructor without arguments. Synopsys is tolerating thisd. Cadenc and Mentor are ignoring this.
Then looking to your scorboard. Cadence and Synopsys is tolerating your approach with a dynamic array using non-contigious addresses. Mentor does not. Mentor is standard compliant.