there is another issue with `vertices = range(nverts)`. Should be `vertices 
= list(range(nverts))` as vertices is used twice.

Have you already opened a ticket ?

Le mercredi 22 avril 2020 07:11:00 UTC+2, Dima Pasechnik a écrit :
>
> On Wed, Apr 22, 2020 at 10:59 AM John H Palmieri <jhpalm...@gmail.com 
> <javascript:>> wrote: 
> > 
> > 
> > 
> > On Tuesday, April 21, 2020 at 5:26:00 PM UTC-7, Dima Pasechnik wrote: 
> >> 
> >> On Wed, Apr 22, 2020 at 2:56 AM k2wagle <archi...@gmail.com> wrote: 
> >> > 
> >> > Tried this just now, getting the same error. Open a ticket please. 
> >> 
> >> This error is already in Sage 9.0 - and this is an example from the 
> manual! 
> >> 
> >> It's quite alarming that our doctests let it through, as it never 
> >> showed in doctests, and 
> >> indeed if I do 
> >> 
> >> ./sage -tp --verbose src/sage/graphs/hypergraph_generators.py 
> >> 
> >> I see in particular 
> >> ----------------------------------- 
> >> Trying (line 218):    H = hypergraphs.UniformRandomUniform(52, 3, 17) 
> >> Expecting nothing 
> >> ok [0.01 s] 
> >> Trying (line 219):    H 
> >> Expecting: 
> >>     Incidence structure with 52 points and 17 blocks 
> >> ok [0.00 s] 
> >> ------------------------------------- 
> >> 
> >> as if it works. 
> > 
> > 
> > Maybe it is working: maybe there is something in the doctesting 
> framework that makes it work somehow. If I put obviously failing doctests 
> in that file immediately before and after these lines, those failures are 
> caught. It's very strange. 
> > 
> > To fix this particular problem, do something like: 
> > 
> > diff --git a/src/sage/graphs/hypergraph_generators.py 
> b/src/sage/graphs/hypergraph_generators.py 
> > index aa3d5e3988..679ddea5ce 100644 
> > --- a/src/sage/graphs/hypergraph_generators.py 
> > +++ b/src/sage/graphs/hypergraph_generators.py 
> > @@ -262,7 +262,7 @@ class HypergraphGenerators(): 
> >              raise ValueError("the uniformity should be an integer") 
> >          all_edges = Subsets(vertices, uniformity) 
> >          try: 
> > -            edges = sample(all_edges, m) 
> > +            edges = sample(set(all_edges), m) 
>
> this is very inefficient for large all_edges. 
> all_edges is a kind of iterator, so there is really no need to build 
> this list fully. 
> Something like 
>
> edges=list(map(lambda t: all_edges[t], sample(range(len(all_edges)),m))) 
>
> is much more optimal. 
>
>
> >          except OverflowError: 
> >              raise OverflowError("binomial({}, {}) too large to be 
> treated".format(n, k)) 
> >          except ValueError: 
> > 
> > 
> >> 
> >> 
> >> 
> >> 
> >> > 
> >> > On Tuesday, 21 April 2020 23:56:45 UTC+5:30, Vipul Gupta wrote: 
> >> >> 
> >> >> On running the example given here in the documentation of 
> `UniformRandomUniform` method. 
> >> >> It is raising the following error. 
> >> >> 
> >> >> sage: H = hypergraphs.UniformRandomUniform(52, 3, 17) 
> >> >> 
> --------------------------------------------------------------------------- 
> >> >> TypeError                                 Traceback (most recent 
> call last) 
> >> >> <ipython-input-1-56df6490a66e> in <module>() 
> >> >> ----> 1 H = hypergraphs.UniformRandomUniform(Integer(52), 
> Integer(3), Integer(17)) 
> >> >> 
> >> >> 
> /home/vipul/sage/local/lib/python3.7/site-packages/sage/graphs/hypergraph_generators.py
>  
> in UniformRandomUniform(self, n, k, m) 
> >> >>     263         all_edges = Subsets(vertices, uniformity) 
> >> >>     264         try: 
> >> >> --> 265             edges = sample(all_edges, m) 
> >> >>     266         except OverflowError: 
> >> >>     267             raise OverflowError("binomial({}, {}) too large 
> to be treated".format(n, k)) 
> >> >> 
> >> >> 
> /home/vipul/sage/local/lib/python3.7/site-packages/sage/misc/prandom.py in 
> sample(population, k) 
> >> >>     178         [357009070, 558990255, 196187132, 752551188, 
> 85926697, 954621491, 624802848] 
> >> >>     179     """ 
> >> >> --> 180     return _pyrand().sample(population, k) 
> >> >>     181 
> >> >>     182 def random(): 
> >> >> 
> >> >> /home/vipul/sage/local/lib/python3.7/random.py in sample(self, 
> population, k) 
> >> >>     315             population = tuple(population) 
> >> >>     316         if not isinstance(population, _Sequence): 
> >> >> --> 317             raise TypeError("Population must be a sequence 
> or set.  For dicts, use list(d).") 
> >> >>     318         randbelow = self._randbelow 
> >> >>     319         n = len(population) 
> >> >> 
> >> >> TypeError: Population must be a sequence or set.  For dicts, use 
> list(d). 
> >> >> 
> >> >> 
> >> >> 
> >> >> Can somebody please point out if I am doing something wrong. 
> >> >> Or Should I open a ticket on trac server regarding this, so that 
> this defect can be solved. 
> >> >> 
> >> >> Regards 
> >> >> Vipul Gupta 
> >> >> 
> >> >> 
> >> >> 
> >> > -- 
> >> > You received this message because you are subscribed to the Google 
> Groups "sage-devel" group. 
> >> > To unsubscribe from this group and stop receiving emails from it, 
> send an email to sage-...@googlegroups.com. 
> >> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sage-devel/91e34011-914d-44e3-abab-da02254238b5%40googlegroups.com.
>  
>
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups "sage-devel" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to sage-...@googlegroups.com <javascript:>. 
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sage-devel/1293aa2e-0adb-4d1f-b32a-8a36cf633385%40googlegroups.com.
>  
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/6b14e9ac-dbfb-4ae0-ac50-d73b160588c0%40googlegroups.com.

Reply via email to