[unrelated] Avoid bad divide hazards
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/models/hsv2hsl/HSV2HSL.qvtc b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/models/hsv2hsl/HSV2HSL.qvtc
index f9ff82b..d8f5fbc 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/models/hsv2hsl/HSV2HSL.qvtc
+++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/models/hsv2hsl/HSV2HSL.qvtc
@@ -94,10 +94,13 @@
query hsv2hsl::hsv2rgb(color : HSVTree::HSV[1]) : HSV2HSL::RGB[1]
{
- let hsv : Sequence(String) = color.tokenize(',') in
- let h : Integer = hsv->at(1).toReal().round() in
- let s : Real = hsv->at(2).toReal()/100.0 in
- let v : Real = hsv->at(3).toReal()/100.0 in
+ let hsv : Sequence(String[*|1]) = color.tokenize(',') in
+ let hopt : Real = hsv->at(1).toReal() in
+ let sopt : Real = hsv->at(2).toReal() in
+ let vopt : Real = hsv->at(3).toReal() in
+ let h : Integer = if hopt <> null then hopt.round() else 0 endif in
+ let s : Real = if sopt <> null then sopt/100.0 else 0 endif in
+ let v : Real = if vopt <> null then vopt/100.0 else 0 endif in
let c : Real = v * s in
let hh1 : Real = h/120 in
let hh2 : Real = 2 * (hh1 - hh1.floor()) in
@@ -118,10 +121,13 @@
query hsv2hsl::rgb2hsl(color : HSV2HSL::RGB[1]) : HSLTree::HSL[1]
{
- let rgb : Sequence(String) = color.tokenize(',') in
- let r : Real = rgb->at(1).toReal()/255.0 in
- let g : Real = rgb->at(2).toReal()/255.0 in
- let b : Real = rgb->at(3).toReal()/255.0 in
+ let rgb : Sequence(String[*|1]) = color.tokenize(',') in
+ let ropt : Real = rgb->at(1).toReal() in
+ let gopt : Real = rgb->at(2).toReal() in
+ let bopt : Real = rgb->at(3).toReal() in
+ let r : Real = if ropt <> null then ropt/255.0 else 0 endif in
+ let g : Real = if gopt <> null then gopt/255.0 else 0 endif in
+ let b : Real = if bopt <> null then bopt/255.0 else 0 endif in
let cMax : Real = r.max(g).max(b) in
let cMin : Real = r.min(g).min(b) in
let l : Real = (cMax + cMin) / 2 in