Example #1
0
        public void Iteration_GetSet_OK()
        {
            Dictionary <string, string[]> IterationSets = new Dictionary <string, string[]>();

            IterationSets.Add("List", new string[] { "A", "B", "C" });
            IterationSets.Add("Numbers01", new string[] { "10", "9", "8", "7", "6", "5", "4", "3", "2", "1", "0" });
            IterationSets.Add("Numbers02", new string[] { "250", "255", "260", "265", "270", "275", "280" });

            Iteration iter = new Iteration();

            iter.AddListItems("List", new List <string>(IterationSets["List"]));
            iter.AddNumberRange("Numbers01", 10, -1, 0, Iteration.EndValueEval.Inclusive);
            iter.AddNumberSequence("Numbers02", 250, 5, 7);

            string serialized = ObjectXMLSerializer <Iteration> .CreateDocumentFormat(iter);

            Iteration iterCloned = ObjectXMLSerializer <Iteration> .CreateObjectFormat(serialized);

            Assert.AreEqual(iter.IterationItems.Count, iterCloned.IterationItems.Count, "Iteration item count mismatch");
            foreach (int key in iter.IterationItems.Keys)
            {
                Assert.AreEqual(
                    iter.IterationItems[key].Name,
                    iterCloned.IterationItems[key].Name,
                    "Iteration item name mismatch for key " + key.ToString());
                Assert.AreEqual(
                    iter.IterationItems[key].IterationValues.Count,
                    iterCloned.IterationItems[key].IterationValues.Count,
                    "Iteration item count mismatch for key " + key.ToString());
            }
            Assert.AreEqual(iter.TotalIterationCount, iterCloned.TotalIterationCount, "Total count mismatch");
        }
Example #2
0
        public void Iteration_MultiEntry_areCountsOK()
        {
            Dictionary <string, string[]> IterationSets = new Dictionary <string, string[]>();

            IterationSets.Add("List", new string[] { "A", "B", "C" });
            IterationSets.Add("Numbers01", new string[] { "10", "9", "8", "7", "6", "5", "4", "3", "2", "1", "0" });
            IterationSets.Add("Numbers02", new string[] { "250", "255", "260", "265", "270", "275", "280" });

            Iteration iter = new Iteration();

            iter.AddListItems("List", new List <string>(IterationSets["List"]));
            Assert.AreEqual(iter.IterationItems.Count, 1);
            Assert.AreEqual(iter.TotalIterationCount, IterationSets["List"].LongLength);

            iter.AddNumberRange("Numbers01", 10, -1, 0, Iteration.EndValueEval.Inclusive);
            Assert.AreEqual(iter.IterationItems.Count, 2);
            Assert.AreEqual(
                iter.TotalIterationCount,
                IterationSets["List"].LongLength * IterationSets["Numbers01"].LongLength
                );

            iter.AddNumberSequence("Numbers02", 250, 5, 7);
            Assert.AreEqual(iter.IterationItems.Count, 3);
            Assert.AreEqual(
                iter.TotalIterationCount,
                IterationSets["List"].LongLength * IterationSets["Numbers01"].LongLength * IterationSets["Numbers02"].LongLength
                );

            Int64 masterIndex     = 0;
            int   lengthList      = IterationSets["List"].Length;
            int   lengthNumbers01 = IterationSets["Numbers01"].Length;
            int   lengthNumbers02 = IterationSets["Numbers02"].Length;

            // loop order: outermost is first added, to innermost is last item added.
            for (int indexList = 0; indexList < lengthList; indexList++)             //
            {
                for (int indexNumbers01 = 0; indexNumbers01 < lengthNumbers01; indexNumbers01++)
                {
                    for (int indexNumbers02 = 0; indexNumbers02 < lengthNumbers02; indexNumbers02++)
                    {
                        Dictionary <string, string> thisIndexIteration = iter.GetIterationValueSet(masterIndex);
                        foreach (string listKey in IterationSets.Keys)
                        {
                            int listPosition = listKey == "List" ? indexList : (listKey == "Numbers01" ? indexNumbers01 : indexNumbers02);
                            Assert.AreEqual(
                                thisIndexIteration[listKey],
                                IterationSets[listKey][listPosition],
                                "Failure for masterIndex @ {0} for {1}: expected: \"{2}\"; got \"{3}\"",
                                new object[] {
                                masterIndex,
                                listKey,
                                IterationSets[listKey][listPosition],
                                thisIndexIteration[listKey]
                            }
                                );
                        }
                        masterIndex++;
                    }
                }
            }
            Assert.AreEqual(masterIndex, iter.TotalIterationCount);
        }