/// <summary> /// Initializes the <see cref="VolatileProcessingPipelineStageSetting{T}"/> class. /// </summary> static VolatileProcessingPipelineStageSetting() { // Check whether the value type and derived types (if any) are immutable. // May return <c>false</c> although all derived types are immutable in practice, // but the analysis could not guarantee that this is always the case (false-negative). // => Immutable types can be shared by the setting and client code without defensive copying sUseDefensiveCopying = !Immutability.HasImmutableDerivationsOnly <T>(); }
public void FibonacciTest() { Assert.AreEqual(0, Immutability.Fibonacci(0)); Assert.AreEqual(1, Immutability.Fibonacci(1)); Assert.AreEqual(1, Immutability.Fibonacci(2)); Assert.AreEqual(2, Immutability.Fibonacci(3)); Assert.AreEqual(3, Immutability.Fibonacci(4)); Assert.AreEqual(5, Immutability.Fibonacci(5)); Assert.AreEqual(55, Immutability.Fibonacci(10)); Assert.AreEqual(6765, Immutability.Fibonacci(20)); }