F L A T T E N N I N G T E S T FIRRST TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- B:C|D. C=StringH. D=EH. H=Boolean V. E=. V=. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- B:C|D. C=StringH. D=EH. H=Boolean V. E=. V=. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SECOND TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- B:C|D commonH. C=String. D=E. H=Boolean V. E=. V=. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- B:C|D common. C=StringH. D=EH. H=Boolean V. E=. V=. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ /@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\ U N D E F I N E D C L A S S E S T E S T FIRST TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- A=B. B=C D. C=AI. D=X. D="d" X. F=List(Z). I=Ident. List(S)~ { S } . Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- A=B. B=C D. C=AI. D=X. D="d" X. F=List(Z). I=Ident. List(S)~ { S } . Attempting the Undefined Classes Check Z is an UNDEFINED CLASS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SECOND TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- A=B. B=C D. C=Beta1 Epsilon E. D=. E=F. F=. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- A=B. B=C D. C=Beta1 Epsilon E. D=. E=F. F=. Attempting the Undefined Classes Check Beta1 is an UNDEFINED CLASS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ THIRD TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- X=A "+" B. A=G. A=L. L=Ident String P. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- X=A "+" B. A=G. A=L. L=Ident String P. Attempting the Undefined Classes Check G is an UNDEFINED CLASS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ FOURTH TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- A:B|C. B:D|E. F=J. D=XX. E=YY. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- A:B|C. B:D|E. F=J. D=XX. E=YY. Attempting the Undefined Classes Check J is an UNDEFINED CLASS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ FIFTH TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- Main=. A=C. B:C|D. C=EH. D=F. E=. G=H H. H=. I=JK. J=. K=. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- Main=. A=C. B:C|D. C=EH. D=F. E=. G=H H. H=. I=JK. J=. K=. Attempting the Undefined Classes Check F is an UNDEFINED CLASS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ /@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\ M U L T I P L E D E F I N I T I O N S T E S T FIRST TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- X=A "+" B. A=G. A=L. L=Ident String P. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- X=A "+" B. A=G. A=L. L=Ident String P. Attempting the Undefined Classes Check CLASS A has more than ONE definition @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ /@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\ M U L I P L E I N H E R I T A N C E T E S T FIRST TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- A:B|C. Z:B|G. B="b". C="c". G="g". Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- A:B|C. Z:B|G. B="b". C="c". G="g". Attempting the Multiple & Cyclic Inheritance Check B has the following MULTIPLE SUPER-CLASSES: A and Z @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SECOND TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- X:L|N|P. G:N|P. Q:A|L|P. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- X:L|N|P. G:N|P. Q:A|L|P. Attempting the Multiple & Cyclic Inheritance Check @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ /@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\ T E R M I N A L B U F F E R R U L E T E S T FIRST TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- B:C|D commonH. C=String E Ident. D=E. H=Boolean V. E=. V=. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- B:C|D. C=String E IdentH common. D=EH common. H=Boolean V. E=. V=. Attempting the Terminal Buffer Check The C class violates the TERMINAL BUFFER RULE. Class Ident is NOT the ONLY part. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SECOND TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- R=List(Ident). T=String. V=WIdent. W="w". List(S)~ { S } . Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- R=List(Ident). T=String. V=WIdent. W="w". List(S)~ { S } . Attempting the Terminal Buffer Check The R class violates the TERMINAL BUFFER RULE. Class Ident is NOT the ONLY part. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ THIRD TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- B:C|D common String. C=String. D=Ident. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- B:C|D. C=String String common. D=Ident String common. Attempting the Terminal Buffer Check The D class violates the TERMINAL BUFFER RULE. Class Ident is NOT the ONLY part. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ /@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\ C Y C L I C I N H E R I T A N C E T E S T FIRST TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- A:B|D*common*D. B:E|G. D=A. E=. F:A. G:F. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- A:B|D*common*. B:E|G. D=A D. E=D. F:A D. G:F. Attempting the Multiple & Cyclic Inheritance Check Cyclic inheritance detected from CLASS A to CLASS F to CLASS G to CLASS B to CLASS A @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SECOND TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- A:B|D. D:E. B:C. C:D. E:A. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- A:B|D. D:E. B:C. C:D. E:A. Attempting the Multiple & Cyclic Inheritance Check D has the following MULTIPLE SUPER-CLASSES: A and C @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ THIRD TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- A:B. B:C. C:A. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- A:B. B:C. C:A. Attempting the Multiple & Cyclic Inheritance Check Cyclic inheritance detected from CLASS A to CLASS C to CLASS B to CLASS A @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ FOURTH TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- Main=String. A=BC. B=. C=B. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- Main=String. A=BC. B=. C=B. Attempting the Multiple & Cyclic Inheritance Check @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ /@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\@/@\ U N I Q U E P A R T S T E S T FIRST TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- A:B1|C*common*Z. B1:B2. B2:B. B=X. C=X X. G="g". X="x". Y=GZ. Z="z". Attempting the Flattenning Check FlatteningVisitor ----- CLASS GRAPH AFTER FLATTENNING ---- A:B1|C*common*. B1:B2. B2:B. B=XZ. C=X XZ. G="g". X="x". Y=GZ. Z="z". Attempting the Unique Parts Check B contains a NON-UNIQUE PART z @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SECOND TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- Main=String. A:B|E commonX. B=XX. C:G|X commonDB D. E=D F D. D=. G=AB. X=. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- Main=String. A:B|E. B=XXX common. C:G|X. E=D F DX common. D=. G=ABB DD common. X=B DD common. Attempting the Unique Parts Check G contains a NON-UNIQUE PART a @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ THIRD TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- Main=. A=C. B:C|D. C=EH. D=F. E=. H=. I=JK. J=. K=. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- Main=. A=C. B:C|D. C=EH. D=F. E=. H=. I=JK. J=. K=. Attempting the Unique Parts Check I contains a NON-UNIQUE PART j @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ FOURTH TEST ---- CLASS GRAPH BEFORE FLATTENNING ---- Main=String. A:B|E common. B=XXXDB D. C:G. E=D F DX. G=ABDB D. X=. Attempting the Flattenning Check FlatteningVisitor ---- CLASS GRAPH AFTER FLATTENNING ---- Main=String. A:B|E. B=XXXDB D common. C:G. E=D F DX common. G=ABDB D. X=. Attempting the Unique Parts Check