def test_calculate_bounds(self): self.assertEqual((0, 1000, 1000), params.bounds(1000, 0, 1, includes_action_and_meta_data=False)) self.assertEqual((0, 1000, 2000), params.bounds(1000, 0, 1, includes_action_and_meta_data=True)) self.assertEqual((0, 500, 500), params.bounds(1000, 0, 2, includes_action_and_meta_data=False)) self.assertEqual((500, 500, 500), params.bounds(1000, 1, 2, includes_action_and_meta_data=False)) self.assertEqual((0, 200, 400), params.bounds(800, 0, 4, includes_action_and_meta_data=True)) self.assertEqual((400, 200, 400), params.bounds(800, 1, 4, includes_action_and_meta_data=True)) self.assertEqual((800, 200, 400), params.bounds(800, 2, 4, includes_action_and_meta_data=True)) self.assertEqual((1200, 200, 400), params.bounds(800, 3, 4, includes_action_and_meta_data=True)) self.assertEqual((0, 250, 250), params.bounds(2000, 0, 8, includes_action_and_meta_data=False)) self.assertEqual((250, 250, 250), params.bounds(2000, 1, 8, includes_action_and_meta_data=False)) self.assertEqual((500, 250, 250), params.bounds(2000, 2, 8, includes_action_and_meta_data=False)) self.assertEqual((750, 250, 250), params.bounds(2000, 3, 8, includes_action_and_meta_data=False)) self.assertEqual((1000, 250, 250), params.bounds(2000, 4, 8, includes_action_and_meta_data=False)) self.assertEqual((1250, 250, 250), params.bounds(2000, 5, 8, includes_action_and_meta_data=False)) self.assertEqual((1500, 250, 250), params.bounds(2000, 6, 8, includes_action_and_meta_data=False)) self.assertEqual((1750, 250, 250), params.bounds(2000, 7, 8, includes_action_and_meta_data=False))
def test_calculate_bounds(self): self.assertEqual((0, 1000, 1000), params.bounds(1000, 0, 1, params.ActionMetaData.Generate)) self.assertEqual((0, 1000, 2000), params.bounds(1000, 0, 1, params.ActionMetaData.SourceFile)) self.assertEqual((0, 500, 500), params.bounds(1000, 0, 2, params.ActionMetaData.Generate)) self.assertEqual((500, 500, 500), params.bounds(1000, 1, 2, params.ActionMetaData.Generate)) self.assertEqual((0, 400, 400), params.bounds(800, 0, 2, params.ActionMetaData.NoMetaData)) self.assertEqual((400, 400, 400), params.bounds(800, 1, 2, params.ActionMetaData.NoMetaData)) self.assertEqual((0, 267, 267), params.bounds(800, 0, 3, params.ActionMetaData.NoMetaData)) self.assertEqual((267, 267, 267), params.bounds(800, 1, 3, params.ActionMetaData.NoMetaData)) self.assertEqual((534, 266, 266), params.bounds(800, 2, 3, params.ActionMetaData.NoMetaData)) self.assertEqual((0, 200, 400), params.bounds(800, 0, 4, params.ActionMetaData.SourceFile)) self.assertEqual((400, 200, 400), params.bounds(800, 1, 4, params.ActionMetaData.SourceFile)) self.assertEqual((800, 200, 400), params.bounds(800, 2, 4, params.ActionMetaData.SourceFile)) self.assertEqual((1200, 200, 400), params.bounds(800, 3, 4, params.ActionMetaData.SourceFile)) self.assertEqual((0, 250, 250), params.bounds(2000, 0, 8, params.ActionMetaData.Generate)) self.assertEqual((250, 250, 250), params.bounds(2000, 1, 8, params.ActionMetaData.Generate)) self.assertEqual((500, 250, 250), params.bounds(2000, 2, 8, params.ActionMetaData.Generate)) self.assertEqual((750, 250, 250), params.bounds(2000, 3, 8, params.ActionMetaData.Generate)) self.assertEqual((1000, 250, 250), params.bounds(2000, 4, 8, params.ActionMetaData.Generate)) self.assertEqual((1250, 250, 250), params.bounds(2000, 5, 8, params.ActionMetaData.Generate)) self.assertEqual((1500, 250, 250), params.bounds(2000, 6, 8, params.ActionMetaData.Generate)) self.assertEqual((1750, 250, 250), params.bounds(2000, 7, 8, params.ActionMetaData.Generate))
def test_calculate_non_multiple_bounds(self): # in this test case, each client would need to read 1333.3333 lines. Instead we let most clients read 1333 # lines and every third client, one line more (1334). self.assertEqual((0, 1333, 1333), params.bounds(16000, 0, 12, includes_action_and_meta_data=False)) self.assertEqual((1333, 1334, 1334), params.bounds(16000, 1, 12, includes_action_and_meta_data=False)) self.assertEqual((2667, 1333, 1333), params.bounds(16000, 2, 12, includes_action_and_meta_data=False)) self.assertEqual((4000, 1333, 1333), params.bounds(16000, 3, 12, includes_action_and_meta_data=False)) self.assertEqual((5333, 1334, 1334), params.bounds(16000, 4, 12, includes_action_and_meta_data=False)) self.assertEqual((6667, 1333, 1333), params.bounds(16000, 5, 12, includes_action_and_meta_data=False)) self.assertEqual((8000, 1333, 1333), params.bounds(16000, 6, 12, includes_action_and_meta_data=False)) self.assertEqual((9333, 1334, 1334), params.bounds(16000, 7, 12, includes_action_and_meta_data=False)) self.assertEqual((10667, 1333, 1333), params.bounds(16000, 8, 12, includes_action_and_meta_data=False)) self.assertEqual((12000, 1333, 1333), params.bounds(16000, 9, 12, includes_action_and_meta_data=False)) self.assertEqual((13333, 1334, 1334), params.bounds(16000, 10, 12, includes_action_and_meta_data=False)) self.assertEqual((14667, 1333, 1333), params.bounds(16000, 11, 12, includes_action_and_meta_data=False)) # With 3500 docs and 6 clients, every client needs to read 583.33 docs. We have two lines per doc, which makes it # 2 * 583.333 docs = 1166.6666 lines per client. We let them read 1166 and 1168 lines respectively (583 and 584 docs). self.assertEqual((0, 583, 1166), params.bounds(3500, 0, 6, includes_action_and_meta_data=True)) self.assertEqual((1166, 584, 1168), params.bounds(3500, 1, 6, includes_action_and_meta_data=True)) self.assertEqual((2334, 583, 1166), params.bounds(3500, 2, 6, includes_action_and_meta_data=True)) self.assertEqual((3500, 583, 1166), params.bounds(3500, 3, 6, includes_action_and_meta_data=True)) self.assertEqual((4666, 584, 1168), params.bounds(3500, 4, 6, includes_action_and_meta_data=True)) self.assertEqual((5834, 583, 1166), params.bounds(3500, 5, 6, includes_action_and_meta_data=True))
def test_calculate_bounds(self): self.assertEqual((0, 1000), params.bounds(1000, 0, 1)) self.assertEqual((0, 500), params.bounds(1000, 0, 2)) self.assertEqual((500, 500), params.bounds(1000, 1, 2)) self.assertEqual((0, 400), params.bounds(800, 0, 2)) self.assertEqual((400, 400), params.bounds(800, 1, 2)) self.assertEqual((0, 267), params.bounds(800, 0, 3)) self.assertEqual((267, 267), params.bounds(800, 1, 3)) self.assertEqual((534, 266), params.bounds(800, 2, 3)) self.assertEqual((0, 250), params.bounds(2000, 0, 8)) self.assertEqual((250, 250), params.bounds(2000, 1, 8)) self.assertEqual((500, 250), params.bounds(2000, 2, 8)) self.assertEqual((750, 250), params.bounds(2000, 3, 8)) self.assertEqual((1000, 250), params.bounds(2000, 4, 8)) self.assertEqual((1250, 250), params.bounds(2000, 5, 8)) self.assertEqual((1500, 250), params.bounds(2000, 6, 8)) self.assertEqual((1750, 250), params.bounds(2000, 7, 8))