Added final testcases and made hidden ones public

This commit is contained in:
gt2014.peldszus.sven 2015-05-20 16:34:29 +02:00
parent 2c80478adb
commit 451dfa69ac
32 changed files with 2140 additions and 252 deletions

View file

@ -0,0 +1,3 @@
# Autogenerated mainclass file
# For java program "FinalProgram1"
program.one.FinalClass01

Binary file not shown.

View file

@ -0,0 +1,3 @@
# Autogenerated mainclass file
# For java program "FinalProgram2"
program.two.B

Binary file not shown.

View file

@ -0,0 +1,3 @@
# Autogenerated mainclass file
# For java program "FinalProgram3"
program.three.ChildClass1

Binary file not shown.

View file

@ -0,0 +1,3 @@
# Autogenerated mainclass file
# For java program "hiddenProgram1"
hidden.program.one.ChildClass1

Binary file not shown.

View file

@ -0,0 +1,3 @@
# Autogenerated mainclass file
# For java program "hiddenProgram2"
hidden.program.two.ChildClass1

Binary file not shown.

View file

@ -0,0 +1,3 @@
# Autogenerated mainclass file
# For java program "hiddenProgram3"
hidden.program.three.ChildClass1

Binary file not shown.

View file

@ -1,3 +1,3 @@
# Autogenerated mainclass file
# For java program "example01"
example01.ChildClass1
# Autogenerated mainclass file
# For java program "example01"
example01.ChildClass1

View file

@ -1,3 +1,3 @@
# Autogenerated mainclass file
# For java program "example02"
example02.ChildClass1
# Autogenerated mainclass file
# For java program "example02"
example02.ChildClass1

View file

@ -1,3 +1,3 @@
# Autogenerated mainclass file
# For java program "example03"
example03.ChildClass1
# Autogenerated mainclass file
# For java program "example03"
example03.ChildClass1

View file

@ -1,3 +1,3 @@
# Autogenerated mainclass file
# For java program "example04"
example04.ChildClass1
# Autogenerated mainclass file
# For java program "example04"
example04.ChildClass1

View file

