1 package gov.nasa.jpf.test.vm.basic;
3 import java.lang.annotation.Retention;
4 import java.lang.annotation.RetentionPolicy;
8 import gov.nasa.jpf.util.test.TestJPF;
10 public class AnnotationToStringTest extends TestJPF {
11 private static final String TTFF_NESTED = "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$Nested2("
12 + "fields=@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A1(f1=[false,false],f2=[true,true]))";
13 private static final String HELLO_WORLD_NESTED = "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$Nested1("
14 + "fields=@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A16(f1=Hello,f2=World))";
17 public static enum EnumConsts {
21 @Retention(RetentionPolicy.RUNTIME)
22 public @interface A0 {
28 @A0(f1 = true, f2 = false)
33 public void testBooleanAttributeToString() {
34 if(verifyNoPropertyViolation()) {
35 Class<?> klass = C0.class;
36 A0 a = klass.getAnnotation(A0.class);
37 System.out.println(a.toString());
38 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A0(f1=true,f2=false)");
42 @Retention(RetentionPolicy.RUNTIME)
43 public @interface A1 {
49 @A1(f1 = { true, false }, f2 = { false, true })
54 public void testBooleanArrayAttributeToString() {
55 if(verifyNoPropertyViolation()) {
56 Class<?> klass = C1.class;
57 A1 a = klass.getAnnotation(A1.class);
58 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A1(f1=[true,false],f2=[false,true])");
62 @Retention(RetentionPolicy.RUNTIME)
63 public @interface A2 {
74 public void testByteAttributeToString() {
75 if(verifyNoPropertyViolation()) {
76 Class<?> klass = C2.class;
77 A2 a = klass.getAnnotation(A2.class);
78 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A2(f1=0,f2=1)");
82 @Retention(RetentionPolicy.RUNTIME)
83 public @interface A3 {
89 @A3(f1 = { 0, 1 }, f2 = { 1, 0 })
94 public void testByteArrayAttributeToString() {
95 if(verifyNoPropertyViolation()) {
96 Class<?> klass = C3.class;
97 A3 a = klass.getAnnotation(A3.class);
98 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A3(f1=[0,1],f2=[1,0])");
102 @Retention(RetentionPolicy.RUNTIME)
103 public @interface A4 {
109 @A4(f1 = 'a', f2 = 'b')
114 public void testCharAttributeToString() {
115 if(verifyNoPropertyViolation()) {
116 Class<?> klass = C4.class;
117 A4 a = klass.getAnnotation(A4.class);
118 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A4(f1=a,f2=b)");
122 @Retention(RetentionPolicy.RUNTIME)
123 public @interface A5 {
129 @A5(f1 = { 'a', 'b' }, f2 = { 'b', 'a' })
134 public void testCharArrayAttributeToString() {
135 if(verifyNoPropertyViolation()) {
136 Class<?> klass = C5.class;
137 A5 a = klass.getAnnotation(A5.class);
138 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A5(f1=[a,b],f2=[b,a])");
142 @Retention(RetentionPolicy.RUNTIME)
143 public @interface A6 {
154 public void testShortAttributeToString() {
155 if(verifyNoPropertyViolation()) {
156 Class<?> klass = C6.class;
157 A6 a = klass.getAnnotation(A6.class);
158 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A6(f1=0,f2=1)");
162 @Retention(RetentionPolicy.RUNTIME)
163 public @interface A7 {
169 @A7(f1 = { 0, 1 }, f2 = { 1, 0 })
174 public void testShortArrayAttributeToString() {
175 if(verifyNoPropertyViolation()) {
176 Class<?> klass = C7.class;
177 A7 a = klass.getAnnotation(A7.class);
178 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A7(f1=[0,1],f2=[1,0])");
182 @Retention(RetentionPolicy.RUNTIME)
183 public @interface A8 {
194 public void testIntAttributeToString() {
195 if(verifyNoPropertyViolation()) {
196 Class<?> klass = C8.class;
197 A8 a = klass.getAnnotation(A8.class);
198 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A8(f1=0,f2=1)");
202 @Retention(RetentionPolicy.RUNTIME)
203 public @interface A9 {
209 @A9(f1 = { 0, 1 }, f2 = { 1, 0 })
214 public void testIntArrayAttributeToString() {
215 if(verifyNoPropertyViolation()) {
216 Class<?> klass = C9.class;
217 A9 a = klass.getAnnotation(A9.class);
218 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A9(f1=[0,1],f2=[1,0])");
222 @Retention(RetentionPolicy.RUNTIME)
223 public @interface A10 {
229 @A10(f1 = 1L, f2 = 10L)
234 public void testLongAttributeToString() {
235 if(verifyNoPropertyViolation()) {
236 Class<?> klass = C10.class;
237 A10 a = klass.getAnnotation(A10.class);
238 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A10(f1=1,f2=10)");
242 @Retention(RetentionPolicy.RUNTIME)
243 public @interface A11 {
249 @A11(f1 = { 1L, 10L }, f2 = { 10L, 1L })
254 public void testLongArrayAttributeToString() {
255 if(verifyNoPropertyViolation()) {
256 Class<?> klass = C11.class;
257 A11 a = klass.getAnnotation(A11.class);
258 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A11(f1=[1,10],f2=[10,1])");
262 @Retention(RetentionPolicy.RUNTIME)
263 public @interface A12 {
269 @A12(f1 = 0.5f, f2 = 2.0f)
274 public void testFloatAttributeToString() {
275 if(verifyNoPropertyViolation()) {
276 Class<?> klass = C12.class;
277 A12 a = klass.getAnnotation(A12.class);
278 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A12(f1=0.5,f2=2.0)");
282 @Retention(RetentionPolicy.RUNTIME)
283 public @interface A13 {
289 @A13(f1 = { 0.5f, 2.0f }, f2 = { 2.0f, 0.5f })
294 public void testFloatArrayAttributeToString() {
295 if(verifyNoPropertyViolation()) {
296 Class<?> klass = C13.class;
297 A13 a = klass.getAnnotation(A13.class);
298 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A13(f1=[0.5,2.0],f2=[2.0,0.5])");
302 @Retention(RetentionPolicy.RUNTIME)
303 public @interface A14 {
309 @A14(f1 = 2.0, f2 = 3.5)
314 public void testDoubleAttributeToString() {
315 if(verifyNoPropertyViolation()) {
316 Class<?> klass = C14.class;
317 A14 a = klass.getAnnotation(A14.class);
318 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A14(f1=2.0,f2=3.5)");
322 @Retention(RetentionPolicy.RUNTIME)
323 public @interface A15 {
329 @A15(f1 = { 2.0, 3.5 }, f2 = { 3.5, 2.0 })
334 public void testDoubleArrayAttributeToString() {
335 if(verifyNoPropertyViolation()) {
336 Class<?> klass = C15.class;
337 A15 a = klass.getAnnotation(A15.class);
338 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A15(f1=[2.0,3.5],f2=[3.5,2.0])");
342 @Retention(RetentionPolicy.RUNTIME)
343 public @interface A16 {
349 @A16(f1 = "Hello", f2 = "World")
354 public void testStringAttributeToString() {
355 if(verifyNoPropertyViolation()) {
356 Class<?> klass = C16.class;
357 A16 a = klass.getAnnotation(A16.class);
358 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A16(f1=Hello,f2=World)");
362 @Retention(RetentionPolicy.RUNTIME)
363 public @interface A17 {
369 @A17(f1 = { "Hello", "World" }, f2 = { "World", "Hello" })
374 public void testStringArrayAttributeToString() {
375 if(verifyNoPropertyViolation()) {
376 Class<?> klass = C17.class;
377 A17 a = klass.getAnnotation(A17.class);
378 System.out.println(a.toString());
379 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A17(f1=[Hello,World],f2=[World,Hello])");
383 @Retention(RetentionPolicy.RUNTIME)
384 public @interface A18 {
390 @A18(f1 = String.class, f2 = Integer.class)
395 public void testClassAttributeToString() {
396 if(verifyNoPropertyViolation()) {
397 Class<?> klass = C18.class;
398 A18 a = klass.getAnnotation(A18.class);
399 System.out.println(a.toString());
400 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A18(f1=class java.lang.String,f2=class java.lang.Integer)");
404 @Retention(RetentionPolicy.RUNTIME)
405 public @interface A19 {
411 @A19(f1 = { String.class, Integer.class }, f2 = { Integer.class, String.class })
416 public void testClassArrayAttributeToString() {
417 if(verifyNoPropertyViolation()) {
418 Class<?> klass = C19.class;
419 A19 a = klass.getAnnotation(A19.class);
420 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A19(f1=[class java.lang.String,class java.lang.Integer],"
421 + "f2=[class java.lang.Integer,class java.lang.String])");
425 @Retention(RetentionPolicy.RUNTIME)
426 public @interface A20 {
432 @A20(f1 = EnumConsts.FIRST, f2 = EnumConsts.SECOND)
437 public void testEnumConstsAttributeToString() {
438 if(verifyNoPropertyViolation()) {
439 Class<?> klass = C20.class;
440 A20 a = klass.getAnnotation(A20.class);
441 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A20(f1=gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$EnumConsts.FIRST,"
442 + "f2=gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$EnumConsts.SECOND)");
446 @Retention(RetentionPolicy.RUNTIME)
447 public @interface A21 {
453 @A21(f1 = { EnumConsts.FIRST, EnumConsts.SECOND }, f2 = { EnumConsts.SECOND, EnumConsts.FIRST })
458 public void testEnumConstsArrayAttributeToString() {
459 if(verifyNoPropertyViolation()) {
460 Class<?> klass = C21.class;
461 A21 a = klass.getAnnotation(A21.class);
462 assertEquals(a.toString(), "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A21("
463 + "f1=[gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$EnumConsts.FIRST,gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$EnumConsts.SECOND],"
464 + "f2=[gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$EnumConsts.SECOND,gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$EnumConsts.FIRST])");
468 @Retention(RetentionPolicy.RUNTIME)
469 public @interface Nested1 {
473 @Retention(RetentionPolicy.RUNTIME)
474 public @interface Nested2 {
478 @Retention(RetentionPolicy.RUNTIME)
479 public @interface A22 {
484 @A22(f1 = @Nested1(fields = @A16(f1 = "Hello", f2 = "World")), f2 = @Nested2(fields = @A1(f1 = {false, false}, f2 = {true, true})))
490 public void testAnnotationAttributeToString() {
491 if(verifyNoPropertyViolation()) {
492 Class<?> klass = C22.class;
493 A22 a = klass.getAnnotation(A22.class);
494 String toString = "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A22(f1=" + HELLO_WORLD_NESTED + ",f2=" + TTFF_NESTED + ")";
495 assertEquals(a.toString(), a.toString(), toString);
499 @Retention(RetentionPolicy.RUNTIME)
500 public @interface A23 {
506 @Nested1(fields = @A16(f1 = "Hello", f2 = "World")), @Nested1(fields = @A16(f1 = "Hola", f2 = "Mundo"))
508 @Nested2(fields = @A1(f1 = {false, false}, f2 = {true, true})), @Nested2(fields = @A1(f1 = {true,true}, f2 = {false,false}))
515 public void testAnnotationArrayAttributeToString() {
516 if(verifyNoPropertyViolation()) {
517 Class<?> klass = C23.class;
518 A23 a = klass.getAnnotation(A23.class);
519 String holaMundo = HELLO_WORLD_NESTED.replace("Hello", "Hola").replace("World", "Mundo");
520 String trueTrueString = TTFF_NESTED.replaceAll("false", "TMP").replaceAll("true", "false").replaceAll("TMP", "true");
521 String toString = "@gov.nasa.jpf.test.vm.basic.AnnotationToStringTest$A23(f1=[" + HELLO_WORLD_NESTED + "," + holaMundo + "],"
522 + "f2=[" + TTFF_NESTED + "," + trueTrueString + "])";
523 assertEquals(a.toString(), toString);