def test_concatenate(): cg = Test_Chunk_Generator() test_chunk = \ { 7: {'source': 'foo', 'data': numpy.array([2,4,8,9])}, 8: {'source': 'foo', 'data': numpy.array([1,2,3,4])}, 9: {'source': 'foo', 'data': numpy.array([[1,2],[1,2],[1,2],[1,2]])}, 10: {'source': 'foo', 'data': numpy.array(['str1','str2','str3','str1'])}} chunk = chunks.concatenate(cg.chunks_list[0], cg.chunks_list[1]) assert chunk == test_chunk assert chunk == chunks.concatenate(cg.empty_chunk, chunk) assert chunk == chunks.concatenate(chunk, cg.empty_chunk)
def test_slice(): cg = Test_Chunk_Generator() chunk = chunks.concatenate(cg.chunks_list[0], cg.chunks_list[1]) chunk0_length = len(Chunk(cg.chunks_list[0])) concatenated_length = len(chunk) slice1 = chunk[:chunk0_length] slice2 = chunk[chunk0_length:] assert cg.chunks_list[0] == slice1 assert cg.chunks_list[1] == slice2 slice1 = chunk[:0] slice2 = chunk[0:] assert cg.empty_chunk == slice1 assert chunk == slice2 slice1 = chunk[:concatenated_length] slice2 = chunk[concatenated_length:] assert chunk == slice1 assert cg.empty_chunk == slice2 slice_end = chunk[-1] assert slice_end == \ { 7: {'source': 'foo', 'data': numpy.array([9])}, 8: {'source': 'foo', 'data': numpy.array([4])}, 9: {'source': 'foo', 'data': numpy.array([[1,2]])}, 10: {'source': 'foo', 'data': numpy.array(['str1'])}}
def test_with_times(): cg = Test_Chunk_Generator() avg_chunk = \ { 7: {'source': 'foo', 'data': numpy.array([9,14,15])}, 8: {'source': 'foo', 'data': numpy.array([5.5, numpy.NAN, 8])}, 9: {'source': 'foo', 'data': numpy.array([[1,2],[-9223372036854775808,-9223372036854775808],[1,2]])}, 10: {'source': 'foo', 'data': numpy.array(['str1','nan','str2'])}} nan_chunk = \ { 7: {'source': 'foo', 'data': numpy.array([1,2,3,4])}, 8: {'source': 'foo', 'data': numpy.array([-9223372036854775808,-9223372036854775808,-9223372036854775808,-9223372036854775808])}, 9: {'source': 'foo', 'data': numpy.array([[-9223372036854775808,-9223372036854775808],[-9223372036854775808,-9223372036854775808],[-9223372036854775808,-9223372036854775808],[-9223372036854775808,-9223372036854775808]])}, 10: {'source': 'foo', 'data': numpy.array(['nan','nan','nan','nan'])}} concat_chunk = \ {7: {'source': 'foo', 'data': numpy.array([ 2, 4, 8, 9, 13, 19])}, 8: {'source': 'foo', 'data': numpy.array([1, 2, 3, 4, 7, 8])}, 9: {'source': 'foo', 'data': numpy.array([[1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2]])}, 10: {'source': 'foo', 'data': numpy.array(['str1', 'str2', 'str3', 'str1', 'str1', 'str2'])}} chunk = chunks.concatenate(*cg.chunks_list) assert concat_chunk == chunk chunk_result = chunk.with_times([9,14,15], strategy='Average') assert avg_chunk == chunk_result chunk_result = chunk.with_times([]) assert cg.empty_chunk == chunk_result chunk_result = Chunk(cg.empty_chunk).with_times([1,2,3,4]) assert nan_chunk == chunk_result int_chunk = \ { 7: {'source': 'foo', 'data': numpy.array([1,3,20])}, 8: {'source': 'foo', 'data': numpy.array([1,1.5,8])}, 9: {'source': 'foo', 'data': numpy.array([[1,2],[1,2],[1,2]])}, 10: {'source': 'foo', 'data': numpy.array(['str1','str1','str2'])}} chunk_result = chunk.with_times([1,3,20]) assert int_chunk == chunk_result