the owner of mondrian edges

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

the owner of mondrian edges

Tudor Girba-2
Hi Fabrizio.

Thanks for helping me reproduce the problem.

It should be fixed now.

However, there are still some red tests because they assume the old wrong behavior of assigning edges to an owner node.

Cheers,
Doru


On 26 May 2012, at 15:28, Fabrizio Perin wrote:

> Hi Doru,
> Here is the code you were working on:
>
> view := MOViewRenderer new.
> view nodes: #(2) forEach: [:each |
> view shape label.
> view node: each* 10.
> view shape label.
> view node: (each * 10 + 1).
> view treeLayout.
> ].
> view edgesFromAssociations: {"10->20.  10 -> 11 ." 20->21}.
> view open.
>
> Cheers,
> Fabrizio

--
www.tudorgirba.com

"It's not what we do that matters most, it's how we do it."
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: the owner of mondrian edges

Fabrizio Perin-3
Hi Doru,
thanks really a lot, now the problem is fixed indeed. The failing tests you are referring to have all the common problem that either the edge it is not assign to the node or the node has a different edge inside:

Ex.
testInnerEdgeContainsPoint
    | nodes domainNodes assoc edge edgeBound root |
   

    view shape rectangle size: 50.
    nodes :=view nodes: #(1 2) forEach:[:e |
        view nodes: #(3 4).
        view interaction
            item: 'inspect' action: #inspect.
        edge := view edge: 3->4 from: #key to: #value].

    window := view open.
   
    edgeBound := edge shape computeBoundsFor: edge.

    self assert: (edgeBound = ( 30@12 corner: 70@12)).

    "--------"
    "Check how many elements"
    self assert: (view root allEdges size = 2).
    self assert: (view root allNodes size = 6).
    self assert: (view root elementsToDisplay size = 8).
    "--------"


    "--------"
    "MORoot>>elementAt:"
    root := nodes first root.
    self assert: (root isRoot).
    self assert: (root elementAt: (edge shape computeBoundsFor: edge) center) == edge.
    "--------"

in this case "(root elementAt: (edge shape computeBoundsFor: edge) center)" return an edge which is the same as "edge" (3->4) but it is a different object. A comment in elementAt:ifNone: says:  "Answer the element at aPoint or evaluate aBlock if none. Note that this implementation assumes that children are always fully contained within their owner and is therefore very efficient."

I think we should not fix the test but this method although I don't know how.

Cheers,
Fabrizio

2012/5/26 Tudor Girba <[hidden email]>
Hi Fabrizio.

Thanks for helping me reproduce the problem.

It should be fixed now.

However, there are still some red tests because they assume the old wrong behavior of assigning edges to an owner node.

Cheers,
Doru


On 26 May 2012, at 15:28, Fabrizio Perin wrote:

> Hi Doru,
> Here is the code you were working on:
>
> view := MOViewRenderer new.
> view nodes: #(2) forEach: [:each |
>       view shape label.
>       view node: each* 10.
>       view shape label.
>       view node: (each * 10 + 1).
>       view treeLayout.
>       ].
> view edgesFromAssociations: {"10->20.  10 -> 11 ." 20->21}.
> view open.
>
> Cheers,
> Fabrizio

--
www.tudorgirba.com

"It's not what we do that matters most, it's how we do it."
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: the owner of mondrian edges

Fabrizio Perin-3
Hi,
Also I don't get this test:

testScope3
    "Edges are defined in a forEach:"

    |  edge |

   
    view interaction popupText.
    view nodes: #(1 2) forEach: [:each |
        view nodes: #(1 2).
        view edges: {each}
            from: 1
            to: 2
            fromGlobal: false
            toGlobal: true ].
    window := view open.
       
    self assert: (view root edges size = 2).
    self assert: (view root nodes first edges isEmpty).
    self assert: (view root nodes second edges isEmpty).
   
    edge := view root nodes first edges first.
    self assert: (edge source == view root nodes first nodes first).
    self assert: (edge target == view root nodes second).
   
    edge := view root nodes second edges first.
    self assert: (edge source == view root nodes second nodes first).
    self assert: (edge target == view root nodes second).

