本文整理汇总了C#中Func.FindNode方法的典型用法代码示例。如果您正苦于以下问题:C# Func.FindNode方法的具体用法?C# Func.FindNode怎么用?C# Func.FindNode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Func
的用法示例。
在下文中一共展示了Func.FindNode方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestBalancingAnTreeAfterGarbageCollecting
public void TestBalancingAnTreeAfterGarbageCollecting()
{
var frequences = new[] {1, 2, 3, 400, 700, 600, 70, 68, 67, 59, 56, 55, 58, 57, 56, 63};
//частоты заданы с таким расчетом, чтобы редкие занимали нижние этажи
float exp;
var root = new Func<CacheNode<int, double>>(() => BuildAndBalanceTree(frequences, out exp, 2))();
Collect();
Collect();
Collect();
Collect();
Collect();
int depth = 0;
var maxDepth =
Enumerable.Range(0, frequences.Count()).Max(a =>
{
root.FindNode(a, 1, out depth);
return depth;
});
var deletedNode = root.FindNode(0, 1, out depth);
Assert.AreEqual(0, deletedNode);
deletedNode = root.FindNode(1, 1, out depth);
Assert.AreEqual(0, deletedNode);
deletedNode = root.FindNode(2, 1, out depth);
Assert.AreEqual(0, deletedNode);
deletedNode = root.FindNode(3, 1, out depth);
Assert.AreNotEqual(0, deletedNode);
}
示例2: TestTreeDepthLimitAfterBalance
public void TestTreeDepthLimitAfterBalance()
{
const int count = 30;
const int maxAllowedDepth = 5;
float d;
int p = 0;
var tree =
new Func<CacheNode<int, double>>(
() => BuildAndBalanceTree(Enumerable.Range(0, count).ToArray(), out d, maxAllowedDepth))();
//тоже мусор не всегд собирается
for (int i = 0; i < count; i++)
{
Collect();
}
var maxDepth =
Enumerable.Range(0, count).Max(a =>
{
int depth;
tree.FindNode(a, 1, out depth);
return depth;
});
Assert.IsTrue(maxDepth <= maxAllowedDepth);
}