class CodeContratCheatSheet {
public int Value { get ; set ; }
[ContractInvariantMethod ]
private void RationalInvariant(){
Contract .Invariant( this .Value > 0 );
}
public int VerifyInputParameter(int a){
Contract .Requires ( (a > 0) && (a < 100) );
Contract .Ensures ( a > 0 );
Contract .Ensures ( Contract .Result<int >() > 0 );
return 1;
}
public void VerifyDataInInputOutputParameterOfTypeList(List <int > L){
Contract .Requires( Contract .ForAll( L, l => l > 0 ) );
Contract .Ensures ( Contract .ForAll( L, l => l > 0 ) );
}
public void VerifyOutputParameters(out int i){
Contract .Ensures(Contract .ValueAtReturn<int >(out i) > 0 );
i=1;
}
public List <int> VerifyDataInListReturned(){
Contract .Ensures( Contract .Result<List <int >>().Count > 1 );
Contract .Ensures(
Contract .ForAll(
0, Contract .Result<List <int >>().Count,
index => Contract .Result<List <int >>()[index] > 0
)
);
List <int > l = new List <int >();
l.Add(1); l.Add(2); l.Add(3);
return l;
}
}
Saturday, January 8, 2011
Code Contrat Cheat Sheet
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment