1+ <!DOCTYPE html>
2+ < link rel ="help " href ="https://drafts.csswg.org/css-values-4/#comp-func ">
3+ < link rel ="help " href ="https://drafts.csswg.org/css-values-4/#numbers ">
4+ < link rel ="help " href ="https://drafts.csswg.org/css-values-4/#calc-type-checking ">
5+ < link rel ="author " title ="Apple Inc ">
6+ < script src ="/resources/testharness.js "> </ script >
7+ < script src ="/resources/testharnessreport.js "> </ script >
8+ < script src ="../support/numeric-testcommon.js "> </ script >
9+ < div id ="target "> </ div >
10+ < script >
11+ function test_angle_equals ( value , expected ) {
12+ test_math_used ( `rotate(${ value } )` , `rotate(${ expected } )` ,
13+ { prop :'transform' , base :'none' ,
14+ msg : `${ value } should be used-value-equivalent to ${ expected } ` } ) ;
15+ }
16+ // Simple tests
17+ test_angle_equals ( 'acos(1)' , '0deg' ) ;
18+ test_angle_equals ( 'atan(0)' , '0deg' ) ;
19+ test_angle_equals ( 'asin(0)' , '0deg' ) ;
20+ test_angle_equals ( 'atan2(0,0)' , '0deg' ) ;
21+
22+ // Test pi
23+ test_math_used ( 'calc(asin(sin(pi/2)))' , '90deg' , { type :'angle' , approx :0.1 } ) ;
24+ test_math_used ( 'calc(acos(cos(pi - 3.14159265358979323846)))' , '0deg' , { type :'angle' , approx :0.1 } ) ;
25+
26+ // Test e
27+ test_math_used ( 'calc(atan(e - 2.7182818284590452354) )' , '0deg' , { type :'angle' , approx :0.1 } ) ;
28+
29+ // General calculations
30+ test_math_used ( 'calc(asin(sin(30deg + 1.0471967rad ) ))' , '90deg' , { type :'angle' , approx :0.1 } ) ;
31+ test_math_used ( 'calc(acos(cos(30deg - 0.523599rad ) ))' , '0deg' ) , { type :'angle' , approx :0.1 } ;
32+ test_math_used ( 'calc(asin(sin(3.14159 / 2 + 1 - 1) ))' , '90deg' , { type :'angle' , approx :0.1 } ) ;
33+ test_math_used ( 'calc(asin(sin(100grad) ))' , '90deg' , { type :'angle' , approx :0.1 } ) ;
34+ test_math_used ( 'calc(acos(cos(0 / 2 + 1 - 1) ))' , '0deg' , { type :'angle' , approx :0.1 } ) ;
35+ test_math_used ( 'calc(atan(tan(30deg + 0.261799rad ) ))' , '45deg' , { type :'angle' , approx :0.1 } ) ;
36+ test_math_used ( 'calc(atan(tan(0.7853975rad ) ))' , '45deg' , { type :'angle' , approx :0.1 } ) ;
37+ test_math_used ( 'calc(atan(tan(3.14159 / 4 + 1 - 1) ))' , '45deg' , { type :'angle' , approx :0.1 } ) ;
38+ test_math_used ( 'calc(asin(sin(0.25turn)) )' , '90deg' , { type :'angle' , approx :0.1 } ) ;
39+ test_math_used ( 'calc(atan2(0,1))' , '0deg' , { type :'angle' , approx :0.1 } ) ;
40+ test_math_used ( 'calc(atan2(0,-1))' , '-180deg' , { type :'angle' , approx :0.1 } ) ;
41+ test_math_used ( 'calc(atan2(1,-1))' , '135deg' , { type :'angle' , approx :0.1 } ) ;
42+ test_math_used ( 'calc(atan2(-1,1))' , '-45deg' , { type :'angle' , approx :0.1 } ) ;
43+
44+ // Test nesting
45+ test_math_used ( 'calc(cos(sin(acos(cos(pi)))))' , '1' , { type :'number' , approx :0.1 } ) ;
46+ test_math_used ( 'calc(sin(atan(tan(pi/2))))' , '1' , { type :'number' , approx :0.1 } ) ;
47+
48+ // Test types for atan2
49+ test_math_used ( 'atan2(1px, -1px)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
50+ test_math_used ( 'atan2(1cm, -1cm)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
51+ test_math_used ( 'atan2(1mm, -1mm)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
52+ test_math_used ( 'atan2(1Q, -1Q)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
53+ test_math_used ( 'atan2(1in, -1in)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
54+ test_math_used ( 'atan2(1pc, -1pc)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
55+ test_math_used ( 'atan2(1pt, -1pt)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
56+ test_math_used ( 'atan2(1em, -1em)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
57+ test_math_used ( 'atan2(1ex, -1ex)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
58+ test_math_used ( 'atan2(1ch, -1ch)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
59+ test_math_used ( 'atan2(1rem, -1rem)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
60+ test_math_used ( 'atan2(1vh, -1vh)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
61+ test_math_used ( 'atan2(1vw, -1vw)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
62+ test_math_used ( 'atan2(1deg, -1deg)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
63+ test_math_used ( 'atan2(1grad, -1grad)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
64+ test_math_used ( 'atan2(1turn, -1turn)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
65+ test_math_used ( 'atan2(1rad, -1rad)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
66+ test_math_used ( 'atan2(1s, -1s)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
67+ test_math_used ( 'atan2(1ms, -1ms)' , '135deg' , { type :'angle' , approx :0.1 } ) ;
68+
69+ </ script >
0 commit comments