def subobject_operation_working(): """Проверка работы операции нахождения элемента по индексу""" real_string_segment_size = minimal_data_length["string_segment"] minimal_data_length["string_segment"] = 4 real_list_segment_size = minimal_data_length["list_segment"] minimal_data_length["list_segment"] = 4 setting.initialisation("program.yovc") str_num = add.string_segment() put.string_segment(str_num, "char_list", "Эта строка не влезет в маленький сегмент") list_num = add.list_segment() put.list_segment(list_num, "link_list", [i for i in range(40)]) view.tape() print(get.string_segment(str_num)) view.string_segment(str_num) print(get.list_segment(list_num)) view.list_segment(list_num) index = append.data_segment("number", 25) objects.Sub_object(["link", str_num], ["link", index]) kind, element_link = pull.memory_stack() display.entity(element_link) objects.Sub_object(["link", list_num], ["link", index]) kind, element_link = pull.memory_stack() display.entity(element_link) minimal_data_length["string_segment"] = real_string_segment_size minimal_data_length["list_segment"] = real_list_segment_size
def dictionary_item_writing(): """Проверка на запись элемента списка""" args = [128, 64, 256] write.entity(0, "dictionary_item", args) display.entity(0) change.dictionary_item_part(0, "key", 48) display.entity(0)
def entity_writing(): """Проверка на запись объектов""" entities = [[0, "none", None], [0, "link", 1000], [0, "command", 15], [0, "logic", 1], [0, "number", 255], [0, "chars", "something"]] for entity in entities: write.entity(*entity) display.cell(0) display.cell(1) display.entity(0)
def segment_body(num): data_begin, data_end = data_range(num) top = find.attribute(num, "first_empty_cell") index = data_begin obj_type, obj_value = read.entity(index) while index < top: print(index, end=" ") display.entity(index) index += memory_control.determine_object_size(obj_type, obj_value) if index < data_end: obj_type, obj_value = read.entity(index) print()
def entity(num): kind, value = get.entity(num) if kind in seg_types: if kind in seg_visible_types: print(value) else: raise LowerCommandError(f"Неотображаемый тип сегмента {kind}") else: return display.entity(num)
def memory_stack_operations_working(): """Проверка работы операций стека памяти""" setting.initialisation("program.yovc") value = 248 stack.Push(["number", value]) display.entity(438) stack.Pop(["link", 438]) display.entity(438) print() number_1 = 97 number_2 = -65 num_1 = append.data_segment("number", number_1) num_2 = append.data_segment("number", number_2) math.Add(["link", num_1], ["link", num_2]) display.entity(440) stack.Pop(["link", 440]) display.entity(440)
def attribute(num, name): index, kind = find_attribute(num, name) display.entity(index)
def array_writing(): """Проверка на запись массива""" write.entity(0, "array", [5, 10, 15, 20, 25]) display.entity(0)
def entity_link(arg): display.entity(arg)