@ -0,0 +1,656 @@
TestFile final_1 {
class child1 {
package "program.one"
name "FinalClass01"
}
class child2 {
package "program.one"
name "FinalClass02"
}
class parent_to_create {
package "program.one.parent"
name "Parent"
}
classes childs {
child1,
child2
}
create_superclass csc1 {
child childs
target parent_to_create
}
case final_1_1 {
description "EXS-POS: A lot of classes are not changed."
program "FinalProgram1"
testflow {
assertTrue(csc1)
synchronize
compile
child1 extends parent_to_create
child2 extends parent_to_create
}
}
class child3 {
package "program.one"
name "FinalClass03"
}
class child4 {
package "program.one"
name "FinalClass04"
}
class child5 {
package "program.one"
name "FinalClass05"
}
class child6 {
package "program.one"
name "FinalClass06"
}
class child7 {
package "program.one"
name "FinalClass07"
}
class child8 {
package "program.one"
name "FinalClass08"
}
class child9 {
package "program.one"
name "FinalClass09"
}
class child10 {
package "program.one"
name "FinalClass10"
}
class child11 {
package "program.one"
name "FinalClass11"
}
class child12 {
package "program.one"
name "FinalClass12"
}
class child13 {
package "program.one"
name "FinalClass13"
}
class child14 {
package "program.one"
name "FinalClass14"
}
class child15 {
package "program.one"
name "FinalClass15"
}
class child16 {
package "program.one"
name "FinalClass16"
}
class child17 {
package "program.one"
name "FinalClass17"
}
class child18 {
package "program.one"
name "FinalClass18"
}
class child19 {
package "program.one"
name "FinalClass19"
}
class child20 {
package "program.one"
name "FinalClass20"
}
class child21 {
package "program.one"
name "FinalClass21"
}
class child22 {
package "program.one"
name "FinalClass22"
}
class child23 {
package "program.one"
name "FinalClass23"
}
class child24 {
package "program.one"
name "FinalClass24"
}
class child25 {
package "program.one"
name "FinalClass25"
}
class child26 {
package "program.one"
name "FinalClass26"
}
class child27 {
package "program.one"
name "FinalClass27"
}
class child28 {
package "program.one"
name "FinalClass28"
}
class child29 {
package "program.one"
name "FinalClass29"
}
class child30 {
package "program.one"
name "FinalClass30"
}
class child31 {
package "program.one"
name "FinalClass31"
}
class child32 {
package "program.one"
name "FinalClass32"
}
class child33 {
package "program.one"
name "FinalClass33"
}
class child34 {
package "program.one"
name "FinalClass34"
}
class child35 {
package "program.one"
name "FinalClass35"
}
class child36 {
package "program.one"
name "FinalClass36"
}
class child37 {
package "program.one"
name "FinalClass37"
}
class child38 {
package "program.one"
name "FinalClass38"
}
class child39 {
package "program.one"
name "FinalClass39"
}
class child40 {
package "program.one"
name "FinalClass40"
}
class child41 {
package "program.one"
name "FinalClass41"
}
class child42 {
package "program.one"
name "FinalClass42"
}
class child43 {
package "program.one"
name "FinalClass43"
}
class child44 {
package "program.one"
name "FinalClass44"
}
class child45 {
package "program.one"
name "FinalClass45"
}
class child46 {
package "program.one"
name "FinalClass46"
}
class child47 {
package "program.one"
name "FinalClass47"
}
class child48 {
package "program.one"
name "FinalClass48"
}
class child49 {
package "program.one"
name "FinalClass49"
}
class child50 {
package "program.one"
name "FinalClass50"
}
class child51 {
package "program.one"
name "FinalClass51"
}
class child52 {
package "program.one"
name "FinalClass52"
}
class child53 {
package "program.one"
name "FinalClass53"
}
class child54 {
package "program.one"
name "FinalClass54"
}
class child55 {
package "program.one"
name "FinalClass55"
}
class child56 {
package "program.one"
name "FinalClass56"
}
class child57 {
package "program.one"
name "FinalClass57"
}
class child58 {
package "program.one"
name "FinalClass58"
}
class child59 {
package "program.one"
name "FinalClass59"
}
class child60 {
package "program.one"
name "FinalClass60"
}
class child61 {
package "program.one"
name "FinalClass61"
}
class child62 {
package "program.one"
name "FinalClass62"
}
class child63 {
package "program.one"
name "FinalClass63"
}
class child64 {
package "program.one"
name "FinalClass64"
}
class child65 {
package "program.one"
name "FinalClass65"
}
class child66 {
package "program.one"
name "FinalClass66"
}
class child67 {
package "program.one"
name "FinalClass67"
}
class child68 {
package "program.one"
name "FinalClass68"
}
class child69 {
package "program.one"
name "FinalClass69"
}
class child70 {
package "program.one"
name "FinalClass70"
}
class child71 {
package "program.one"
name "FinalClass71"
}
class child72 {
package "program.one"
name "FinalClass72"
}
class child73 {
package "program.one"
name "FinalClass73"
}
class child74 {
package "program.one"
name "FinalClass74"
}
class child75 {
package "program.one"
name "FinalClass75"
}
class child76 {
package "program.one"
name "FinalClass76"
}
class child77 {
package "program.one"
name "FinalClass77"
}
class child78 {
package "program.one"
name "FinalClass78"
}
class child79 {
package "program.one"
name "FinalClass79"
}
class child80 {
package "program.one"
name "FinalClass80"
}
class child81 {
package "program.one"
name "FinalClass81"
}
class child82 {
package "program.one"
name "FinalClass82"
}
class child83 {
package "program.one"
name "FinalClass83"
}
class child84 {
package "program.one"
name "FinalClass84"
}
class child85 {
package "program.one"
name "FinalClass85"
}
class child86 {
package "program.one"
name "FinalClass86"
}
class child87 {
package "program.one"
name "FinalClass87"
}
class child88 {
package "program.one"
name "FinalClass88"
}
class child89 {
package "program.one"
name "FinalClass89"
}
class child90 {
package "program.one"
name "FinalClass90"
}
class child91 {
package "program.one"
name "FinalClass91"
}
class child92 {
package "program.one"
name "FinalClass92"
}
class child93 {
package "program.one"
name "FinalClass93"
}
class child94 {
package "program.one"
name "FinalClass94"
}
class child95 {
package "program.one"
name "FinalClass95"
}
class child96 {
package "program.one"
name "FinalClass96"
}
class child97 {
package "program.one"
name "FinalClass97"
}
class child98 {
package "program.one"
name "FinalClass98"
}
class child99 {
package "program.one"
name "FinalClass99"
}
class child100 {
package "program.one"
name "FinalClass100"
}
classes all {
child1,
child2,
child3,
child4,
child5,
child6,
child7,
child8,
child9,
child10,
child11,
child12,
child13,
child14,
child15,
child16,
child17,
child18,
child19,
child20,
child21,
child22,
child23,
child24,
child25,
child26,
child27,
child28,
child29,
child30,
child31,
child32,
child33,
child34,
child35,
child36,
child37,
child38,
child39,
child40,
child41,
child42,
child43,
child44,
child45,
child46,
child47,
child48,
child49,
child50,
child51,
child52,
child53,
child54,
child55,
child56,
child57,
child58,
child59,
child60,
child61,
child62,
child63,
child64,
child65,
child66,
child67,
child68,
child69,
child70,
child71,
child72,
child73,
child74,
child75,
child76,
child77,
child78,
child79,
child80,
child81,
child82,
child83,
child84,
child85,
child86,
child87,
child88,
child89,
child90,
child91,
child92,
child93,
child94,
child95,
child96,
child97,
child98,
child99,
child100
}
create_superclass csc2 {
child all
target parent_to_create
}
case final_1_2 {
description "EXS-POS: A lot of classes are changed. Only one refactoring."
program "FinalProgram1"
testflow {
assertTrue(csc2)
synchronize
compile
child1 extends parent_to_create
child2 extends parent_to_create
child50 extends parent_to_create
child100 extends parent_to_create
}
}
}

