• Login
sketchucation logo sketchucation
  • Login
🤑 SketchPlus 1.3 | 44 Tools for $15 until June 20th Buy Now

Test array generation...

Scheduled Pinned Locked Moved Developers' Forum
3 Posts 2 Posters 129 Views 2 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    driven
    last edited by driven 5 Apr 2013, 23:14

    I made a 'array sort' for some testing, but wonder if it can be done better [in ruby 1.8.5] or if anyone has better to share...

    <span class="syntaxdefault"></span><span class="syntaxcomment">#&nbsp;I'm&nbsp;drawing&nbsp;cubes&nbsp;when&nbsp;the&nbsp;user&nbsp;draws&nbsp;a&nbsp;line,&nbsp;this&nbsp;is&nbsp;†o&nbsp;simulate&nbsp;the&nbsp;user&nbsp;adding&nbsp;lines,<br />#&nbsp;I&nbsp;needed&nbsp;a&nbsp;large&nbsp;set&nbsp;of&nbsp;arrays,&nbsp;or&nbsp;a&nbsp;lot&nbsp;of&nbsp;time,<br />#&nbsp;I&nbsp;looked&nbsp;for&nbsp;pre-made&nbsp;sets&nbsp;to&nbsp;no&nbsp;avail&nbsp;so&nbsp;I&nbsp;made&nbsp;this&nbsp;for&nbsp;testing&nbsp;my&nbsp;core&nbsp;code.<br />#&nbsp;I&nbsp;can&nbsp;also&nbsp;deduct&nbsp;this&nbsp;time&nbsp;from&nbsp;the&nbsp;same&nbsp;settings&nbsp;with&nbsp;my&nbsp;'cube'&nbsp;code,&nbsp;to&nbsp;gauge&nbsp;the&nbsp;real&nbsp;time&nbsp;it&nbsp;takes.<br />#<br /></span><span class="syntaxdefault">t1&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">Time</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">now<br /></span><span class="syntaxcomment">#<br /></span><span class="syntaxdefault">at_long_list&nbsp;</span><span class="syntaxkeyword">=&nbsp;@</span><span class="syntaxdefault">lng_lst&nbsp;</span><span class="syntaxkeyword">=&nbsp;((Array.new(</span><span class="syntaxdefault">10</span><span class="syntaxkeyword">){|</span><span class="syntaxdefault">x</span><span class="syntaxkeyword">|&nbsp;</span><span class="syntaxdefault">x</span><span class="syntaxkeyword">*-</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">}).</span><span class="syntaxdefault">reverse</span><span class="syntaxkeyword">)+(Array.new(</span><span class="syntaxdefault">9</span><span class="syntaxkeyword">){|</span><span class="syntaxdefault">x</span><span class="syntaxkeyword">|&nbsp;</span><span class="syntaxdefault">x</span><span class="syntaxkeyword">+</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">*</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">})&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#&nbsp;&nbsp;=>&nbsp;[-9,&nbsp;-8,&nbsp;-7,&nbsp;-6,&nbsp;-5,&nbsp;-4,&nbsp;-3,&nbsp;-2,&nbsp;-1,&nbsp;0,&nbsp;1,&nbsp;2,&nbsp;3,&nbsp;4,&nbsp;5,&nbsp;6,&nbsp;7,&nbsp;8,&nbsp;9]<br />#<br /></span><span class="syntaxdefault">test_counter&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">tst_cnt&nbsp;</span><span class="syntaxkeyword">=&nbsp;(Array.new(</span><span class="syntaxdefault">10</span><span class="syntaxkeyword">){|</span><span class="syntaxdefault">x</span><span class="syntaxkeyword">|&nbsp;</span><span class="syntaxdefault">x</span><span class="syntaxkeyword">+</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">*+</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">})&nbsp;&nbsp;</span><span class="syntaxcomment">#&nbsp;set&nbsp;cluster&nbsp;f•ck&nbsp;size&nbsp;with&nbsp;this&nbsp;one&nbsp;,&nbsp;Array.new(1)&nbsp;will&nbsp;run&nbsp;the&nbsp;'long_list'&nbsp;19&nbsp;times.&nbsp;100&nbsp;>>&nbsp;1900<br />#<br />#&nbsp;test_counter&nbsp;runs&nbsp;a&nbsp;block,<br />#<br /></span><span class="syntaxdefault">tst_cnt</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">map</span><span class="syntaxkeyword">{&nbsp;|</span><span class="syntaxdefault">c</span><span class="syntaxkeyword">|<br />&nbsp;&nbsp;</span><span class="syntaxcomment">#<br />&nbsp;&nbsp;#&nbsp;I&nbsp;have&nbsp;moved&nbsp;essentials&nbsp;inside,&nbsp;just&nbsp;to&nbsp;make&nbsp;it&nbsp;stand&nbsp;alone&nbsp;for&nbsp;others&nbsp;to&nbsp;try...<br />&nbsp;&nbsp;#<br />&nbsp;&nbsp;</span><span class="syntaxdefault">model&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;</span><span class="syntaxdefault">entities&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_entities</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;</span><span class="syntaxdefault">model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">start_operation</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"JCB.cube"</span><span class="syntaxkeyword">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">###&nbsp;name&nbsp;of&nbsp;my&nbsp;tool,&nbsp;could&nbsp;be&nbsp;anything...<br />&nbsp;&nbsp;#<br />&nbsp;&nbsp;#&nbsp;at_long_list&nbsp;&nbsp;runs&nbsp;an&nbsp;inner&nbsp;block,&nbsp;that&nbsp;does&nbsp;the&nbsp;work.<br />&nbsp;&nbsp;#<br />&nbsp;&nbsp;</span><span class="syntaxkeyword">@</span><span class="syntaxdefault">lng_lst</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">map</span><span class="syntaxkeyword">{&nbsp;|</span><span class="syntaxdefault">n</span><span class="syntaxkeyword">|<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;it&nbsp;names&nbsp;the&nbsp;group,&nbsp;and&nbsp;adds&nbsp;geometry&nbsp;to&nbsp;the&nbsp;model<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">grp&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">entities</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_group<br />&nbsp;&nbsp;&nbsp;&nbsp;grp</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">name&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">"grp;&nbsp;#{c}&nbsp;#{n}"<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">gents&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">grp</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;short_list&nbsp;is&nbsp;derived&nbsp;using&nbsp;long_list&nbsp;.sort_by&nbsp;{&nbsp;rand&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">shrt_lst&nbsp;</span><span class="syntaxkeyword">=&nbsp;@</span><span class="syntaxdefault">lng_lst</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">sort_by&nbsp;</span><span class="syntaxkeyword">{&nbsp;</span><span class="syntaxdefault">rand&nbsp;</span><span class="syntaxkeyword">}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">a&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">shrt_lst</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0..2</span><span class="syntaxkeyword">];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#&nbsp;[]&nbsp;of&nbsp;3&nbsp;random&nbsp;number<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">b&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">shrt_lst</span><span class="syntaxkeyword">[-</span><span class="syntaxdefault">3.</span><span class="syntaxkeyword">.-</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">];&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#&nbsp;[]&nbsp;of&nbsp;3&nbsp;random&nbsp;number<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;added&nbsp;a&nbsp;filter&nbsp;for&nbsp;zero&nbsp;pairings,&nbsp;I'm&nbsp;zipping&nbsp;a&nbsp;and&nbsp;b&nbsp;to&nbsp;check&nbsp;for&nbsp;zero&nbsp;and&nbsp;shuffle&nbsp;b&nbsp;if&nbsp;true...<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">d&nbsp;&nbsp;</span><span class="syntaxkeyword">=&nbsp;(</span><span class="syntaxdefault">a</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">zip&nbsp;b</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">map</span><span class="syntaxkeyword">{|</span><span class="syntaxdefault">m</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">n</span><span class="syntaxkeyword">|&nbsp;(</span><span class="syntaxdefault">m&nbsp;</span><span class="syntaxkeyword">-&nbsp;</span><span class="syntaxdefault">n&nbsp;</span><span class="syntaxkeyword">)};<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;</span><span class="syntaxdefault">d&nbsp;</span><span class="syntaxkeyword">==&nbsp;[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">];<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">b1&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">shrt_lst</span><span class="syntaxkeyword">[-</span><span class="syntaxdefault">4.</span><span class="syntaxkeyword">.-</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">];<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">puts&nbsp;</span><span class="syntaxstring">";zero&nbsp;#{d};"&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#&nbsp;keep&nbsp;tabs&nbsp;on&nbsp;frequency<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">end</span><span class="syntaxkeyword">;&nbsp;</span><span class="syntaxcomment">#if<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;for&nbsp;me&nbsp;the&nbsp;line&nbsp;is&nbsp;a&nbsp;diagonal_line&nbsp;=&nbsp;diagl_ln<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">diagl_ln&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">gents</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_line&nbsp;&nbsp;a</span><span class="syntaxkeyword">,&nbsp;(</span><span class="syntaxdefault">b&nbsp;</span><span class="syntaxkeyword">||&nbsp;</span><span class="syntaxdefault">b1</span><span class="syntaxkeyword">);&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#&nbsp;if&nbsp;c&nbsp;=&nbsp;[0,0,0],&nbsp;use&nbsp;b1...<br />&nbsp;&nbsp;&nbsp;&nbsp;#p&nbsp;b<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;all&nbsp;my&nbsp;other&nbsp;code&nbsp;goes&nbsp;in&nbsp;here<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">p&nbsp;&nbsp;grp</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">name</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;</span><span class="syntaxkeyword">}&nbsp;</span><span class="syntaxcomment">#close&nbsp;the&nbsp;inner&nbsp;block<br />&nbsp;&nbsp;#<br />&nbsp;&nbsp;#<br />&nbsp;&nbsp;</span><span class="syntaxdefault">model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">commit_operation<br />&nbsp;&nbsp;</span><span class="syntaxcomment">#<br />&nbsp;&nbsp;#<br /></span><span class="syntaxkeyword">}&nbsp;</span><span class="syntaxcomment">#close&nbsp;the&nbsp;outer&nbsp;block<br />#<br />#<br /></span><span class="syntaxdefault">puts&nbsp;Time</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">now&nbsp;</span><span class="syntaxkeyword">-&nbsp;</span><span class="syntaxdefault">t1<br /></span><span class="syntaxcomment">#<br />#&nbsp;</span><span class="syntaxdefault"></span>
    

    as this is I get 180 edges 'grouped' in 0.99999

    which is fast enough for my needs, but I wondered if there are better ways.
    john

    learn from the mistakes of others, you may not live long enough to make them all yourself...

    1 Reply Last reply Reply Quote 0
    • T Offline
      thomthom
      last edited by 6 Apr 2013, 00:40

      Sorry, but can you do a short explanation of what you are doing? There's some cryptic variable names there, and some funky indentation. :s

      Thomas Thomassen — SketchUp Monkey & Coding addict
      List of my plugins and link to the CookieWare fund

      1 Reply Last reply Reply Quote 0
      • D Offline
        driven
        last edited by 6 Apr 2013, 01:26

        TT

        added commenting to the original code block to try and explain things better, I can't get the formatting to hold...

        but this is better.
        john

        learn from the mistakes of others, you may not live long enough to make them all yourself...

        1 Reply Last reply Reply Quote 0
        • 1 / 1
        1 / 1
        • First post
          1/3
          Last post
        Buy SketchPlus
        Buy SUbD
        Buy WrapR
        Buy eBook
        Buy Modelur
        Buy Vertex Tools
        Buy SketchCuisine
        Buy FormFonts

        Advertisement