Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Roqc/test-suite/unit-tests/clib/   (Beweissystem des Inria Version 9.1.0©)  Datei vom 15.8.2025 mit Größe 1 kB image not shown  

Quelle  clist.ml   Sprache: SML

 
open Utest

let log_out_ch = open_log_out_ch __FILE__

let reference_filter =
  let rec filter f = function
    | [] -> []
    | x :: tl as l ->
      if f x then
        let tl' = filter f tl in
        if tl == tl' then l else x :: tl'
      else filter f tl
  in
  filter

let () =
  let () = Random.self_init () in
  let seed = Random.bits() in
  Printf.fprintf log_out_ch "seed = %d\n" seed;
  Random.init seed

let lists =
  List.init 100 (fun _ ->
      let len = Random.int 100 in
      List.init len (fun _ ->
          let b = Random.bool() in
          let v = Random.bits() in
          b,v))

let t1 = mk_bool_test "clib-clist0"
    "filter produces correct values"
    (List.for_all (fun l ->
         let expected : (bool * int) list = reference_filter fst l in
         let generated = CList.filter fst l in
         expected = generated)
        lists)

let lists' =
  List.init 100 (fun _ ->
      let len = Random.int 100 in
      let keepafter = if len = 0 then 0 else Random.int len in
      let l = List.init len (fun i ->
          let b = i >= keepafter || Random.bool () in
          let v = Random.bits() in
          b, v) in
      keepafter, l)

let t2 = mk_bool_test "clib-clist1"
    "filter correctly preserves physical equality of tails"
    (List.for_all (fun (keepafter,l) ->
         flush log_out_ch;
         let generated = CList.filter fst l in
         let tl = CList.skipn keepafter l in
         let generated_tl = CList.lastn (List.length tl) generated in
         tl == generated_tl)
       lists')

let tests = [ t1; t2 ]

let _ = run_tests __FILE__ log_out_ch tests

Messung V0.5
C=95 H=96 G=95

¤ Dauer der Verarbeitung: 0.10 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.