soft assert vs hard assert