Hi all,
i have a task which is create an algorithm from a java code.and i need help from u guys to check on my algo put a comment on what should i change or why it is wrong.
I really appreciate if u could help me on this matter...
thanks a lot.
here is my algorithm:
Input: input configuration set,S (number of value for p1(v1), number of value for p2(v2),.....number of value for pn (vn));
number of interaction strength, t;
number of parameter, p;
Output: test case suite , A;
begin
initialize binary_list as empty binary set;
choose binary sets (in parameter order p1,p2,... pn) where number of bit '1' equal to t;
push binary sets into binary_list;
while binary_list not empty
for each binary_list: b = binary set
//count number of value combination base on b;
initialize count = 1;
for (i <= p)
if b(i) = '1';
v(i);
count = count * v(i);
end if
end for
initialize repetition = 1;
for (i<= p)
if b(i) = '1'
initialize current_combination = 0;
initialize temp as an empty set of temporary test set;
while (current_combination < count)
initialize v_o_p = 0;
choose value where parameter (i);
insert or update v_o_p into temp;
repeat same value for repetition time;
end while
repetition = repetition * v(i)
end if
else if b(i) = '0'
choose value from parameter (i) randomly;
update temp;
end for
end for each
end while
//write candidates into final test set
while temp is not empty
pop 1st test case in temp and push into A;
for each of test case in temp: tc = test case
compare tc to test case in A;
if (compare == 0)
insert tc into A;
else
remove tc in temp;
end for each
end while
the brief explanation by example:
user input:
set of parameter: A:a1,a2,a3; B:b1,b2,b3; C:c1,c2,c3
number of parameter= 3
the value of each parameter = 3 for A, 3 for B, 3 for C
number of strength,t = 2
the set of binary in this case is = 3 (base on parameter orientation ABC)
1- 011
2- 101
3- 110
operates for each binary set:
example for binary set no 1= 011;
starts from last bit which is '1';
so in empty set named temp for first bit should have:
xxc1
xxc2
xxc3
xxc1
xxc2
xxc3
xxc1
xxc2
xxc3
2nd bit, temp should have (updated temp):
xb1c1
xb1c2
xb1c3
xb2c1
xb2c2
xb2c3
xb3c1
xb3c2
xb3c3
last round for 1st bit is '0', so should select randomly from parameter A's values:
a1b1c1
a3b1c2
a2b1c3
a1b2c1
a3b2c2
a3b2c3
a2b3c1
a3b3c2
a1b3c3
this repeated until all binary sets operated with same operation.
then all data in temp will be compared to each other if no duplicate data, push into final_set.