def test_move0(self): rw = RandomWalk() rw.move(1, 0) self.assertAlmostEqual(1, rw.distance(), 7)
def test_random_walk2(self): for i in range(5000): self.assertNotEqual(0, RandomWalk.random_walk_multi(1, 1))
def test_random_walk(self): for i in range(5000): self.assertAlmostEqual(10, RandomWalk.random_walk_multi(100, 100), delta=4)
def test_move3(self): rw = RandomWalk() root2 = math.sqrt(2) rw.move(1, 1) self.assertAlmostEqual(root2, rw.distance(), 7) rw.move(1, 1) self.assertAlmostEqual(2 * root2, rw.distance(), 7) rw.move(0, -2) self.assertAlmostEqual(2, rw.distance(), 7) rw.move(-2, 0) self.assertAlmostEqual(0, rw.distance(), 7)
def test_move2(self): rw = RandomWalk() rw.move(0, 1) self.assertAlmostEqual(1, rw.distance(), 7) rw.move(0, 1) self.assertAlmostEqual(2, rw.distance(), 7) rw.move(0, -1) self.assertAlmostEqual(1, rw.distance(), 7) rw.move(0, -1) self.assertAlmostEqual(0, rw.distance(), 7)
import matplotlib.pyplot as plt from randomwalk.random_walk import RandomWalk while True: rw = RandomWalk() rw.fill_walk() point_number = list(range(rw.num_points)) plt.scatter(rw.x_values, rw.y_values, c=point_number, cmap=plt.cm.Blues, edgecolors='none', s=15) # 突出起点和终点 plt.scatter(0, 0, c='green', edgecolors='none', s=100) plt.scatter(rw.x_values[-1], rw.y_values[-1], c='red', edgecolors='none', s=100) # 隐藏坐标轴 plt.axes().get_xaxis().set_visible(False) plt.axes().get_yaxis().set_visible(False) plt.show() keep_running = input("Make another walk? (y/n):") if keep_running == 'n': break