public void Construct() { const string defaultValue = "A"; var valueLine = new ValueLine <string>(defaultValue); CollectionAssert.IsEmpty(valueLine, "Value line contains changes."); Assert.AreEqual(defaultValue, valueLine.GetValueAtTime(0), "Invalid value at the start."); Assert.AreEqual(defaultValue, valueLine.GetValueAtTime(100), "Invalid value at the middle."); }
public void SetValue_NonDefault_AtStart() { const string defaultValue = "A"; const string nonDefaultValue = "B"; var valueLine = new ValueLine <string>(defaultValue); valueLine.SetValue(0, nonDefaultValue); CollectionAssert.AreEqual(new[] { new ValueChange <string>(0, nonDefaultValue) }, valueLine, "Invalid value changes."); Assert.AreEqual(nonDefaultValue, valueLine.GetValueAtTime(0), "Invalid value at the start."); Assert.AreEqual(nonDefaultValue, valueLine.GetValueAtTime(100), "Invalid value at the middle."); }
public void SetValue_Default_AtMiddle() { const string defaultValue = "A"; const long valueChangeTime = 100; var valueLine = new ValueLine <string>(defaultValue); valueLine.SetValue(valueChangeTime, defaultValue); CollectionAssert.IsEmpty(valueLine, "Value line contains changes."); Assert.AreEqual(defaultValue, valueLine.GetValueAtTime(0), "Invalid value at the start."); Assert.AreEqual(defaultValue, valueLine.GetValueAtTime(valueChangeTime), "Invalid value at the value change time."); Assert.AreEqual(defaultValue, valueLine.GetValueAtTime(valueChangeTime + 1), "Invalid value after the value change time."); }
public void SetValue_NonDefault_AtMiddle() { const string defaultValue = "A"; const string nonDefaultValue = "B"; const long valueChangeTime = 100; var valueLine = new ValueLine <string>(defaultValue); valueLine.SetValue(valueChangeTime, nonDefaultValue); CollectionAssert.AreEqual(new[] { new ValueChange <string>(valueChangeTime, nonDefaultValue) }, valueLine, "Invalid value changes."); Assert.AreEqual(defaultValue, valueLine.GetValueAtTime(0), "Invalid value at the start."); Assert.AreEqual(nonDefaultValue, valueLine.GetValueAtTime(valueChangeTime), "Invalid value at the value change time."); Assert.AreEqual(nonDefaultValue, valueLine.GetValueAtTime(valueChangeTime + 1), "Invalid value after the value change time."); }
private void SetValue_TwoChanges <TValue>( TValue defaultValue, TValue value1, long valueChangeTime1, TValue value2, long valueChangeTime2, IEnumerable <ValueChange <TValue> > expectedValueChanges, TValue expectedValueAtStart, TValue expectedValueBeforeFirstChange, TValue expectedValueAtFirstChange, TValue expectedValueAfterFirstChange, TValue expectedValueBeforeSecondChange, TValue expectedValueAtSecondChange, TValue expectedValueAfterSecondChange, bool checkValueChangesFirst) { var valueLine = new ValueLine <TValue>(defaultValue); valueLine.SetValue(valueChangeTime1, value1); valueLine.SetValue(valueChangeTime2, value2); if (checkValueChangesFirst) { CollectionAssert.AreEqual(expectedValueChanges, valueLine, "Invalid value changes."); } Assert.AreEqual(expectedValueAtStart, valueLine.GetValueAtTime(0), "Invalid value at start."); if (valueChangeTime1 > 0) { Assert.AreEqual(expectedValueBeforeFirstChange, valueLine.GetValueAtTime(valueChangeTime1 - 1), "Invalid value before first change."); } Assert.AreEqual(expectedValueAtFirstChange, valueLine.GetValueAtTime(valueChangeTime1), "Invalid value at first change."); Assert.AreEqual(expectedValueAfterFirstChange, valueLine.GetValueAtTime(valueChangeTime1 + 1), "Invalid value after first change."); if (valueChangeTime2 > 0) { Assert.AreEqual(expectedValueBeforeSecondChange, valueLine.GetValueAtTime(valueChangeTime2 - 1), "Invalid value before second change."); } Assert.AreEqual(expectedValueAtSecondChange, valueLine.GetValueAtTime(valueChangeTime2), "Invalid value at second change."); Assert.AreEqual(expectedValueAfterSecondChange, valueLine.GetValueAtTime(valueChangeTime2 + 1), "Invalid value after second change."); CollectionAssert.AreEqual(expectedValueChanges, valueLine, "Invalid value changes."); }