1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
<!--
BEGIN TTF BLOCK
(define days 5)
(define periods 7)
; number of defined events
(define tuplenum 20)
(define max-cons 3)
(define (get-day tupleid) (quotient (get-time tupleid) periods))
(define (get-period tupleid) (modulo (get-time tupleid) periods))
; vector similar to time extension
(define time-ext (make-vector (* days periods) -1))
; fill in time-ext vector
(define (update-ext)
(let loop ((i 0))
(if (< i tuplenum)
(begin
(vector-set! time-ext (get-time i) i)
(loop (+ i 1)))
#t)))
(define (check-block start num)
(let loop ((i 0) (result #t) (cons 0))
(if (< i num) (begin
(if (= (vector-ref time-ext (+ i start)) -1)
(begin
(if (> cons max-cons)
(define result #f))
(define cons 0))
(define cons (+ cons 1)))
(loop (+ i 1) result cons))
result)))
(test-ttf
(update-ext)
(check-block 0 periods)
(check-block 7 periods)
(check-block 14 periods)
(check-block 21 periods)
(check-block 28 periods))
END TTF BLOCK
-->
<ttm version="0.2.0">
<modules>
<module name="sametime" weight="60" mandatory="yes"/>
<module name="timeplace" weight="60" mandatory="yes"/>
<module name="maxconsecutive" weight="60" mandatory="yes">
<option name="max-consecutive">3</option>
</module>
</modules>
<resources>
<constant>
<resourcetype type="teacher">
<resource name="a"/>
</resourcetype>
<resourcetype type="class">
<resource name="1"/>
</resourcetype>
</constant>
<variable>
<resourcetype type="room">
<linear name="#" from="1" to="40"/>
</resourcetype>
<resourcetype type="time">
<matrix width="5" height="7"/>
</resourcetype>
</variable>
</resources>
<events>
<event name="test-1-a" repeats="20">
<resource type="teacher" name="a"/>
<resource type="class" name="1"/>
</event>
</events>
</ttm>
|