View file

@ -0,0 +1,562 @@
TestFile final_2 {
class a {
package "program.two"
name "A"
}
class b {
package "program.two"
name "B"
}
class c {
package "program.two"
name "C"
}
class d {
package "program.two"
name "D"
}
class e {
package "program.two"
name "E"
}
class f {
package "program.two"
name "F"
}
class g {
package "program.two"
name "G"
}
class h {
package "program.two"
name "H"
}
class i {
package "program.two"
name "I"
}
class j {
package "program.two"
name "J"
}
class k {
package "program.two"
name "K"
}
class l {
package "program.two"
name "L"
}
class m {
package "program.two"
name "M"
}
class n {
package "program.two"
name "N"
}
class o {
package "program.two"
name "O"
}
class p {
package "program.two"
name "P"
}
class q {
package "program.two"
name "Q"
}
class r {
package "program.two"
name "R"
}
class s {
package "program.two"
name "S"
}
class t {
package "program.two"
name "T"
}
class u {
package "program.two"
name "U"
}
class v {
package "program.two"
name "V"
}
class w {
package "program.two"
name "W"
}
class x {
package "program.two"
name "X"
}
class y {
package "program.two"
name "Y"
}
class z {
package "program.two"
name "Z"
}
class t1 {
package "program.two.tmp"
name "Tmp1"
}
class t2 {
package "program.two.tmp"
name "Tmp2"
}
class t3 {
package "program.two.tmp"
name "Tmp3"
}
class t4 {
package "program.two.tmp"
name "Tmp4"
}
class t5 {
package "program.two.tmp"
name "Tmp5"
}
class t6 {
package "program.two.tmp"
name "Tmp6"
}
class t7 {
package "program.two.tmp"
name "Tmp7"
}
class t8 {
package "program.two.tmp"
name "Tmp8"
}
class t9 {
package "program.two.tmp"
name "Tmp9"
}
class t10 {
package "program.two.tmp"
name "Tmp10"
}
class t11 {
package "program.two.tmp"
name "Tmp11"
}
class t12 {
package "program.two.tmp"
name "Tmp12"
}
class t13 {
package "program.two.tmp"
name "Tmp13"
}
class t14 {
package "program.two.tmp"
name "Tmp14"
}
class t15 {
package "program.two.tmp"
name "Tmp15"
}
class t16 {
package "program.two.tmp"
name "Tmp16"
}
class t17 {
package "program.two.tmp"
name "Tmp17"
}
class t18 {
package "program.two.tmp"
name "Tmp18"
}
class t19 {
package "program.two.tmp"
name "Tmp19"
}
class t20 {
package "program.two.tmp"
name "Tmp20"
}
class t21 {
package "program.two.tmp"
name "Tmp21"
}
class t22 {
package "program.two.tmp"
name "Tmp22"
}
classes bc {b,c}
classes de {d,e}
classes fg {f,g}
classes hi {h,i}
classes jk{j,k}
classes lm {l,m}
classes no {n,o}
classes pq {p,q}
classes rs {r,s}
classes tu {t,u}
classes vw {v,w}
classes xyz {x,y,z}
classes t1t2 {t1,t2}
classes t3t4 {t3,t4}
classes t5t6 {t5,t6}
classes t7t8 {t7,t8}
classes t9t10 {t9,t10}
classes t11t12 {t11,t12}
classes t13t14 {t13,t14}
classes t15t16 {t15,t16}
classes t17t18 {t17,t18}
classes t19t20 {t19,t20}
classes t22t21 {t22,t21}
create_superclass c1 {
child bc
target t1
}
create_superclass c2 {
child de
target t2
}
create_superclass c3 {
child fg
target t3
}
create_superclass c4 {
child hi
target t4
}
create_superclass c5 {
child jk
target t5
}
create_superclass c6 {
child lm
target t6
}
create_superclass c7 {
child no
target t7
}
create_superclass c8 {
child pq
target t8
}
create_superclass c9 {
child rs
target t9
}
create_superclass c10 {
child tu
target t10
}
create_superclass c11 {
child vw
target t11
}
create_superclass c12 {
child xyz
target t12
}
create_superclass c13 {
child t1t2
target t13
}
create_superclass c14 {
child t3t4
target t14
}
create_superclass c15 {
child t5t6
target t15
}
create_superclass c16 {
child t7t8
target t16
}
create_superclass c17 {
child t9t10
target t17
}
create_superclass c18 {
child t11t12
target t18
}
create_superclass c19 {
child t13t14
target t19
}
create_superclass c20 {
child t15t16
target t20
}
create_superclass c21 {
child t17t18
target t21
}
create_superclass c22 {
child t19t20
target t22
}
method m {
name "method"
}
pullup_method p1 {
parent t1
method m
}
pullup_method p2 {
parent t2
method m
}
pullup_method p3 {
parent t3
method m
}
pullup_method p4 {
parent t4
method m
}
pullup_method p5 {
parent t5
method m
}
pullup_method p6 {
parent t6
method m
}
pullup_method p7 {
parent t7
method m
}
pullup_method p8 {
parent t8
method m
}
pullup_method p9 {
parent t9
method m
}
pullup_method p10 {
parent t10
method m
}
pullup_method p11 {
parent t11
method m
}
pullup_method p12 {
parent t12
method m
}
pullup_method p13 {
parent t13
method m
}
pullup_method p14 {
parent t14
method m
}
pullup_method p15 {
parent t15
method m
}
pullup_method p16 {
parent t16
method m
}
pullup_method p17 {
parent t17
method m
}
pullup_method p18 {
parent t18
method m
}
pullup_method p19 {
parent t19
method m
}
pullup_method p20 {
parent t20
method m
}
pullup_method p21 {
parent t21
method m
}
pullup_method p22 {
parent t22
method m
}
pullup_method p23 {
parent a
method m
}
case final_2_1 {
description "Very many refactoring operations, synchronize after every refactoring"
program "FinalProgram2"
testflow {
assertTrue(c1)
assertTrue(p1)
assertTrue(c2)
assertTrue(p2)
assertTrue(c3)
assertTrue(p3)
assertTrue(c4)
assertTrue(p4)
assertTrue(c5)
assertTrue(p5)
assertTrue(c6)
assertTrue(p6)
assertTrue(c7)
assertTrue(p7)
assertTrue(c8)
assertTrue(p8)
assertTrue(c9)
assertTrue(p9)
assertTrue(c10)
assertTrue(p10)
assertTrue(c11)
assertTrue(p11)
assertTrue(c12)
assertTrue(p12)
assertTrue(c13)
assertTrue(p13)
assertTrue(c14)
assertTrue(p14)
assertTrue(c15)
assertTrue(p15)
assertTrue(c16)
assertTrue(p16)
assertTrue(c17)
assertTrue(p17)
assertTrue(c18)
assertTrue(p18)
assertTrue(c19)
assertTrue(p19)
assertTrue(c20)
assertTrue(p20)
assertTrue(c21)
assertTrue(p21)
assertTrue(c22)
assertTrue(p22)
assertTrue(p23)
synchronize
compile
a contains m
b ~contains m
b extends t1
t22 extends a
t1 ~contains m
t22 ~contains m
}
}
}

