Most, if not all, scalar and matrix functions are tested with fvar<var> and fvar<fvar<var> > for:
- valid values
- invalid values
- nan values
- invalid arguments
- gradients equal expected values
- function values equal expected values
Most scalar functions and some matrix functions are tested with fvar<var> and fvar<fvar<var> > for:
- diagonals of hessians vs. expected values
- diagonals of gradients of hessians vs. expected values
Few, if any, scalar and matrix functions are tested with fvar<var> and fvar<var<var> > for:
- Full Hessians vs. expected values (and/or finite diff)
- Gradients of the Hessians vs. expected values (and/or finite diff)
It also looks as if the unit tests in test/unit/math/mix/mat/prob are very sparse and test only that function values equal expected values.