public void CountDynamicChunkables() { int MAX_NUM = 3000; var @base = new Base(); var customChunk = new List <double>(); var customChunkArr = new double[MAX_NUM]; for (int i = 0; i < MAX_NUM; i++) { customChunk.Add(i / 2); customChunkArr[i] = i; } @base["@(1000)cc1"] = customChunk; @base["@(1000)cc2"] = customChunkArr; var num = @base.GetTotalChildrenCount(); Assert.AreEqual(MAX_NUM / 1000 * 2 + 1, num); }
public void DescendantsCounting() { Base myBase = new Base(); var myList = new List <object>(); // These should be counted! for (int i = 0; i < 100; i++) { var smolBase = new Base(); smolBase["test"] = i; myList.Add(smolBase); } // Primitives should not be counted! for (int i = 0; i < 10; i++) { myList.Add(i); } myList.Add("Hello"); myList.Add(new { hai = "bai" }); myBase["@detachTheList"] = myList; var dictionary = new Dictionary <string, object>(); for (int i = 0; i < 10; i++) { var smolBase = new Base() { applicationId = i.ToString() }; dictionary[$"key {i}"] = smolBase; } dictionary["string value"] = "bol"; dictionary["int value"] = 42; dictionary["THIS IS RECURSIVE SURPRISE"] = myBase; myBase["@detachTheDictionary"] = dictionary; var count = myBase.GetTotalChildrenCount(); Assert.AreEqual(112, count); var tableTest = new DiningTable(); var tableKidsCount = tableTest.GetTotalChildrenCount(); Assert.AreEqual(10, tableKidsCount); // Explicitely test for recurisve references! var recursiveRef = new Base() { applicationId = "random" }; recursiveRef["@recursive"] = recursiveRef; var supriseCount = recursiveRef.GetTotalChildrenCount(); Assert.AreEqual(2, supriseCount); }