Merge branch 'develop' into group-bitmap-accessor

This commit is contained in:
Axel Kohlmeyer
2024-07-24 00:08:55 -04:00
434 changed files with 38492 additions and 13867 deletions

View File

@ -120,14 +120,14 @@ TEST_F(ComputeChunkTest, ChunkAtom)
EXPECT_EQ(get_scalar("mols"), 6);
EXPECT_EQ(get_scalar("types"), 5);
auto cbin1d = get_peratom("bin1d");
auto cbin2d = get_peratom("bin2d");
auto cbin3d = get_peratom("bin3d");
auto cbinsph = get_peratom("binsph");
auto cbincyl = get_peratom("bincyl");
auto cmols = get_peratom("mols");
auto ctypes = get_peratom("types");
auto tag = get_peratom("tags");
auto *cbin1d = get_peratom("bin1d");
auto *cbin2d = get_peratom("bin2d");
auto *cbin3d = get_peratom("bin3d");
auto *cbinsph = get_peratom("binsph");
auto *cbincyl = get_peratom("bincyl");
auto *cmols = get_peratom("mols");
auto *ctypes = get_peratom("types");
auto *tag = get_peratom("tags");
for (int i = 0; i < natoms; ++i) {
EXPECT_EQ(cbin1d[i], chunk1d[(int)tag[i]]);
@ -180,16 +180,16 @@ TEST_F(ComputeChunkTest, PropertyChunk)
command("run 0 post no");
END_HIDE_OUTPUT();
auto cprop1 = get_vector("prop1");
auto *cprop1 = get_vector("prop1");
EXPECT_EQ(cprop1[0], 0);
EXPECT_EQ(cprop1[1], 7);
EXPECT_EQ(cprop1[2], 16);
EXPECT_EQ(cprop1[3], 6);
EXPECT_EQ(cprop1[4], 0);
auto cprop2 = get_vector("prop2");
int nempty = 0;
int ncount = 0;
auto *cprop2 = get_vector("prop2");
int nempty = 0;
int ncount = 0;
for (int i = 0; i < 25; ++i) {
if (cprop2[i] == 0)
++nempty;
@ -199,7 +199,7 @@ TEST_F(ComputeChunkTest, PropertyChunk)
EXPECT_EQ(nempty, 17);
EXPECT_EQ(ncount, 29);
auto cprop3 = get_array("prop3");
auto *cprop3 = get_array("prop3");
EXPECT_EQ(cprop3[0][0], 34);
EXPECT_EQ(cprop3[1][0], 38);
EXPECT_EQ(cprop3[2][0], 43);
@ -250,15 +250,15 @@ TEST_F(ComputeChunkTest, ChunkComputes)
command("fix hist2 all ave/time 1 1 1 c_tmp mode vector");
command("run 0 post no");
END_HIDE_OUTPUT();
auto cang = get_array("ang");
auto ccom = get_array("com");
auto cdip = get_array("dip");
auto cgyr = get_vector("gyr");
auto cmom = get_array("mom");
auto comg = get_array("omg");
auto ctmp = get_vector("tmp");
auto ctrq = get_array("trq");
auto cvcm = get_array("vcm");
auto *cang = get_array("ang");
auto *ccom = get_array("com");
auto *cdip = get_array("dip");
auto *cgyr = get_vector("gyr");
auto *cmom = get_array("mom");
auto *comg = get_array("omg");
auto *ctmp = get_vector("tmp");
auto *ctrq = get_array("trq");
auto *cvcm = get_array("vcm");
EXPECT_NEAR(cang[0][0], -0.01906982, EPSILON);
EXPECT_NEAR(cang[0][1], -0.02814532, EPSILON);
EXPECT_NEAR(cang[0][2], -0.03357393, EPSILON);
@ -329,7 +329,7 @@ TEST_F(ComputeChunkTest, ChunkTIP4PComputes)
command("fix hist1 all ave/time 1 1 1 c_dip[*] mode vector");
command("run 0 post no");
END_HIDE_OUTPUT();
auto cdip = get_array("dip");
auto *cdip = get_array("dip");
EXPECT_NEAR(cdip[0][3], 0.35912150, EPSILON);
EXPECT_NEAR(cdip[1][3], 0.68453713, EPSILON);
EXPECT_NEAR(cdip[2][3], 0.50272643, EPSILON);
@ -358,11 +358,11 @@ TEST_F(ComputeChunkTest, ChunkSpreadGlobal)
const int natoms = lammps_get_natoms(lmp);
auto cgyr = get_vector("gyr");
auto cspr = get_peratom("spr");
auto cglb = get_peratom("glb");
auto codd = get_peratom("odd");
auto ctag = get_peratom("tags");
auto *cgyr = get_vector("gyr");
auto *cspr = get_peratom("spr");
auto *cglb = get_peratom("glb");
auto *codd = get_peratom("odd");
auto *ctag = get_peratom("tags");
for (int i = 0; i < natoms; ++i) {
EXPECT_EQ(cspr[i], cgyr[chunkmol[(int)ctag[i]] - 1]);
@ -389,8 +389,8 @@ TEST_F(ComputeChunkTest, ChunkReduce)
const int nchunks = get_scalar("mols");
auto cprp = get_vector("prp");
auto cred = get_vector("red");
auto *cprp = get_vector("prp");
auto *cred = get_vector("red");
for (int i = 0; i < nchunks; ++i)
EXPECT_EQ(cprp[i], cred[i]);

View File

@ -103,9 +103,9 @@ TEST_F(ComputeGlobalTest, Energy)
EXPECT_NEAR(get_scalar("pr1"), 1956948.4735454607, 0.000000005);
EXPECT_NEAR(get_scalar("pr2"), 1956916.7725807722, 0.000000005);
EXPECT_DOUBLE_EQ(get_scalar("pr3"), 0.0);
auto pr1 = get_vector("pr1");
auto pr2 = get_vector("pr2");
auto pr3 = get_vector("pr3");
auto *pr1 = get_vector("pr1");
auto *pr2 = get_vector("pr2");
auto *pr3 = get_vector("pr3");
EXPECT_NEAR(pr1[0], 2150600.9207200543, 0.000000005);
EXPECT_NEAR(pr1[1], 1466949.7512112649, 0.000000005);
EXPECT_NEAR(pr1[2], 2253294.7487050635, 0.000000005);
@ -127,7 +127,7 @@ TEST_F(ComputeGlobalTest, Energy)
if (has_tally) {
EXPECT_NEAR(get_scalar("pe4"), 15425.840923850392, 0.000000005);
auto pe5 = get_vector("pe5");
auto *pe5 = get_vector("pe5");
EXPECT_NEAR(pe5[0], 23803.966677151559, 0.000000005);
EXPECT_NEAR(pe5[1], -94.210004432380643, 0.000000005);
EXPECT_NEAR(pe5[2], 115.58040355478101, 0.000000005);
@ -177,12 +177,12 @@ TEST_F(ComputeGlobalTest, Geometry)
command("run 0 post no");
END_HIDE_OUTPUT();
auto com1 = get_vector("com1");
auto com2 = get_vector("com2");
auto mu1 = get_vector("mu1");
auto mu2 = get_vector("mu2");
auto rg1 = get_vector("rg1");
auto rg2 = get_vector("rg2");
auto *com1 = get_vector("com1");
auto *com2 = get_vector("com2");
auto *mu1 = get_vector("mu1");
auto *mu2 = get_vector("mu2");
auto *rg1 = get_vector("rg1");
auto *rg2 = get_vector("rg2");
EXPECT_NEAR(com1[0], 1.4300952724948282, 0.0000000005);
EXPECT_NEAR(com1[1], -0.29759806705328351, 0.0000000005);
@ -215,10 +215,10 @@ TEST_F(ComputeGlobalTest, Geometry)
EXPECT_NEAR(rg2[4], -5.0315240817290841, 0.0000000005);
EXPECT_NEAR(rg2[5], 1.1103378503822141, 0.0000000005);
if (has_extra) {
auto mom1 = get_vector("mom1");
auto mom2 = get_vector("mom2");
auto mop1 = get_vector("mop1");
auto mop2 = get_array("mop2");
auto *mom1 = get_vector("mom1");
auto *mom2 = get_vector("mom2");
auto *mop1 = get_vector("mop1");
auto *mop2 = get_array("mop2");
EXPECT_DOUBLE_EQ(mom1[0], 0.0054219056685341164);
EXPECT_DOUBLE_EQ(mom1[1], -0.054897225112275558);
EXPECT_DOUBLE_EQ(mom1[2], 0.059097392692385661);
@ -263,11 +263,11 @@ TEST_F(ComputeGlobalTest, Reduction)
command("run 0 post no");
END_HIDE_OUTPUT();
auto min = get_vector("min");
auto max = get_vector("max");
auto sum = get_vector("sum");
auto ave = get_vector("ave");
auto rep = get_vector("rep");
auto *min = get_vector("min");
auto *max = get_vector("max");
auto *sum = get_vector("sum");
auto *ave = get_vector("ave");
auto *rep = get_vector("rep");
EXPECT_DOUBLE_EQ(get_scalar("chg"), 0.51000000000000001);
@ -318,13 +318,13 @@ TEST_F(ComputeGlobalTest, Counts)
command("run 0 post no");
END_HIDE_OUTPUT();
auto tsum = get_vector("tsum");
auto tcnt = get_vector("tcnt");
auto bcnt = get_vector("bcnt");
auto bbrk = get_scalar("bcnt");
auto acnt = get_vector("acnt");
auto dcnt = get_vector("dcnt");
auto icnt = get_vector("icnt");
auto *tsum = get_vector("tsum");
auto *tcnt = get_vector("tcnt");
auto *bcnt = get_vector("bcnt");
auto bbrk = get_scalar("bcnt");
auto *acnt = get_vector("acnt");
auto *dcnt = get_vector("dcnt");
auto *icnt = get_vector("icnt");
EXPECT_DOUBLE_EQ(tsum[0], tcnt[0]);
EXPECT_DOUBLE_EQ(tsum[1], tcnt[1]);

View File

@ -376,9 +376,9 @@ TEST_F(GroupTest, VariableFunctions)
int three = group->find("three");
int four = group->find("four");
auto right = domain->get_region_by_id("right");
auto left = domain->get_region_by_id("left");
auto top = domain->get_region_by_id("top");
auto *right = domain->get_region_by_id("right");
auto *left = domain->get_region_by_id("left");
auto *top = domain->get_region_by_id("top");
EXPECT_EQ(group->count_all(), 64);
EXPECT_EQ(group->count(one), 16);

View File

@ -106,7 +106,7 @@ TEST_F(LabelMapTest, Atoms)
EXPECT_EQ(utils::expand_type(FLERR, "**", Atom::ATOM, lmp), nullptr);
EXPECT_EQ(utils::expand_type(FLERR, "1*2*", Atom::ATOM, lmp), nullptr);
auto expanded = utils::expand_type(FLERR, "C1", Atom::ATOM, lmp);
auto *expanded = utils::expand_type(FLERR, "C1", Atom::ATOM, lmp);
EXPECT_THAT(expanded, StrEq("1"));
delete[] expanded;
expanded = utils::expand_type(FLERR, "O#", Atom::ATOM, lmp);
@ -268,7 +268,7 @@ TEST_F(LabelMapTest, Topology)
EXPECT_EQ(atom->lmap->find("N2'-C1\"-N2'", Atom::BOND), -1);
platform::unlink("labelmap_topology.inc");
auto expanded = utils::expand_type(FLERR, "N2'", Atom::ATOM, lmp);
auto *expanded = utils::expand_type(FLERR, "N2'", Atom::ATOM, lmp);
EXPECT_THAT(expanded, StrEq("2"));
delete[] expanded;
expanded = utils::expand_type(FLERR, "[C1][C1]", Atom::BOND, lmp);

View File

@ -54,7 +54,7 @@ TEST_F(LatticeRegionTest, lattice_none)
BEGIN_HIDE_OUTPUT();
command("lattice none 2.0");
END_HIDE_OUTPUT();
auto lattice = lmp->domain->lattice;
auto *lattice = lmp->domain->lattice;
ASSERT_EQ(lattice->style, Lattice::NONE);
ASSERT_EQ(lattice->xlattice, 2.0);
ASSERT_EQ(lattice->ylattice, 2.0);
@ -84,7 +84,7 @@ TEST_F(LatticeRegionTest, lattice_sc)
auto output = END_CAPTURE_OUTPUT();
ASSERT_THAT(output, ContainsRegex(".*Lattice spacing in x,y,z = 1.5.* 2.* 3.*"));
auto lattice = lmp->domain->lattice;
auto *lattice = lmp->domain->lattice;
ASSERT_EQ(lattice->xlattice, 1.5);
ASSERT_EQ(lattice->ylattice, 2.0);
ASSERT_EQ(lattice->zlattice, 3.0);
@ -152,7 +152,7 @@ TEST_F(LatticeRegionTest, lattice_bcc)
BEGIN_HIDE_OUTPUT();
command("lattice bcc 4.2 orient x 1 1 0 orient y -1 1 0");
END_HIDE_OUTPUT();
auto lattice = lmp->domain->lattice;
auto *lattice = lmp->domain->lattice;
ASSERT_EQ(lattice->style, Lattice::BCC);
ASSERT_DOUBLE_EQ(lattice->xlattice, sqrt(2.0) * 4.2);
ASSERT_DOUBLE_EQ(lattice->ylattice, sqrt(2.0) * 4.2);
@ -177,7 +177,7 @@ TEST_F(LatticeRegionTest, lattice_fcc)
BEGIN_HIDE_OUTPUT();
command("lattice fcc 3.5 origin 0.5 0.5 0.5");
END_HIDE_OUTPUT();
auto lattice = lmp->domain->lattice;
auto *lattice = lmp->domain->lattice;
ASSERT_EQ(lattice->style, Lattice::FCC);
ASSERT_DOUBLE_EQ(lattice->xlattice, 3.5);
ASSERT_DOUBLE_EQ(lattice->ylattice, 3.5);
@ -215,7 +215,7 @@ TEST_F(LatticeRegionTest, lattice_hcp)
BEGIN_HIDE_OUTPUT();
command("lattice hcp 3.0 orient z 0 0 1");
END_HIDE_OUTPUT();
auto lattice = lmp->domain->lattice;
auto *lattice = lmp->domain->lattice;
ASSERT_EQ(lattice->style, Lattice::HCP);
ASSERT_DOUBLE_EQ(lattice->xlattice, 3.0);
ASSERT_DOUBLE_EQ(lattice->ylattice, 3.0 * sqrt(3.0));
@ -259,7 +259,7 @@ TEST_F(LatticeRegionTest, lattice_diamond)
BEGIN_HIDE_OUTPUT();
command("lattice diamond 4.1 orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1");
END_HIDE_OUTPUT();
auto lattice = lmp->domain->lattice;
auto *lattice = lmp->domain->lattice;
ASSERT_EQ(lattice->style, Lattice::DIAMOND);
ASSERT_DOUBLE_EQ(lattice->xlattice, 6.6952719636073539);
ASSERT_DOUBLE_EQ(lattice->ylattice, 5.7982756057296889);
@ -312,7 +312,7 @@ TEST_F(LatticeRegionTest, lattice_sq)
command("dimension 2");
command("lattice sq 3.0");
END_HIDE_OUTPUT();
auto lattice = lmp->domain->lattice;
auto *lattice = lmp->domain->lattice;
ASSERT_EQ(lattice->style, Lattice::SQ);
ASSERT_DOUBLE_EQ(lattice->xlattice, 3.0);
ASSERT_DOUBLE_EQ(lattice->ylattice, 3.0);
@ -338,7 +338,7 @@ TEST_F(LatticeRegionTest, lattice_sq2)
command("dimension 2");
command("lattice sq2 2.0");
END_HIDE_OUTPUT();
auto lattice = lmp->domain->lattice;
auto *lattice = lmp->domain->lattice;
ASSERT_EQ(lattice->style, Lattice::SQ2);
ASSERT_DOUBLE_EQ(lattice->xlattice, 2.0);
ASSERT_DOUBLE_EQ(lattice->ylattice, 2.0);
@ -364,7 +364,7 @@ TEST_F(LatticeRegionTest, lattice_hex)
command("dimension 2");
command("lattice hex 2.0");
END_HIDE_OUTPUT();
auto lattice = lmp->domain->lattice;
auto *lattice = lmp->domain->lattice;
ASSERT_EQ(lattice->style, Lattice::HEX);
ASSERT_DOUBLE_EQ(lattice->xlattice, 2.0);
ASSERT_DOUBLE_EQ(lattice->ylattice, 3.4641016151377544);
@ -414,7 +414,7 @@ TEST_F(LatticeRegionTest, lattice_custom)
"basis $t 0.0 0.125 "
"basis $f 0.5 0.125 ");
END_HIDE_OUTPUT();
auto lattice = lmp->domain->lattice;
auto *lattice = lmp->domain->lattice;
ASSERT_EQ(lattice->style, Lattice::CUSTOM);
ASSERT_DOUBLE_EQ(lattice->xlattice, 4.34);
ASSERT_DOUBLE_EQ(lattice->ylattice, 4.34 * sqrt(3.0));
@ -499,7 +499,7 @@ TEST_F(LatticeRegionTest, region_block_lattice)
END_HIDE_OUTPUT();
ASSERT_EQ(lmp->domain->triclinic, 0);
auto x = lmp->atom->x;
auto *x = lmp->atom->x;
ASSERT_EQ(lmp->atom->natoms, 8);
ASSERT_DOUBLE_EQ(x[0][0], 0.0);
ASSERT_DOUBLE_EQ(x[0][1], 0.0);
@ -525,7 +525,7 @@ TEST_F(LatticeRegionTest, region_block_box)
END_HIDE_OUTPUT();
ASSERT_EQ(lmp->domain->triclinic, 0);
auto x = lmp->atom->x;
auto *x = lmp->atom->x;
ASSERT_EQ(lmp->atom->natoms, 1);
ASSERT_DOUBLE_EQ(x[0][0], 1.125);
ASSERT_DOUBLE_EQ(x[0][1], 1.125);

View File

@ -80,7 +80,7 @@ TEST_F(RegionTest, NoBox)
list = domain->get_region_list();
EXPECT_EQ(list.size(), 9);
auto reg = domain->get_region_by_id("reg1");
auto *reg = domain->get_region_by_id("reg1");
EXPECT_EQ(reg->interior, 1);
EXPECT_EQ(reg->scaleflag, 1);
EXPECT_EQ(reg->bboxflag, 1);
@ -231,17 +231,17 @@ TEST_F(RegionTest, Counts)
command("region reg10 prism 0 5 0 5 -5 5 0.0 0.0 0.0"); // same as block
END_HIDE_OUTPUT();
auto x = atom->x;
auto reg1 = domain->get_region_by_id("reg1");
auto reg2 = domain->get_region_by_id("reg2");
auto reg3 = domain->get_region_by_id("reg3");
auto reg4 = domain->get_region_by_id("reg4");
auto reg5 = domain->get_region_by_id("reg5");
auto reg6 = domain->get_region_by_id("reg6");
auto reg7 = domain->get_region_by_id("reg7");
auto reg8 = domain->get_region_by_id("reg8");
auto reg9 = domain->get_region_by_id("reg9");
auto reg10 = domain->get_region_by_id("reg10");
auto *x = atom->x;
auto *reg1 = domain->get_region_by_id("reg1");
auto *reg2 = domain->get_region_by_id("reg2");
auto *reg3 = domain->get_region_by_id("reg3");
auto *reg4 = domain->get_region_by_id("reg4");
auto *reg5 = domain->get_region_by_id("reg5");
auto *reg6 = domain->get_region_by_id("reg6");
auto *reg7 = domain->get_region_by_id("reg7");
auto *reg8 = domain->get_region_by_id("reg8");
auto *reg9 = domain->get_region_by_id("reg9");
auto *reg10 = domain->get_region_by_id("reg10");
int count1, count2, count3, count4, count5, count6, count7, count8, count9, count10;
count1 = count2 = count3 = count4 = count5 = count6 = count7 = count8 = count9 = count10 = 0;
reg1->prematch();

View File

@ -56,7 +56,7 @@ TEST_F(ResetAtomsIDTest, MolIDAll)
{
if (lmp->atom->natoms == 0) GTEST_SKIP();
auto molid = lmp->atom->molecule;
auto *molid = lmp->atom->molecule;
ASSERT_EQ(molid[GETIDX(1)], 1);
ASSERT_EQ(molid[GETIDX(2)], 1);
ASSERT_EQ(molid[GETIDX(3)], 1);
@ -128,7 +128,7 @@ TEST_F(ResetAtomsIDTest, DeletePlusAtomID)
{
if (lmp->atom->natoms == 0) GTEST_SKIP();
auto molid = lmp->atom->molecule;
auto *molid = lmp->atom->molecule;
// delete two water molecules
BEGIN_HIDE_OUTPUT();
@ -206,7 +206,7 @@ TEST_F(ResetAtomsIDTest, PartialOffset)
{
if (lmp->atom->natoms == 0) GTEST_SKIP();
auto molid = lmp->atom->molecule;
auto *molid = lmp->atom->molecule;
// delete two water molecules
BEGIN_HIDE_OUTPUT();
@ -286,7 +286,7 @@ TEST_F(ResetAtomsIDTest, DeleteAdd)
{
if (lmp->atom->natoms == 0) GTEST_SKIP();
auto molid = lmp->atom->molecule;
auto *molid = lmp->atom->molecule;
// delete two water molecules
BEGIN_HIDE_OUTPUT();
@ -445,12 +445,12 @@ TEST_F(ResetAtomsIDTest, TopologyData)
ASSERT_EQ(lmp->atom->natoms, 23);
ASSERT_EQ(lmp->atom->map_tag_max, 26);
auto num_bond = lmp->atom->num_bond;
auto num_angle = lmp->atom->num_angle;
auto bond_atom = lmp->atom->bond_atom;
auto angle_atom1 = lmp->atom->angle_atom1;
auto angle_atom2 = lmp->atom->angle_atom2;
auto angle_atom3 = lmp->atom->angle_atom3;
auto *num_bond = lmp->atom->num_bond;
auto *num_angle = lmp->atom->num_angle;
auto *bond_atom = lmp->atom->bond_atom;
auto *angle_atom1 = lmp->atom->angle_atom1;
auto *angle_atom2 = lmp->atom->angle_atom2;
auto *angle_atom3 = lmp->atom->angle_atom3;
ASSERT_EQ(num_bond[GETIDX(1)], 2);
ASSERT_EQ(bond_atom[GETIDX(1)][0], 2);
ASSERT_EQ(bond_atom[GETIDX(1)][1], 3);

View File

@ -85,7 +85,7 @@ TEST_F(SetTest, NoBoxNoAtoms)
command("create_atoms 1 single 0.5 0.5 0.5");
command("compute 0 all property/atom proc");
END_HIDE_OUTPUT();
auto compute = lmp->modify->get_compute_by_id("0");
auto *compute = lmp->modify->get_compute_by_id("0");
compute->compute_peratom();
ASSERT_EQ(compute->vector_atom[0], 0);
@ -119,7 +119,7 @@ TEST_F(SetTest, StylesTypes)
command("compute 1 all property/atom id type mol");
END_HIDE_OUTPUT();
auto compute = lmp->modify->get_compute_by_id("1");
auto *compute = lmp->modify->get_compute_by_id("1");
ASSERT_NE(compute, nullptr);
compute->compute_peratom();
@ -409,7 +409,7 @@ TEST_F(SetTest, EffPackage)
command("compute 2 all property/atom espin eradius");
END_HIDE_OUTPUT();
auto compute = lmp->modify->get_compute_by_id("2");
auto *compute = lmp->modify->get_compute_by_id("2");
ASSERT_NE(compute, nullptr);
compute->compute_peratom();

View File

@ -157,6 +157,7 @@ TEST_F(VariableTest, CreateDelete)
ASSERT_THAT(variable->retrieve("three"), StrEq("four"));
ASSERT_THAT(variable->retrieve("four2"), StrEq("2"));
ASSERT_THAT(variable->retrieve("five1"), StrEq("001"));
ASSERT_THAT(variable->retrieve("five2"), StrEq("010"));
ASSERT_THAT(variable->retrieve("seven"), StrEq(" 2.00"));
ASSERT_THAT(variable->retrieve("ten"), StrEq("1"));
ASSERT_THAT(variable->retrieve("eight"), StrEq(""));
@ -388,8 +389,9 @@ TEST_F(VariableTest, Expressions)
command("print \"${err2}\""););
TEST_FAILURE(".*ERROR on proc 0: Variable err3: Invalid power expression in variable formula.*",
command("print \"${err3}\""););
TEST_FAILURE(".*ERROR: Variable one: Mis-matched special function variable in variable formula.*",
command("print \"${isrt}\""););
TEST_FAILURE(
".*ERROR: Variable one: Mis-matched special function variable in variable formula.*",
command("print \"${isrt}\""););
TEST_FAILURE(".*ERROR: Variable vec4: index 11 exceeds vector size of 10.*",
command("print \"${xxxl}\""););
}