How can we say in the second assertion "view root nodes first edges isEmpty" than try to recover the edge from the node with
edge := view root nodes first edges first.

So what about:
edge := view root edges first.

Cheers,
Fabrizio

2012/6/4 Fabrizio Perin <[hidden email]>
Hi Doru,
thanks really a lot, now the problem is fixed indeed. The failing tests you are referring to have all the common problem that either the edge it is not assign to the node or the node has a different edge inside:

Ex.
testInnerEdgeContainsPoint
    | nodes domainNodes assoc edge edgeBound root |
   

    view shape rectangle size: 50.
    nodes :=view nodes: #(1 2) forEach:[:e |
        view nodes: #(3 4).
        view interaction
            item: 'inspect' action: #inspect.
        edge := view edge: 3->4 from: #key to: #value].

    window := view open.
   
    edgeBound := edge shape computeBoundsFor: edge.

    self assert: (edgeBound = ( 30@12 corner: 70@12)).

    "--------"
    "Check how many elements"
    self assert: (view root allEdges size = 2).
    self assert: (view root allNodes size = 6).
    self assert: (view root elementsToDisplay size = 8).
    "--------"


    "--------"
    "MORoot>>elementAt:"
    root := nodes first root.
    self assert: (root isRoot).
    self assert: (root elementAt: (edge shape computeBoundsFor: edge) center) == edge.
    "--------"

in this case "(root elementAt: (edge shape computeBoundsFor: edge) center)" return an edge which is the same as "edge" (3->4) but it is a different object. A comment in elementAt:ifNone: says:  "Answer the element at aPoint or evaluate aBlock if none. Note that this implementation assumes that children are always fully contained within their owner and is therefore very efficient."

I think we should not fix the test but this method although I don't know how.

Cheers,
Fabrizio


2012/5/26 Tudor Girba <[hidden email]>
Hi Fabrizio.

Thanks for helping me reproduce the problem.

It should be fixed now.

However, there are still some red tests because they assume the old wrong behavior of assigning edges to an owner node.

Cheers,
Doru


On 26 May 2012, at 15:28, Fabrizio Perin wrote:

> Hi Doru,
> Here is the code you were working on:
>
> view := MOViewRenderer new.
> view nodes: #(2) forEach: [:each |
>       view shape label.
>       view node: each* 10.
>       view shape label.
>       view node: (each * 10 + 1).
>       view treeLayout.
>       ].
> view edgesFromAssociations: {"10->20.  10 -> 11 ." 20->21}.
> view open.
>
> Cheers,
> Fabrizio

--
www.tudorgirba.com

"It's not what we do that matters most, it's how we do it."
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: the owner of mondrian edges

abergel
I guess the test should be:

-=-=-=-=-=
testScope3
        "Edges are defined in a forEach:"

        |  edge |

       
        view interaction popupText.
        view nodes: #(1 2) forEach: [:each |
                view nodes: #(1 2).
                view edges: {each}
                        from: 1
                        to: 2
                        fromGlobal: false
                        toGlobal: true ].
        window := view open.
               
        self assert: (view root edges size = 2).
        self assert: (view root nodes first edges isEmpty).
        self assert: (view root nodes second edges isEmpty).
       
        edge := view root edges first.
        self assert: (edge source == view root nodes first nodes first).
        self assert: (edge target == view root nodes second).
       
        edge := view root edges second.
        self assert: (edge source == view root nodes second nodes first).
        self assert: (edge target == view root nodes second).
-=-=-=-=-=

It goes green in my image. I've just produced Version 2.157 with it

Cheers,
Alexandre

On Jun 4, 2012, at 5:03 PM, Fabrizio Perin wrote:

> Hi,
> Also I don't get this test:
>
> testScope3
>     "Edges are defined in a forEach:"
>
>     |  edge |
>
>    
>     view interaction popupText.
>     view nodes: #(1 2) forEach: [:each |
>         view nodes: #(1 2).
>         view edges: {each}
>             from: 1
>             to: 2
>             fromGlobal: false
>             toGlobal: true ].
>     window := view open.
>        
>     self assert: (view root edges size = 2).
>     self assert: (view root nodes first edges isEmpty).
>     self assert: (view root nodes second edges isEmpty).
>    
>     edge := view root nodes first edges first.
>     self assert: (edge source == view root nodes first nodes first).
>     self assert: (edge target == view root nodes second).
>    
>     edge := view root nodes second edges first.
>     self assert: (edge source == view root nodes second nodes first).
>     self assert: (edge target == view root nodes second).
>
> How can we say in the second assertion "view root nodes first edges isEmpty" than try to recover the edge from the node with
> edge := view root nodes first edges first.
>
> So what about:
> edge := view root edges first.
>
> Cheers,
> Fabrizio
>
> 2012/6/4 Fabrizio Perin <[hidden email]>
> Hi Doru,
> thanks really a lot, now the problem is fixed indeed. The failing tests you are referring to have all the common problem that either the edge it is not assign to the node or the node has a different edge inside:
>
> Ex.
> testInnerEdgeContainsPoint
>     | nodes domainNodes assoc edge edgeBound root |
>    
>
>     view shape rectangle size: 50.
>     nodes :=view nodes: #(1 2) forEach:[:e |
>         view nodes: #(3 4).
>         view interaction
>             item: 'inspect' action: #inspect.
>         edge := view edge: 3->4 from: #key to: #value].
>
>     window := view open.
>    
>     edgeBound := edge shape computeBoundsFor: edge.
>
>     self assert: (edgeBound = ( 30@12 corner: 70@12)).
>
>     "--------"
>     "Check how many elements"
>     self assert: (view root allEdges size = 2).
>     self assert: (view root allNodes size = 6).
>     self assert: (view root elementsToDisplay size = 8).
>     "--------"
>
>
>     "--------"
>     "MORoot>>elementAt:"
>     root := nodes first root.
>     self assert: (root isRoot).
>     self assert: (root elementAt: (edge shape computeBoundsFor: edge) center) == edge.
>     "--------"
>
> in this case "(root elementAt: (edge shape computeBoundsFor: edge) center)" return an edge which is the same as "edge" (3->4) but it is a different object. A comment in elementAt:ifNone: says:  "Answer the element at aPoint or evaluate aBlock if none. Note that this implementation assumes that children are always fully contained within their owner and is therefore very efficient."
>
> I think we should not fix the test but this method although I don't know how.
>
> Cheers,
> Fabrizio
>
>
> 2012/5/26 Tudor Girba <[hidden email]>
> Hi Fabrizio.
>
> Thanks for helping me reproduce the problem.
>
> It should be fixed now.
>
> However, there are still some red tests because they assume the old wrong behavior of assigning edges to an owner node.
>
> Cheers,
> Doru
>
>
> On 26 May 2012, at 15:28, Fabrizio Perin wrote:
>
> > Hi Doru,
> > Here is the code you were working on:
> >
> > view := MOViewRenderer new.
> > view nodes: #(2) forEach: [:each |
> >       view shape label.
> >       view node: each* 10.
> >       view shape label.
> >       view node: (each * 10 + 1).
> >       view treeLayout.
> >       ].
> > view edgesFromAssociations: {"10->20.  10 -> 11 ." 20->21}.
> > view open.
> >
> > Cheers,
> > Fabrizio
>
> --
> www.tudorgirba.com
>
> "It's not what we do that matters most, it's how we do it."
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev