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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
<!--
BEGIN TTF BLOCK
(define days 10)
(define periods 10)
(define times 100)
(define block-len 3)
(define block-num 3)
(define time-ext (make-vector (+ times days) 0))
(define (tuple-loop i j)
;; insert an empty element between days
(define day (quotient i periods))
(vector-set! time-ext (+ (get-time i) day) 1)
(if (< i j)
(tuple-loop (+ i 1) j)
#t
)
)
(define (check-ext)
(define x-block-len 0)
(define x-block-num 0)
(define i 0)
(define in #f)
(define ok #t)
(define (block-loop)
;; (display (vector-ref time-ext i))
(if (= (vector-ref time-ext i) 1)
(if in
(set! x-block-len (+ x-block-len 1))
(begin
(set! in #t)
(set! x-block-len 1)
)
)
(if in
(begin
(set! in #f)
(set! ok (and ok (= (modulo x-block-len block-len) 0)))
(set! x-block-num (+ x-block-num (quotient x-block-len block-len)))
)
)
)
(set! i (+ i 1))
(if (= i (+ times days) )
(begin
(if in
(begin
(set! ok (and ok (= x-block-len block-len)))
(set! x-block-num (+ x-block-num 1))
)
)
(and ok (= x-block-num block-num))
)
(block-loop)
)
)
(block-loop)
)
(test-ttf
(tuple-loop 1 9 #t)
(check-ext)
)
END TTF BLOCK
-->
<ttm version="0.2.0">
<modules>
<module name="sametime.so" weight="60" mandatory="yes"/>
<module name="timeplace.so" weight="60" mandatory="yes"/>
<module name="consecutive.so" weight="60" mandatory="yes"/>
</modules>
<resources>
<constant>
<resourcetype type="teacher">
<resource name="a"/>
</resourcetype>
<resourcetype type="class">
<linear name="#" from="1" to="3"/>
</resourcetype>
</constant>
<variable>
<resourcetype type="room">
<linear name="#" from="1" to="40"/>
</resourcetype>
<resourcetype type="time">
<matrix width="10" height="10"/>
</resourcetype>
</variable>
</resources>
<events>
<event name="test" repeats="1">
<resource type="teacher" name="a"/>
<resource type="class" name="1"/>
</event>
<event name="test" repeats="9">
<resource type="teacher" name="a"/>
<resource type="class" name="2"/>
<restriction type="periods-per-block">3</restriction>
</event>
<event name="test" repeats="1">
<resource type="teacher" name="a"/>
<resource type="class" name="3"/>
</event>
</events>
</ttm>
|