public override bool Equals(object obj)
        {
            // If parameter is null return false.
            if (obj == null)
            {
                return(false);
            }

            // If parameter cannot be cast to Dependencia return false.
            Dependencia p = obj as Dependencia;

            if ((System.Object)p == null)
            {
                return(false);
            }

            // Return true if the fields match:
            return(p.implicante.SetEquals(this.implicante) && p.implicados.SetEquals(this.implicados));
        }
Пример #2
0
        public HashSet <Dependencia> FunctionalDependeciesWithFPGrow(double confianza = 0.2)
        {
            if (confianza < 0 || confianza > 1)
            {
                throw new ArgumentOutOfRangeException();
            }
            if (tree == null)
            {
                throw new Exception("tree is null");
            }
            HashSet <ItemsSet <String> > result = tree.FPGrow(epsilon);
            HashSet <Dependencia>        posiblesDependencias = new HashSet <Dependencia>();

            foreach (ItemsSet <String> i in result)
            {
                if (i.Count > 1)
                {
                    posiblesDependencias.UnionWith(generarDependencias(i));
                }
            }

            HashSet <Dependencia> dependencias       = tree.TestDependenciasV2(posiblesDependencias, confianza);
            HashSet <Dependencia> dependenciasNombre = new HashSet <Dependencia>();

            Dictionary <string, string> dic = new Dictionary <string, string>();
            StreamReader lector             = new StreamReader("productos.txt");
            string       linea = lector.ReadLine();

            while (linea != null)
            {
                string[] array = linea.Split('|');
                dic.Add(array[0], array[1].Substring(1, array[1].Length - 1));
                linea = lector.ReadLine();
            }

            foreach (Dependencia d in dependencias)
            {
                ItemsSet <string> implicantes       = d.Implicante;
                ItemsSet <String> implicantesNombre = new ItemsSet <string>();
                foreach (string i in implicantes)
                {
                    string value = "";
                    dic.TryGetValue(i, out value);
                    implicantesNombre.Add(value);
                }

                ItemsSet <string> implicadosNombre = new ItemsSet <string>();
                ItemsSet <string> implicados       = d.Implicados;
                foreach (string idos in implicados)
                {
                    string value = "";
                    dic.TryGetValue(idos, out value);
                    implicadosNombre.Add(value);
                }
                Dependencia depen = new Dependencia(implicantesNombre, implicadosNombre);
                dependenciasNombre.Add(depen);
            }



            //return dependencias;

            //StringBuilder sb = new StringBuilder();
            //using (StreamWriter writer = new StreamWriter(ruta))
            //{
            //    foreach (Dependencia d in dependencias)
            //    {
            //        foreach (String s in d.Implicante)
            //        {
            //            sb.Append(s);
            //            sb.Append(itemSeparator);
            //        }
            //        sb.Remove(sb.Length - 1, 1);
            //        sb.Append(dependencySeparator);
            //        foreach (String s in d.Implicados)
            //        {
            //            sb.Append(s);
            //            sb.Append(itemSeparator);
            //        }
            //        sb.Remove(sb.Length - 1, 1);
            //        writer.WriteLine(sb.ToString());
            //        sb.Clear();
            //    }
            //}
            return(dependenciasNombre);
        }