blob: 86e056a78bb05ff6ef878015f79eaf4212574b1d [file] [log] [blame]
package org.eclipse.photran.refactoring.tests.rename;
import junit.framework.Test;
import org.eclipse.photran.core.vpg.util.LineCol;
public class Rename9 extends RenameTestSuite
{
private String filename = "rename9.f90";
private Ident i1 = var(filename, "i1", new LineCol[] { lc(3,14), lc(36,12) });
private Ident j1 = var(filename, "j1", new LineCol[] { lc(4,23) });
private Ident k1 = var(filename, "k1", new LineCol[] { lc(5,14), lc(7,31) });
private Ident f1 = var(filename, "f1", new LineCol[] { lc(12,20), lc(12,26), lc(36,24) });
private Ident i2 = var(filename, "i2", new LineCol[] { lc(17,14) });
private Ident j2 = var(filename, "j2", new LineCol[] { lc(18,22), lc(39,16) });
private Ident k2 = var(filename, "k2", new LineCol[] { lc(20,13), lc(22,31), lc(39,20) });
private Ident f2 = var(filename, "f2", new LineCol[] { lc(27,20), lc(27,26) });
private Ident j1implicit = var(filename, "j1", new LineCol[] { lc(36,16) });
private Ident k1implicit = var(filename, "k1", new LineCol[] { lc(36,20) });
private Ident zimplicit = var(filename, "z", new LineCol[] { lc(36,30) });
private Ident i2implicit = var(filename, "i2", new LineCol[] { lc(39,12) });
private Ident f2implicit = var(filename, "f2", new LineCol[] { lc(39,29) });
// Note that the order here determines the order in the expectSuccess matrix below
private Ident[] allVars = new Ident[]
{
i1, j1, k1, f1, i2, j2, k2, f2, j1implicit, k1implicit, zimplicit, i2implicit, f2implicit
};
private boolean[][] expectSuccess = new boolean[][]
{
// IMPORTANT:
// * Subprogram arguments cannot be renamed
// * x cannot be renamed to x
// * j1 and j1implicit have the SAME NAME, so their columns should be identical (same for k1, etc.)
/* vvv can be renamed to >>> i1 j1 k1 f1 i2 j2 k2 f2 j1implicit k1implicit zimplicit i2implicit f2implicit
/* i1 */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
/* j1 */ new boolean[] { false, false, false, false, true, true, true, true, false, false, true, true, true },
/* k1 */ new boolean[] { false, false, false, false, true, true, true, true, false, false, false, true, true },
/* f1 */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
/* i2 */ new boolean[] { true, true, true, true, false, false, false, false, true, true, true, false, false },
/* j2 */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
/* k2 */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
/* f2 */ new boolean[] { true, true, true, true, false, false, false, false, true, true, true, false, false },
/* j1implicit */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
/* k1implicit */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
/* zimplicit */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
/* i2implicit */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
/* f2implicit */ new boolean[] { false, false, false, false, false, false, false, false, false, false, false, false, false },
};
public static Test suite() throws Exception
{
return new Rename9();
}
public Rename9() throws Exception
{
startTests("Renaming in module with interfaces and visibilities");
for (int i = 0; i < allVars.length; i++)
{
addSuccessTests(allVars[i], "something_different");
for (int j = 0; j < allVars.length; j++)
{
if (expectSuccess[i][j])
addSuccessTests(allVars[i], allVars[j].getName());
else
addPreconditionTests(allVars[i], allVars[j].getName());
}
}
endTests();
}
}