public RelationshipData(IRelationshipInputData relationshipInputData)
 {
     Data = relationshipInputData.Relationships.Select(r =>
     {
         var kvs = r.Split(")");
         return(new KeyValuePair <string, string>(kvs[0], kvs[1]));
     });
 }
        public int Calculate(IRelationshipInputData data)
        {
            var relationshipData = new RelationshipData(data);
            var relationships    = relationshipData.Data
                                   .Select(r => new Relationship <string>(r.Key, r.Value))
                                   .ToList();

            var root = new TreeNode <string>("COM");

            var tree = new Tree <string>(root, relationships);

            var count = tree.CountNodes();

            return(count);
        }
        public int Calculate(IRelationshipInputData data)
        {
            var relationshipData = new RelationshipData(data);
            var relationships    = relationshipData.Data
                                   .Select(r => new Relationship <string>(r.Key, r.Value))
                                   .ToList();

            var root = new TreeNode <string>("COM");

            var tree = new Tree <string>(root, relationships);

            var distance = tree.DistanceBetweenNodes("YOU", "SAN");

            return(distance);
        }