Skip to content

Instantly share code, notes, and snippets.

@cpebble
Created December 5, 2019 14:40
Show Gist options
  • Save cpebble/d9ed04ced876fa76bfcdee0e122e793b to your computer and use it in GitHub Desktop.
Save cpebble/d9ed04ced876fa76bfcdee0e122e793b to your computer and use it in GitHub Desktop.
module Testing
/// <summary>En funktion der tager en tuple med tests.
/// Understøtter også to pointers med til succeser og fejltagelser </summary>
/// <remarks></remarks>
/// <param name='func'>En testfunction</param>
/// <param name='funcName'>Funktionsnavnet der bliver testet</param>
/// <param name='tests'>Tuple med tests</param>
/// <param name='succPointer'>Pointer der inkrementeres når en test består</param>
/// <param name='succPointer'>Pointer der inkrementeres når en test fejler</param>
/// <returns>Unit; Printer, men returner intet</returns>
/// <example>Her følger et eksempel på en tuple til tests
/// <code>
/// (
/// (fun (arguments) -> {function to test} ),
/// "name of function to test",
/// (
/// ((arguments, 1,2,3,4), Target to pass test)
/// ((arguments, 5,6,7,8), Second target)
/// ((arguments, 9,8,7,6), Also a target)
/// ),
/// )
/// </code>
/// </example>
let testModule (func, funcName, tests) succPointer failPointer =
printfn "TESTING function %s" funcName
for testArgs, target in tests do
printfn "Testing: %A \nTarget: %A" testArgs target
let run = func testArgs
let passed = ( run = target )
if passed then
succPointer := !succPointer + 1
else
failPointer := !failPointer + 1
printfn "Result %A\n Passed: %b\n----------------" run passed
/// <summary>En funktion der agrunder en vektor til tre decimaler</summary>
/// <remarks></remarks>
/// <param name='x,y'>En vektor</param>
/// <returns>(x,y) afrundet til tre decimaler</returns>
let roundVector (x:float, y:float) =
let xRounded = System.Math.Round (x, 3)
let yRounded = System.Math.Round (y, 3)
(xRounded, yRounded)
/// <summary>En funktion der afrunder et tal</summary>
/// <remarks>Bruger .NETs Math library</remarks>
/// <param name='n'>float</param>
/// <returns>float: afrundet floar til tre decimaler</returns>
let roundFloat (n:float) =
System.Math.Round (n, 3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment