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