001 package fj.test.reflect; 002 003 import java.lang.annotation.Documented; 004 import java.lang.annotation.ElementType; 005 import java.lang.annotation.Inherited; 006 import java.lang.annotation.Retention; 007 import java.lang.annotation.RetentionPolicy; 008 import java.lang.annotation.Target; 009 010 /** 011 * Specifies the check parameters on a {@link fj.test.Property} property with typical defaults. 012 * 013 * @version %build.number%<br> 014 * <ul> 015 * <li>$LastChangedRevision: 5 $</li> 016 * <li>$LastChangedDate: 2008-12-06 16:49:43 +1000 (Sat, 06 Dec 2008) $</li> 017 * <li>$LastChangedBy: tonymorris $</li> 018 * </ul> 019 */ 020 @Documented 021 @Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 022 @Retention(RetentionPolicy.RUNTIME) 023 @Inherited 024 public @interface CheckParams { 025 /** 026 * The minimum number of successful tests before a result is reached. 027 * 028 * @return The minimum number of successful tests before a result is reached. 029 */ 030 int minSuccessful() default 100; 031 032 /** 033 * The maximum number of tests discarded because they did not satisfy pre-conditions 034 * (i.e. {@link fj.test.Property#implies(boolean, fj.P1)}). 035 * 036 * @return The maximum number of tests discarded because they did not satisfy pre-conditions 037 * (i.e. {@link fj.test.Property#implies(boolean, fj.P1)}). 038 */ 039 int maxDiscarded() default 500; 040 041 /** 042 * The minimum size to use for checking. 043 * 044 * @return The minimum size to use for checking. 045 */ 046 int minSize() default 0; 047 048 /** 049 * The maximum size to use for checking. 050 * 051 * @return The maximum size to use for checking. 052 */ 053 int maxSize() default 100; 054 }