Documentation Source Text

Check-in [0f0f4c2b6f]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Add coverage percentages to the bottom of the requirements matrix.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 0f0f4c2b6f3653b753b29562c6951683d18775cb
User & Date: drh 2010-09-17 00:50:39
Context
2010-09-17
17:08
Modify syntax diagrams to show that LIMIT and OFFSET clauses are now expressions, not constant integers. And to make it clear that "OUTER" and "NATURAL OUTER" joins are not supported. check-in: 5db62da333 user: dan tags: trunk
00:50
Add coverage percentages to the bottom of the requirements matrix. check-in: 0f0f4c2b6f user: drh tags: trunk
2010-09-16
18:50
Change the documentation for LIMIT and OFFSET clauses to be more testable. check-in: 1cb27a268e user: dan tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to matrix.tcl.

304
305
306
307
308
309
310
311
312
313






314


315
316
317
318
319
320
321

322
323
324
325
326
327
328
329
330
331
332
333
334

335
336
337
338
339
340
341

342
343
344
345
346
347
348
...
359
360
361
362
363
364
365






















366
367
368
369
370
371
372
flush stdout
set out [open doc/matrix/matrix.html w]
write_header ../ $out {SQLite Requirements Matrix Index}
puts $out "<h1 align=center>SQLite Requirements Matrix Index</h1>"
puts $out "<table border=0 align=center>"
set srclist [db eval {SELECT DISTINCT srcfile FROM requirement ORDER BY 1}]
set rowcnt 0
foreach srcfile $srclist {
  if {$rowcnt%20==0} {
    puts $out {<tr><th><th>tcl<th>slt<th>th3<th>src<th>any<th><th></tr>}






  }


  incr rowcnt
  db eval {
    CREATE TEMP TABLE IF NOT EXISTS srcreq(reqno TEXT PRIMARY KEY);
    DELETE FROM srcreq;
    INSERT INTO srcreq SELECT reqno FROM requirement WHERE srcfile=$srcfile;
  }
  set totalcnt [db one {SELECT count(*) FROM srcreq}]

  puts $out "<tr><td><a href=\"$srcfile\">$srcfile</a></td>"
  set ev(tcl) 0
  set ev(th3) 0
  set ev(src) 0
  set ev(slt) 0
  set ev(any) 0
  db eval {
    SELECT count(distinct reqno) AS cnt, srcclass 
      FROM evidence
     WHERE reqno IN srcreq
     GROUP BY srcclass
  } {
    set ev($srcclass) $cnt

  }
  db eval {
    SELECT count(distinct reqno) AS cnt
      FROM evidence
     WHERE reqno IN srcreq
  } {
    set ev(any) $cnt

  }
  foreach srcclass {tcl slt th3 src any} {
    set cnt $ev($srcclass)
    if {$cnt==$totalcnt} {
      set cx evok
    } elseif {$cnt>=0.75*$totalcnt} {
      set cx evl3
................................................................................
    set amt [string map {{ } {&nbsp;}} $amt]
    puts $out "<td><cite class=$cx>$amt</cite></td>"
  }
  regsub -all {[^a-zA-Z0-9]} [file tail [file root $srcfile]] _ docid
  puts $out "<td><a href=\"matrix_s$docid.html\">summary</a></td>"
  puts $out "<td><a href=\"matrix_d$docid.html\">details</a></td></tr>\n"
}






















puts $out </table>
close $out

# Split a long string of text at spaces so that no line exceeds 70
# characters.  Send the result to $out.
#
proc wrap_in_comment {out prefix txt} {







<
<
|
>
>
>
>
>
>
|
>
>







>













>







>







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







304
305
306
307
308
309
310


311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
...
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
flush stdout
set out [open doc/matrix/matrix.html w]
write_header ../ $out {SQLite Requirements Matrix Index}
puts $out "<h1 align=center>SQLite Requirements Matrix Index</h1>"
puts $out "<table border=0 align=center>"
set srclist [db eval {SELECT DISTINCT srcfile FROM requirement ORDER BY 1}]
set rowcnt 0


set column_titles {<tr><th><th>tcl<th>slt<th>th3<th>src<th>any<th><th></tr>}
set total(tcl) 0
set total(th3) 0
set total(src) 0
set total(slt) 0
set total(any) 0
set total(all) 0

foreach srcfile $srclist {
  if {$rowcnt%20==0} {puts $out $column_titles}
  incr rowcnt
  db eval {
    CREATE TEMP TABLE IF NOT EXISTS srcreq(reqno TEXT PRIMARY KEY);
    DELETE FROM srcreq;
    INSERT INTO srcreq SELECT reqno FROM requirement WHERE srcfile=$srcfile;
  }
  set totalcnt [db one {SELECT count(*) FROM srcreq}]
  incr total(all) $totalcnt
  puts $out "<tr><td><a href=\"$srcfile\">$srcfile</a></td>"
  set ev(tcl) 0
  set ev(th3) 0
  set ev(src) 0
  set ev(slt) 0
  set ev(any) 0
  db eval {
    SELECT count(distinct reqno) AS cnt, srcclass 
      FROM evidence
     WHERE reqno IN srcreq
     GROUP BY srcclass
  } {
    set ev($srcclass) $cnt
    incr total($srcclass) $cnt
  }
  db eval {
    SELECT count(distinct reqno) AS cnt
      FROM evidence
     WHERE reqno IN srcreq
  } {
    set ev(any) $cnt
    incr total(any) $cnt
  }
  foreach srcclass {tcl slt th3 src any} {
    set cnt $ev($srcclass)
    if {$cnt==$totalcnt} {
      set cx evok
    } elseif {$cnt>=0.75*$totalcnt} {
      set cx evl3
................................................................................
    set amt [string map {{ } {&nbsp;}} $amt]
    puts $out "<td><cite class=$cx>$amt</cite></td>"
  }
  regsub -all {[^a-zA-Z0-9]} [file tail [file root $srcfile]] _ docid
  puts $out "<td><a href=\"matrix_s$docid.html\">summary</a></td>"
  puts $out "<td><a href=\"matrix_d$docid.html\">details</a></td></tr>\n"
}
if {$rowcnt%20!=1} {puts $out $column_titles}
puts $out "<tr><td>Overall Coverage"
set totalcnt $total(all)
foreach srcclass {tcl slt th3 src any} {
  set cnt $total($srcclass)
  if {$cnt==$totalcnt} {
    set cx evok
  } elseif {$cnt>=0.75*$totalcnt} {
    set cx evl3
  } elseif {$cnt>=0.5*$totalcnt} {
    set cx evl2
  } elseif {$cnt>=0.25*$totalcnt} {
    set cx evl1
  } elseif {$cnt>0} {
    set cx evl0
  } else {
    set cx evnil
  }
  set amt [format {%5.1f%% } [expr {($cnt*100.0)/$totalcnt}]]
  set amt [string map {{ } {&nbsp;}} $amt]
  puts $out "<td><cite class=$cx>$amt</cite></td>"
}
puts $out </table>
close $out

# Split a long string of text at spaces so that no line exceeds 70
# characters.  Send the result to $out.
#
proc wrap_in_comment {out prefix txt} {