public void Test1() { var s = new Stack <int>(); s.Push(3); s.Push(2); s.Push(1); var sut = new ReverseStack(); sut.Revese(s); var expected = new Stack <int>(); expected.Push(1); expected.Push(2); expected.Push(3); var areEqual = StackHelpers.CompareStacks(s, expected); Assert.IsTrue(areEqual); }
public void CreateBoardAndStockParts() { // Entity might not be initialized yet. var boardContainer = ContainerManagerComponent.Ensure <Container>(MachineFrameComponent.BoardContainer, Owner, out var existedBoard); var partContainer = ContainerManagerComponent.Ensure <Container>(MachineFrameComponent.PartContainer, Owner, out var existedParts); if (string.IsNullOrEmpty(BoardPrototype)) { return; } var entityManager = Owner.EntityManager; if (existedBoard || existedParts) { // We're done here, let's suppose all containers are correct just so we don't screw SaveLoadSave. if (boardContainer.ContainedEntities.Count > 0) { return; } } var board = entityManager.SpawnEntity(BoardPrototype, Owner.Transform.Coordinates); if (!_boardContainer.Insert(board)) { throw new Exception($"Couldn't insert board with prototype {BoardPrototype} to machine with prototype {Owner.Prototype?.ID ?? "N/A"}!"); } if (!board.TryGetComponent <MachineBoardComponent>(out var machineBoard)) { throw new Exception($"Entity with prototype {BoardPrototype} doesn't have a {nameof(MachineBoardComponent)}!"); } foreach (var(part, amount) in machineBoard.Requirements) { for (var i = 0; i < amount; i++) { var p = entityManager.SpawnEntity(MachinePartComponent.Prototypes[part], Owner.Transform.Coordinates); if (!partContainer.Insert(p)) { throw new Exception($"Couldn't insert machine part of type {part} to machine with prototype {Owner.Prototype?.ID ?? "N/A"}!"); } } } foreach (var(stackType, amount) in machineBoard.MaterialRequirements) { var s = StackHelpers.SpawnStack(stackType, amount, Owner.Transform.Coordinates); if (!partContainer.Insert(s)) { throw new Exception($"Couldn't insert machine material of type {stackType} to machine with prototype {Owner.Prototype?.ID ?? "N/A"}"); } } foreach (var(compName, info) in machineBoard.ComponentRequirements) { for (var i = 0; i < info.Amount; i++) { var c = entityManager.SpawnEntity(info.DefaultPrototype, Owner.Transform.Coordinates); if (!partContainer.Insert(c)) { throw new Exception($"Couldn't insert machine component part with default prototype '{compName}' to machine with prototype {Owner.Prototype?.ID ?? "N/A"}"); } } } }