﻿using System;
using System.Collections.Generic;
using PRPE.Models.Base;

namespace PRPE.Models {
    /// <summary>
    ///     PatternRecognitionTrainingModel class.
    /// </summary>
    /// <typeparam name="T">Type of the object that is used for training.</typeparam>
    public class PatternRecognitionTrainingModel<T> where T : PatternRecognitionEntityBase<T>, new() {
        /// <summary>
        ///     An array of items that will be used as input for the training.
        /// </summary>
        public IList<T> Input { get; set; }

        /// <summary>
        ///     The expected result.
        /// </summary>
        public T Output { get; set; }

        /// <summary>
        ///     The dynamic method to compare a particular property between the input and output.
        /// </summary>
        public Func<T, T, bool> Compare { get; set; }
    }
}