package Ġjump aku . cur ves . f sc . benchmark . blend Ċ Ċ import Ġcom . github . sal om on br ys . kot son . array Ċ import Ġjump aku . commons . json . parse Json Ċ import Ġjump aku . cur ves . core . curve . Param Point Ċ import Ġjump aku . cur ves . core . curve . Param Point Json Ċ import Ġjump aku . cur ves . core . curve . bsp line . BS pline Ċ import Ġjump aku . cur ves . core . curve . bsp line . BS pline Json Ċ import Ġjump aku . cur ves . core . fuzzy . Grade Ċ import Ġjump aku . cur ves . f sc . blend . Blend Result Ċ import Ġjump aku . cur ves . f sc . blend . Bl ender Ċ import Ġjump aku . cur ves . f sc . generate . F uzz ifier Ċ import Ġjump aku . cur ves . f sc . generate . Generator Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert Timeout Ċ import Ġjava . time . Duration Ċ import Ġkotlin . system . measure Nano Time ĊĊ Ċ open Ġclass ĠBl ender Benchmark Ġ{ ĊĊĠĠĠ Ġfun Ġresource Text ( name : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl String Ġ= Ġ"/ jump aku / cur ves / f sc / benchmark / blend /" ĊĠĠĠĠĠĠĠ Ġreturn Ġjava Class . getResource ( url String Ġ+ Ġname ). read Text () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġgenerator : ĠGenerator Ġ= ĠGenerator ( ĊĠĠĠĠĠĠĠ Ġdegree Ġ= Ġ 3 , ĊĠĠĠĠĠĠĠ Ġk not Span Ġ= Ġ 0 . 1 , ĊĠĠĠĠĠĠĠ Ġfill Span Ġ= Ġ 0 . 1 Ġ/ Ġ 3 , ĊĠĠĠĠĠĠĠ Ġextend Inner Span Ġ= Ġ 0 . 1 , ĊĠĠĠĠĠĠĠ Ġextend Outer Span Ġ= Ġ 0 . 1 , ĊĠĠĠĠĠĠĠ Ġextend Degree Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠ Ġf uzz ifier Ġ= ĠF uzz ifier . Linear ( 0 . 0 0 4 , Ġ 0 . 0 0 3 ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġbl ender Ġ= ĠBl ender . derive ( ĊĠĠĠĠĠĠĠ Ġgenerator Ġ= Ġgenerator , ĊĠĠĠĠĠĠĠ Ġsampling Span Ġ= Ġ 0 . 0 1 , ĊĠĠĠĠĠĠĠ Ġoverlap Threshold Ġ= ĠGr ade . FALSE , ĊĠĠĠĠĠĠĠ Ġblend Rate Ġ= Ġ 0 . 5 , ĊĠĠĠĠĠĠĠ Ġband Width Ġ= Ġ 0 . 0 1 ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġexisting : ĠList < BS pline > Ġ= Ġ( 0 .. 4 ). map Ġ{ ĊĠĠĠĠĠĠĠ Ġresource Text (" Blend Existing $ it . json "). parse Json (). let Ġ{ ĠB Spline Json . fromJson ( it ) Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġoverlapping : ĠList < BS pline > Ġ= Ġ( 0 .. 4 ). map Ġ{ ĊĠĠĠĠĠĠĠ Ġresource Text (" Blend Over lapping $ it . json "). parse Json (). let Ġ{ ĠB Spline Json . fromJson ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġbenchmark Bl ender () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtime Ġ= Ġ 2 5 L ĊĠĠĠĠĠĠĠ Ġprintln (" Bl ender Ġ<= Ġ$ time Ġms ") ĊĊĠĠĠĠĠĠĠ Ġrepeat ( 1 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbl ender . try Blend ( existing [ 0 ], Ġoverlapping [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġassert Timeout ( Duration . of Millis ( time )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbl ender . try Blend ( existing [ 0 ], Ġoverlapping [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġassert Timeout ( Duration . of Millis ( time )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbl ender . try Blend ( existing [ 1 ], Ġoverlapping [ 1 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġassert Timeout ( Duration . of Millis ( time )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbl ender . try Blend ( existing [ 2 ], Ġoverlapping [ 2 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġassert Timeout ( Duration . of Millis ( time )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbl ender . try Blend ( existing [ 3 ], Ġoverlapping [ 3 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġassert Timeout ( Duration . of Millis ( time )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbl ender . try Blend ( existing [ 4 ], Ġoverlapping [ 4 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