public void MultipleOfRelations() { string xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Peach>\n" + " <DataModel name=\"TheDataModel\">"+ " <Number name=\"num1\" size=\"16\">"+ " <Relation type=\"size\" of=\"Data\" />"+ " </Number>"+ " <Blob name=\"Data\" value=\"00 01 02 03 04 05 06 07\" valueType=\"hex\" >"+ " <Hint name=\"BlobMutator-How\" value=\"ExpandAllRandom\" />"+ " </Blob>"+ " <Number name=\"num2\" size=\"16\">"+ " <Relation type=\"size\" of=\"Data\" />"+ " </Number>"+ " </DataModel>"+ " <StateModel name=\"TheState\" initialState=\"Initial\">"+ " <State name=\"Initial\">"+ " <Action type=\"output\">"+ " <DataModel ref=\"TheDataModel\"/>"+ " </Action>"+ " </State>"+ " </StateModel>"+ " <Test name=\"Default\">"+ " <StateModel ref=\"TheState\"/>"+ " <Publisher class=\"Null\"/>"+ " <Strategy class=\"Random\"/>"+ " </Test>"+ "</Peach>"; PitParser parser = new PitParser(); Dom.Dom dom = parser.asParser(null, new MemoryStream(ASCIIEncoding.ASCII.GetBytes(xml))); dom.tests[0].includedMutators = new List <string>(); dom.tests[0].includedMutators.Add("BlobMutator"); RunConfiguration config = new RunConfiguration(); config.range = true; config.rangeStart = 0; config.rangeStop = 9; Engine e = new Engine(null); e.startFuzzing(dom, config); Assert.AreEqual(10, dataModels.Count); for (int i = 0; i < 10; ++i) { var model = dataModels[i]; Assert.AreEqual(3, model.Count); Number num1 = model[0] as Number; Variant val1 = num1.InternalValue; Assert.GreaterOrEqual((long)val1, 8); Blob blob = model[1] as Blob; Variant val2 = blob.InternalValue; int len = val2.BitsToArray().Length; Assert.GreaterOrEqual(len, 8); Number num2 = model[2] as Number; Variant val3 = num2.InternalValue; Assert.GreaterOrEqual((long)val3, 8); Assert.AreEqual(len, (long)val1); Assert.AreEqual(len, (long)val3); } }