% to be run before run_test.sli

% Doughnut mask, outer radius 0.25, inner radius 0.1
%
% Setup:
%     - 5x5 -> 5x5, extent 1.25x1.25
%     - nodes "freely placed" at regular grid locations
% expectation:
%   each node is connected to
%     - the two nodes to the right and left of the source location in the target layer
%     - the two nodes above and below that location
%     - should give identical results to reg_mask_donut_anchor_10.sli
%
%   like free_mask_donut_anchor_00, but with periodic boundary conditions
%
%    Sources                      Targets
%     2  7 12 17 22    	          28 33 38 43 48
%     3  8 13 18 23		  29 34	39 44 49
%     4	 9 14 19 24		  30 35	40 45 50
%     5	10 15 20 25		  31 36	41 46 51
%     6	11 16 21 26		  32 37	42 47 52
%
%    Exemplary connections
%           
%              32                47                52
%      2 -> 48    33    17 -> 38    48    22 -> 43    28
%	       29                44                49
%
%              31                46                51
%      6 -> 52    37    21 -> 42    52    26 -> 47    32
%              28                43                48

% loop y-coords backwards so that we get same gid-pos mapping as on grid
[-0.5 0.5 0.25] Range 
{ /x Set [0.5 -0.5 -0.25] Range { x exch 2 arraystore } Map } Map 1 Flatten
/pos Set

/layer << /positions pos
          /extent [1.25 1.25]
          /center [0. 0.]
          /edge_wrap true
          /elements /iaf_neuron
        >> def

/src_layer layer def
/tgt_layer layer def

/conns << /connection_type (divergent)
          /mask << /doughnut << /outer_radius 0.25 /inner_radius 0.1 >> /anchor [ 0.0 0.0 ] >>
       >> def