View file

@ -0,0 +1,41 @@
TestFile final_3 {
class child1 {
package "program.three"
name "ChildClass1"
}
class child2 {
package "program.three"
name "ChildClass2"
}
class parent_class {
package "java.lang"
name "SecurityManager "
}
method m {
name "method"
}
pullup_method p {
parent parent_class
method m
}
case final_3_1 {
description "EXS-NEG: Pull-up to java library."
program "FinalProgram3"
testflow {
assertFalse(p)
synchronize
compile
child1 contains m
child2 contains m
}
}
}

View file

@ -0,0 +1,219 @@
TestFile hiddenProgram1 {
class child1 {
package "hidden.program.one"
name "ChildClass1"
}
class child2 {
package "hidden.program.one"
name "ChildClass2"
}
class existing_parent {
package "hidden.program.one"
name "ParentClass"
}
class new_parent {
package "hidden.program.one"
name "NewParent"
}
class existing_class {
package "hidden.program.one"
name "ExistingClass"
}
classes childs {
child1,
child2
}
method child_method {
name "method"
}
class String {
package "java.lang"
name "String"
}
create_superclass executable_exs_1 {
child childs
target new_parent
}
case hidden_csc1_1 {
description "Have a look on inheritance relations."
program "hiddenProgram1"
testflow {
assertTrue(executable_exs_1)
synchronize
compile
child1 extends new_parent
child2 extends new_parent
new_parent extends existing_parent
child1 ~extends existing_parent
child2 ~extends existing_parent
}
}
create_superclass not_executable_exs_1 {
child childs
target existing_class
}
case hidden_csc1_2 {
description "Check which elements already exist."
program "hiddenProgram1"
testflow {
assertFalse(not_executable_exs_1)
synchronize
compile
child1 ~extends existing_class
child2 ~extends existing_class
}
}
pullup_method pum1 {
parent existing_parent
method child_method
}
case hidden_pum1_1 {
description "Have you considered all access relations?."
program "hiddenProgram1"
testflow {
assertFalse(pum1)
synchronize
compile
existing_parent ~contains child_method
child1 contains child_method
child2 contains child_method
}
}
method iDontExist {
name "iDontExist"
}
pullup_method hidden_pum1_2 {
parent existing_parent
method iDontExist
}
case hidden_pum1_2 {
description "Is every element really existent?"
program "hiddenProgram1"
testflow {
assertFalse(hidden_pum1_2)
}
}
}

