private void find_new_sequences_starting_with( IFigure beginning_figure, ISet <IFigure> familiar_figures ) { foreach (IFigure ending_figure in familiar_figures) { if ((beginning_figure.id == "3") && (ending_figure.id == "0")) { int test = 1; } if (!is_possible_sequence(beginning_figure, ending_figure)) { continue; } IFigure signal_pair = figure_provider.provide_sequence_for_pair( beginning_figure, ending_figure ); var appearances_of_beginning = get_unused_in_beginning_appearances_in_interval( action_groups.First().moment, action_groups.Last().moment, beginning_figure, signal_pair ); var appearances_of_ending = get_unused_in_ending_appearances_in_interval( action_groups.First().moment, action_groups.Last().moment, ending_figure, signal_pair ); if ( appearances_of_beginning.Any() && appearances_of_ending.Any() ) { save_sequence_appearances( signal_pair, appearances_of_beginning, appearances_of_ending ); } if (!sequence_appeared_at_least_twice(signal_pair)) { delete_figure(signal_pair); } } }
public IFigure provide_sequence_for_pair(IFigure beginning_figure, IFigure ending_figure) => figure_provider.provide_sequence_for_pair( beginning_figure, ending_figure ) as Figure;