public void TestOneStep() { //System.Diagnostics.Debugger.Launch(); var system = new JupiterSystem(@"<x=-1, y=0, z=2> <x=2, y=-10, z=-7> <x=4, y=-8, z=8> <x=3, y=5, z=-1>"); system.SimulateTimeStep(); Assert.Equal(new[] { Moon.ParseInput("pos=<x= 2, y=-1, z= 1>, vel=<x= 3, y=-1, z=-1>"), Moon.ParseInput("pos=<x= 3, y=-7, z=-4>, vel=<x= 1, y= 3, z= 3>"), Moon.ParseInput("pos=<x= 1, y=-7, z= 5>, vel=<x=-3, y= 1, z=-3>"), Moon.ParseInput("pos=<x= 2, y= 2, z= 0>, vel=<x=-1, y=-3, z= 1>") }, system.Moons); }
public void TestSimulation() { //System.Diagnostics.Debugger.Launch(); var system = new JupiterSystem(@"<x=-1, y=0, z=2> <x=2, y=-10, z=-7> <x=4, y=-8, z=8> <x=3, y=5, z=-1>"); system.SimulateTimeStep(10); Assert.Equal(new[] { Moon.ParseInput("pos=<x= 2, y= 1, z=-3>, vel=<x=-3, y=-2, z= 1>"), Moon.ParseInput("pos=<x= 1, y=-8, z= 0>, vel=<x=-1, y= 1, z= 3>"), Moon.ParseInput("pos=<x= 3, y=-6, z= 1>, vel=<x= 3, y= 2, z=-3>"), Moon.ParseInput("pos=<x= 2, y= 0, z= 4>, vel=<x= 1, y=-1, z=-1>") }, system.Moons); Assert.Equal(179, system.GetTotalEnergy()); }