View file

@ -0,0 +1,221 @@
TestFile hiddenProgram2 {
class child1 {
package "hidden.program.two"
name "ChildClass1"
}
class child2 {
package "hidden.program.two"
name "ChildClass2"
}
class child3 {
package "hidden.program.two"
name "ChildClass3"
}
class existing_parent {
package "hidden.program.two"
name "ParentClass"
}
class new_parent {
package "hidden.program.two"
name "NewParent"
}
classes childs {
child1,
child2
}
create_superclass not_executable_exs_1 {
child childs
target new_parent
}
case hidden_csc2_1 {
description "Have a look on inheritance relations."
program "hiddenProgram2"
testflow {
assertFalse(not_executable_exs_1)
synchronize
compile
child1 ~extends new_parent
child2 ~extends new_parent
}
}
method m {
name "method"
}
pullup_method executable_pum2_1 {
parent existing_parent
method m
}
case hidden_pum2_1 {
description "Do field accesses confuse your solution?"
program "hiddenProgram2"
testflow {
assertTrue(executable_pum2_1)
synchronize
compile
child1 ~contains m
child1 contains second
child1 ~contains third
child2 ~contains m
child2 contains second
child2 ~contains third
child3 ~contains m
child3 ~contains second
child3 contains third
existing_parent contains m
existing_parent ~contains second
existing_parent ~contains third
}
}
method second {
name "second"
}
method third {
name "third"
}
pullup_method not_executable_pum2_2 {
parent existing_parent
method second
}
case hidden_pum2_2 {
description "Do method calls confuse your solution?"
program "hiddenProgram2"
testflow {
assertFalse(not_executable_pum2_2)
synchronize
compile
child1 contains m
child1 contains second
child1 ~contains third
child2 ~contains m
child2 contains second
child2 ~contains third
child3 contains m
child3 ~contains second
child3 contains third
existing_parent ~contains m
existing_parent ~contains second
existing_parent ~contains third
}
}
}

View file

@ -0,0 +1,171 @@
TestFile hiddenProgram3 {
class child1 {
package "hidden.program.three"
name "ChildClass1"
}
class child2 {
package "hidden.program.three"
name "ChildClass2"
}
class new_parent {
package "hidden.program.three"
name "NewParent"
}
classes childs {
child1,
child2
}
method m {
name "method"