#20155: Graph Generators: Add Turan Graph
-------------------------------------+-------------------------------------
       Reporter:  mcognetta          |        Owner:
           Type:  enhancement        |       Status:  needs_review
       Priority:  minor              |    Milestone:  sage-7.1
      Component:  graph theory       |   Resolution:
       Keywords:  graphs             |    Merged in:
        Authors:  Marco Cognetta     |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/mcognetta/graph_generators__add_turan_graph|  
718ad7841a15352bc482f904ce8be89ff198086b
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by dcoudert):

 Hello,

 If the method for assigning positions to vertices is also valid for
 multipartite complete graphs, you could instead add it to the
 `CompleteMultipartiteGraph` method and then just call this method with
 appropriate parameters. This would thus improve both methods. Your method
 could thus be reduced to:
 {{{
 if n < r:
    raise ValueError('n should be at least r')
 if n < 1:
    raise ValueError('n should be at least 1')
 if r < 1:
    raise ValueError('r should be at least 1')

 name = "Turan Graph with n: {}, r: {}".format(n,r)

 if r == 1:
    g = Graph(name=name)
    g.add_vertices(range(n))
    return g

 if r == 2:
    g = graphs.CompleteBipartiteGraph(floor(n/2),ceil(n/2))
    g.name(name)
    return g

 sizes = [ceil(n/r) for i in range(n%r)]
 sizes += [floor(n/r) for i in range(r-(n%r))]
 g = graphs.CompleteMultipartiteGraph(sizes)
 g.name(name)
 return g
 }}}
 I'm not sure the case `r==2` is actually needed.

 Also, I don't understand the need for method `calculate_positions` since
 it is called only once. You could simply add the code in the method.

 I think there is no need for importing `math`. You should try calling
 `floor` and `ceil` directly.

 There are several typos in the method descriptions: `wih`, `properity`,
 etc.

 You must add some `TESTS` to ilustrate the errors when calling the method
 with wrong parameters.

 Thanks for your first patch.

 David.

--
Ticket URL: <http://trac.sagemath.org/ticket/20155#comment:3>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to