Craig Oates
5 years ago
5 changed files with 128 additions and 130 deletions
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<packages> |
||||
<package id="Console.Waterworks" version="0.1.0.0-alpha1" targetFramework="net471" /> |
||||
<package id="FSharp.Core" version="4.5.4" targetFramework="net471" /> |
||||
<package id="Console.Waterworks" version="1.0.1" targetFramework="net471" /> |
||||
<package id="FSharp.Core" version="4.6.0" targetFramework="net471" /> |
||||
<package id="SkiaSharp" version="1.60.3" targetFramework="net471" /> |
||||
<package id="System.Drawing.Common" version="4.5.1" targetFramework="net471" /> |
||||
<package id="System.ValueTuple" version="4.5.0" targetFramework="net471" /> |
||||
|
@ -1,114 +1,113 @@
|
||||
// These DLL's must be built before you can use them in this script. |
||||
#r "bin/Debug/System.Drawing.Common.dll" |
||||
#r "bin/Debug/SmoulderingBeachBall.dll" |
||||
|
||||
open System |
||||
open System.Drawing |
||||
open System.Reflection |
||||
open SmoulderingBeachBall.Domain |
||||
open SmoulderingBeachBall.Services |
||||
open System.Threading |
||||
open System.IO |
||||
|
||||
let loadLocation = __SOURCE_DIRECTORY__ + "/LoadingTestArea" |
||||
let saveLocation = __SOURCE_DIRECTORY__ + "/SavingTestArea" |
||||
let random = Random() |
||||
|
||||
(* Resetting the Testing Area Folders Scripts |
||||
=============================================================================== |
||||
The following scripts are for when you need to "manually" clear out the |
||||
LoadingTestArea and SavingTestArea folders. If you do not want to open up the |
||||
folder in Explorer and delete the files that way, just run the scripts in this |
||||
section. If you reset the LoadingTestArea, you will need to repopulate it using |
||||
the "Populating LoadingTestArea Folder Scripts" below. *) |
||||
|
||||
let resetSavingTestArea () = |
||||
let files = Directory.GetFileSystemEntries(saveLocation, "*.png") |
||||
match files.Length with |
||||
| 0 -> () |
||||
| _ -> |
||||
files |
||||
|> Array.iter (fun f -> File.Delete(f)) |
||||
|
||||
let resetLoadingTestArea () = |
||||
let files = Directory.GetFileSystemEntries(loadLocation, "*.png") |
||||
match files.Length with |
||||
| 0 -> () |
||||
| _ -> |
||||
files |
||||
|> Array.iter (fun f -> File.Delete(f)) |
||||
|
||||
// Run these when the above functions have been added to F# interactive. |
||||
resetSavingTestArea () |
||||
resetLoadingTestArea () |
||||
|
||||
(* Populating LoadingTestArea Folder Scripts |
||||
=============================================================================== |
||||
The following scripts are to help you populate a test folder with test images. |
||||
You can then use these images in LibraryTests.fs -- Property Tests. |
||||
The tests consists of loading images from LoadingTestArea, transforming them |
||||
and saving them in SavingTestArea. *) |
||||
|
||||
let allColours = |
||||
let properties = |
||||
typeof<Brushes>.GetProperties(BindingFlags.Public ||| BindingFlags.Static) |
||||
seq { for prop in properties -> prop} |
||||
|> Seq.toArray |
||||
|
||||
let randomBrush () = |
||||
let item = allColours.[random.Next(allColours.Length)] |
||||
item.GetValue(null, null) |
||||
|
||||
let generateDimensionSizes total = |
||||
List.init total (fun _ -> random.Next(3000)) |
||||
|
||||
let randomSize (sizes: int list) = |
||||
// (Sleep) Helps to reduce chance of picking the same item twice in quick succession. |
||||
Thread.Sleep 100 |
||||
sizes.Item (random.Next(sizes.Length)) |
||||
|
||||
let populateSpec sizes = |
||||
{ width = randomSize (sizes) |
||||
height = randomSize (sizes) |
||||
colour = (randomBrush ()) :?> Brush |
||||
filePath = loadLocation |
||||
overlay = None } |
||||
|
||||
let generateSpecs amount = |
||||
let imageSizes = generateDimensionSizes amount |
||||
[for i in 0 .. amount -> (populateSpec (imageSizes)) ] |
||||
|
||||
let generateImage spec = |
||||
printfn "[INFO.] Creating image [Width: %i] [Height: %i] ..." (spec.width) (spec.height) |
||||
makeImage spec |
||||
|
||||
let populateLoadingTestArea () = |
||||
printfn "[INFO.] Populating LoadingTestArea..." |
||||
generateSpecs 100 |
||||
|> List.map generateImage |
||||
|> Async.Parallel |
||||
|> Async.RunSynchronously |
||||
|> ignore |
||||
printfn "[INFO.] Finishing populating /LoadingTestArea." |
||||
|
||||
// You should only need this once. |
||||
// Make sure you have passed the above into F# Interactive. |
||||
populateLoadingTestArea () |
||||
|
||||
(* Creating the Saving Test Area Script |
||||
============================================================================== |
||||
This bit of code is for creating the SavingTestArea folder which Test Centre |
||||
will use when it runs its tests. You will normally only need to run this code |
||||
when you have just cloned this repository or you accidently deleted said |
||||
folder. In other words, you should only need to use it once. *) |
||||
|
||||
let createSavingTestArea () = |
||||
match Directory.Exists saveLocation with |
||||
| false -> |
||||
Directory.CreateDirectory saveLocation |> ignore |
||||
printfn "SavingTestArea created." |
||||
| _ -> printfn "SavingTestArea already exists." |
||||
|
||||
(* Before calling this function, make sure the test checking to see if this |
||||
folder exists is failing first. *) |
||||
createSavingTestArea () |
||||
//// These DLL's must be built before you can use them in this script. |
||||
//#r "bin/Debug/System.Drawing.Common.dll" |
||||
//#r "bin/Debug/SmoulderingBeachBall.dll" |
||||
|
||||
//open System |
||||
//open System.Drawing |
||||
//open System.Reflection |
||||
//open SmoulderingBeachBall.Domain |
||||
//open SmoulderingBeachBall.Services |
||||
//open System.Threading |
||||
//open System.IO |
||||
|
||||
//let loadLocation = __SOURCE_DIRECTORY__ + "/LoadingTestArea" |
||||
//let saveLocation = __SOURCE_DIRECTORY__ + "/SavingTestArea" |
||||
//let random = Random() |
||||
|
||||
//(* Resetting the Testing Area Folders Scripts |
||||
//=============================================================================== |
||||
//The following scripts are for when you need to "manually" clear out the |
||||
//LoadingTestArea and SavingTestArea folders. If you do not want to open up the |
||||
//folder in Explorer and delete the files that way, just run the scripts in this |
||||
//section. If you reset the LoadingTestArea, you will need to repopulate it using |
||||
//the "Populating LoadingTestArea Folder Scripts" below. *) |
||||
|
||||
//let resetSavingTestArea () = |
||||
// let files = Directory.GetFileSystemEntries(saveLocation, "*.png") |
||||
// match files.Length with |
||||
// | 0 -> () |
||||
// | _ -> |
||||
// files |
||||
// |> Array.iter (fun f -> File.Delete(f)) |
||||
|
||||
//let resetLoadingTestArea () = |
||||
// let files = Directory.GetFileSystemEntries(loadLocation, "*.png") |
||||
// match files.Length with |
||||
// | 0 -> () |
||||
// | _ -> |
||||
// files |
||||
// |> Array.iter (fun f -> File.Delete(f)) |
||||
|
||||
//// Run these when the above functions have been added to F# interactive. |
||||
//resetSavingTestArea () |
||||
//resetLoadingTestArea () |
||||
|
||||
//(* Populating LoadingTestArea Folder Scripts |
||||
//=============================================================================== |
||||
//The following scripts are to help you populate a test folder with test images. |
||||
//You can then use these images in LibraryTests.fs -- Property Tests. |
||||
//The tests consists of loading images from LoadingTestArea, transforming them |
||||
//and saving them in SavingTestArea. *) |
||||
|
||||
//let allColours = |
||||
// let properties = |
||||
// typeof<Brushes>.GetProperties(BindingFlags.Public ||| BindingFlags.Static) |
||||
// seq { for prop in properties -> prop} |
||||
// |> Seq.toArray |
||||
|
||||
//let randomBrush () = |
||||
// let item = allColours.[random.Next(allColours.Length)] |
||||
// item.GetValue(null, null) |
||||
|
||||
//let generateDimensionSizes total = |
||||
// List.init total (fun _ -> random.Next(3000)) |
||||
|
||||
//let randomSize (sizes: int list) = |
||||
// // (Sleep) Helps to reduce chance of picking the same item twice in quick succession. |
||||
// Thread.Sleep 100 |
||||
// sizes.Item (random.Next(sizes.Length)) |
||||
|
||||
//let populateSpec sizes = |
||||
// Brush ({ filePath = loadLocation |
||||
// height = randomSize (sizes) |
||||
// colour = (randomBrush ()) :?> Brush |
||||
// overlay = None }) |
||||
|
||||
//let generateSpecs amount = |
||||
// let imageSizes = generateDimensionSizes amount |
||||
// [for i in 0 .. amount -> (populateSpec (imageSizes)) ] |
||||
|
||||
//let generateImage spec = |
||||
// printfn "[INFO.] Creating image [Width: %i] [Height: %i] ..." (spec.width) (spec.height) |
||||
// makeImage spec |
||||
|
||||
//let populateLoadingTestArea () = |
||||
// printfn "[INFO.] Populating LoadingTestArea..." |
||||
// generateSpecs 100 |
||||
// |> List.map generateImage |
||||
// |> Async.Parallel |
||||
// |> Async.RunSynchronously |
||||
// |> ignore |
||||
// printfn "[INFO.] Finishing populating /LoadingTestArea." |
||||
|
||||
//// You should only need this once. |
||||
//// Make sure you have passed the above into F# Interactive. |
||||
//populateLoadingTestArea () |
||||
|
||||
//(* Creating the Saving Test Area Script |
||||
//============================================================================== |
||||
//This bit of code is for creating the SavingTestArea folder which Test Centre |
||||
//will use when it runs its tests. You will normally only need to run this code |
||||
//when you have just cloned this repository or you accidently deleted said |
||||
//folder. In other words, you should only need to use it once. *) |
||||
|
||||
//let createSavingTestArea () = |
||||
// match Directory.Exists saveLocation with |
||||
// | false -> |
||||
// Directory.CreateDirectory saveLocation |> ignore |
||||
// printfn "SavingTestArea created." |
||||
// | _ -> printfn "SavingTestArea already exists." |
||||
|
||||
//(* Before calling this function, make sure the test checking to see if this |
||||
//folder exists is failing first. *) |
||||
//createSavingTestArea () |
Loading…
Reference in new issue