public void Produce_WireShortage_LessThan1() { var wire = new WireStorage(Integer.Int(int.MaxValue)); var manager = new ClipperManager(1000); Integer min = Integer.Int(int.MaxValue); Integer max = Integer.Int(int.MinValue); Integer total = Integer.Zero; for (int i = 0; i < 1000; ++i) { if (i == 333) { wire.TryTake(wire.Wire, out var _); } else if (i == 666) { wire.Add(Integer.Int(int.MaxValue)); } var value = manager.ProduceClips(wire); total += value; min = Integer.Min(min, value); max = Integer.Max(max, value); } Assert.Equal(Integer.Int(0), min); Assert.Equal(Integer.Int(10), max); Assert.InRange(total, Integer.Int(6600), Integer.Int(6700)); }
public void TryTake_Exact() { var storage = new WireStorage(Integer.Int(123)); Assert.True(storage.TryTake(Integer.Int(123), out var taken)); Assert.Equal(Integer.Int(123), taken); Assert.Equal(Integer.Int(0), storage.Wire); }
public void TryTake_Nothing() { var storage = new WireStorage(Integer.Int(0)); Assert.False(storage.TryTake(Integer.Int(125), out var taken)); Assert.Equal(taken, Integer.Int(0)); Assert.Equal(Integer.Int(0), storage.Wire); }
public void TryTake_Negative() { var storage = new WireStorage(Integer.Int(123)); Assert.Throws <ArgumentException>(() => storage.TryTake(Integer.Int(-20), out var _)); }