using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Graphs;

namespace Matching
{
    /// <summary>
    /// Résultat d'un test d'isomorphisme. Cet objet permet de savoir si le graphe
    /// est sous graphe de l'autre, si le graphe et isomorphe à l'autre, et de connaître 
    /// la profondeur maximale des noeuds explorés. 
    /// </summary>
    public class ResultIsomorphism
    {

        Boolean subGraphIsomorphism;
        Boolean graphIsomorphism;
        int deepest;

        /// <summary>
        /// Permet de savoir s'il y a isomorphisme de sous-graphe.
        /// </summary>
        public Boolean SubGraphIsomorphism
        {
            get { return subGraphIsomorphism; }
            set { subGraphIsomorphism = value; }
        }

        /// <summary>
        /// Permet de savoir s'il y a isomorphisme de graphe.
        /// </summary>
        public Boolean GraphIsomorphism
        {
            get { return graphIsomorphism; }
            set { graphIsomorphism = value; }
        }
        
        /// <summary>
        /// Permet de connaître la profondeur maximale des noeuds explorés lors du test d'isomorphisme.
        /// </summary>
        public int Deepest
        {
            get { return deepest; }
            set { deepest = value; }
        }

        /// <summary>
        /// Constructeur initialisant les attributs.
        /// </summary>
        public ResultIsomorphism()
        {
            subGraphIsomorphism = false;
            graphIsomorphism = false;
            deepest = 0;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="_subGraphIsomorphism"></param>
        /// <param name="_graphIsomorphism"></param>
        /// <param name="_deepest"></param>
        public ResultIsomorphism(Boolean _subGraphIsomorphism, Boolean _graphIsomorphism, int _deepest)
        {
            subGraphIsomorphism = _subGraphIsomorphism;
            graphIsomorphism = _graphIsomorphism;
            deepest = _deepest;
        }
    }
}
