File: maxconsecutive-2.xml

package info (click to toggle)
tablix2 0.3.5-2
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd, squeeze, wheezy
  • size: 9,920 kB
  • ctags: 3,351
  • sloc: ansic: 24,593; xml: 13,161; sh: 10,409; makefile: 852; perl: 564; yacc: 289; sed: 16
file content (81 lines) | stat: -rw-r--r-- 1,832 bytes parent folder | download | duplicates (4)
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>