Issue with Constraint Solver

In reply to soumyarayaprolu:

Constraints are working just fine. Can you give the scenario for which you are getting unexpected results?

module test;

  class A;

    rand bit[3:0] max_val;
    rand bit[7:0] bin[8];
    rand bit[1:0] if_yes;

    rand int a, b;

    constraint c1 {
      (32 * max_val + 'd480) == a;
    }

    constraint c2{
      (
      'd96 + bin[0] + bin[1] + bin[2] + bin[3] + bin[4] + bin[5] + bin[6] + bin[7] +
      ((if_yes == 1)? 5 : ((if_yes ==2)? 2: (if_yes == 3)? 4:0))
      ) == b;
    }

    constraint c3{
      a > b;
    }

  endclass

  A a_h;

  initial
  begin

    a_h = new();

    repeat(10)
    begin
      assert(a_h.randomize());
      $display("%0d -- %0d -- %p", a_h.max_val, a_h.if_yes, a_h.bin);
      $display("%0d -- %0d", a_h.a, a_h.b);
    end
  end
	
endmodule