Monday, August 27, 2012

Properties for the solver's foundation

During the past week, Adam was helping Jan develop a suite of properties and generators for the affine enclosure- and interval arithmetic library that underlies the enclosure-based hybrid solver. Adam learned several useful lessons about testing scientific code using generator-driven PBT. In particular, that shrinking can lead to misleading error messages, that run-time assertions help development of generators and properties (and debugging in general) and that generating small values is often much more useful for finding bugs than aiming for a uniform coverage of the algorithm's state space. During the coming week Adam plans to add PBTs for the higher-level parts of the solver's algorithm, set up SCCT to obtain coverage metrics for the solver code and continue familiarising himself with Delite.