예제 #1
0
        public void ShipWithNoControlHasNoAcceleration()
        {
            var engine = new NuclearEngine(1000, 1000);
            var tank   = new FuelTank(7500);

            var ship = new Ship("ship", new FixedLocation(0, 0), engine, tank);

            Assert.AreEqual(0, ship.Acceleration);
        }
예제 #2
0
        public void ShipWithoutFuelHasNoAcceleration()
        {
            var bridge = new Bridge(100, 1000);
            var engine = new NuclearEngine(1000, 1000);

            var ship = new Ship("ship", new FixedLocation(0, 0), bridge, engine);

            Assert.AreEqual(0, ship.Acceleration);
        }
예제 #3
0
        public void ShipWithBridgeAndFuelAndEngineHasAcceleration()
        {
            var bridge = new Bridge(100, 1000);
            var engine = new NuclearEngine(1000, 1000);
            var tank   = new FuelTank(7500);

            var ship = new Ship("ship", new FixedLocation(0, 0), bridge, engine, tank);

            Assert.AreNotEqual(0, ship.Acceleration);
        }
예제 #4
0
        public void AccelerationIsThrustDividedByMass()
        {
            var bridge = new Bridge(100, 1000);
            var engine = new NuclearEngine(1000, 1000);
            var tank   = new FuelTank(7500);

            var ship = new Ship("ship", new FixedLocation(0, 0), bridge, engine, tank);

            var mass   = ship.Mass;
            var thrust = ship.Parts.Sum(p => p.Thrust);

            Assert.AreEqual(ship.Acceleration, thrust / mass);
        }
예제 #5
0
        private static Ship SetupCarrier()
        {
            var carrierBridge   = new Bridge(2000, 100);
            var carrierFuelTank = new FuelTank(60000);
            var carrierEngine1  = new NuclearEngine(10000, 1000);
            var carrierEngine2  = new NuclearEngine(10000, 1000);
            var carrierParts    = new List <Part>()
            {
                carrierBridge, carrierFuelTank, carrierEngine1, carrierEngine2
            };

            var carrier = new Ship("Carrier", new FixedLocation(100 * BILLION, 0), carrierParts);

            return(carrier);
        }