<===> _util.scss
// Calls `random()` one thousand times, and throws an error if `$check` returns
// `false` for any of the values.
@mixin check-values($arg, $check) {
@for $i from 1 through 1000 {
$value: random($arg);
@if not call($check, $value) {
@error "#{$value} did not match expectation";
}
}
}
<===>
================================================================================
<===> null/options.yml
---
:todo:
- sass/libsass#2915
<===> null/input.scss
@import "../util";
@function check($value) {@return $value >= 0 and $value < 1}
@include check-values(null, get-function(check));
<===> null/output.css
<===>
================================================================================
<===> one/input.scss
@import "../util";
@function check($value) {@return $value == 1}
@include check-values(1, get-function(check));
<===> one/output.css
<===>
================================================================================
<===> within_precision/input.scss
// This is within the precision limit to be considered identical to 1.
a {b: random(1.0000000000001)}
<===> within_precision/output.css
a {
b: 1;
}
<===>
================================================================================
<===> two/input.scss
@import "../util";
@function check($value) {@return $value == 1 or $value == 2}
@include check-values(2, get-function(check));
<===> two/output.css
<===>
================================================================================
<===> one_hundred/input.scss
@import "../util";
@function check($value) {@return $value == round($value) and $value > 0 and $value <= 100}
@include check-values(100, get-function(check));
<===> one_hundred/output.css
<===>
================================================================================
<===> no_arg/input.scss
$value: random();
a {b: $value >= 0 and $value < 1}
<===> no_arg/output.css
a {
b: true;
}
<===>
================================================================================
<===> ignores_units/input.scss
a {b: random(1px)}
<===> ignores_units/output.css
a {
b: 1;
}
<===>
================================================================================
<===> named/input.scss
$value: random($limit: 10);
a {b: $value > 0 and $value <= 10}
<===> named/output.css
a {
b: true;
}
<===>
================================================================================
<===> error/type/input.scss
a {b: random(c)}
<===> error/type/error
Error: $limit: c is not a number.
,
1 | a {b: random(c)}
| ^^^^^^^^^
'
input.scss 1:7 root stylesheet
<===> error/type/error-libsass
Error: $limit: "c" is not a number for `random'
on line 1:7 of input.scss, in function `random`
from line 1:7 of input.scss
>> a {b: random(c)}
------^
<===>
================================================================================
<===> error/decimal/input.scss
a {b: random(1.5)}
<===> error/decimal/error
Error: $limit: 1.5 is not an int.
,
1 | a {b: random(1.5)}
| ^^^^^^^^^^^
'
input.scss 1:7 root stylesheet
<===> error/decimal/error-libsass
Error: Expected $limit to be an integer but got 1.5 for `random'
on line 1:7 of input.scss, in function `random`
from line 1:7 of input.scss
>> a {b: random(1.5)}
------^
<===>
================================================================================
<===> error/zero/input.scss
a {b: random(0)}
<===> error/zero/error
Error: $limit: Must be greater than 0, was 0.
,
1 | a {b: random(0)}
| ^^^^^^^^^
'
input.scss 1:7 root stylesheet
<===> error/zero/error-libsass
Error: $limit 0 must be greater than or equal to 1 for `random'
on line 1:7 of input.scss, in function `random`
from line 1:7 of input.scss
>> a {b: random(0)}
------^
<===>
================================================================================
<===> error/negative/input.scss
a {b: random(-1)}
<===> error/negative/error
Error: $limit: Must be greater than 0, was -1.
,
1 | a {b: random(-1)}
| ^^^^^^^^^^
'
input.scss 1:7 root stylesheet
<===> error/negative/error-libsass
Error: $limit -1 must be greater than or equal to 1 for `random'
on line 1:7 of input.scss, in function `random`
from line 1:7 of input.scss
>> a {b: random(-1)}
------^