Example #1
0
        private bool FFeasible(Match mtc)
        {
            int inod1 = mtc.Inod1;
            int inod2 = mtc.Inod2;

            if (_fContextCheck)
            {
                IContextCheck icc1 = _vfgr1.GetAttr(inod1) as IContextCheck;
                IContextCheck icc2 = _vfgr2.GetAttr(inod2) as IContextCheck;

                if (icc1 != null && icc2 != null)
                {
                    if (!icc1.FCompatible(icc2))
                    {
                        return(false);
                    }
                }
            }

            List <int> lstIn1  = _vfgr1.InNeighbors(inod1);
            List <int> lstIn2  = _vfgr2.InNeighbors(inod2);
            List <int> lstOut1 = _vfgr1.OutNeighbors(inod1);
            List <int> lstOut2 = _vfgr2.OutNeighbors(inod2);

            // In Neighbors in mapping must map to In Neighbors...

            if (!FLocallyIsomorphic(lstIn1, lstIn2))
            {
                return(false);
            }

            // Ditto the above for out neighbors...

            if (!FLocallyIsomorphic(lstOut1, lstOut2))
            {
                return(false);
            }

            // Verify the in, out and new predicate

            if (!FInOutNew(lstOut1, lstIn1, lstOut2, lstIn2))
            {
                return(false);
            }

            return(true);
        }
Example #2
0
 public bool FCompatible(IContextCheck icc)
 {
     return(((NodeType)icc)._nodeType == _nodeType);
 }
Example #3
0
 public bool FCompatible(IContextCheck icc)
 {
     return(((NodeColor)icc)._strColor == _strColor);
 }
 public bool FCompatible(IContextCheck icc)
 {
     return ((NodeType)icc)._nodeType == _nodeType;
 }