File: acos-asin-atan-atan2-computed.html

package info (click to toggle)
thunderbird 1%3A140.3.1esr-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,608,628 kB
  • sloc: cpp: 7,671,698; javascript: 5,901,131; ansic: 3,898,955; python: 1,413,270; xml: 653,997; asm: 462,284; java: 180,948; sh: 113,489; makefile: 20,460; perl: 14,288; objc: 13,059; yacc: 4,583; pascal: 3,352; lex: 1,720; ruby: 1,222; exp: 762; sql: 715; awk: 580; php: 436; lisp: 430; sed: 70; csh: 10
file content (73 lines) | stat: -rw-r--r-- 4,317 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-values-4/#trig-funcs">
<link rel="help" href="https://drafts.csswg.org/css-values-4/#numbers">
<link rel="help" href="https://drafts.csswg.org/css-values-4/#calc-type-checking">
<link rel="author" title="Apple Inc">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../support/numeric-testcommon.js"></script>
<div id="target"></div>
<script>
function test_angle_equals(value, expected) {
  test_math_used(value, expected, {type: "angle"});
}
// Simple tests
test_angle_equals('acos(1)', '0deg');
test_angle_equals('atan(0)', '0deg');
test_angle_equals('asin(0)', '0deg');
test_angle_equals('atan2(0,0)', '0deg');

// Test pi
test_math_used('calc(asin(sin(pi/2)))', '90deg', {type:'angle', approx:0.1});
test_math_used('calc(acos(cos(pi - 3.14159265358979323846)))', '0deg', {type:'angle', approx:0.1});

// Test e
test_math_used('calc(atan(e - 2.7182818284590452354) )', '0deg', {type:'angle', approx:0.1});

// General calculations
test_math_used('calc(asin(sin(30deg + 1.0471967rad ) ))', '90deg', {type:'angle', approx:0.1});
test_math_used('calc(acos(cos(30deg - 0.523599rad ) ))', '0deg'), {type:'angle', approx:0.1};
test_math_used('calc(asin(sin(3.14159 / 2 + 1 - 1) ))', '90deg', {type:'angle', approx:0.1});
test_math_used('calc(asin(sin(100grad) ))', '90deg', {type:'angle', approx:0.1});
test_math_used('calc(acos(cos(0 / 2 + 1 - 1) ))', '0deg', {type:'angle', approx:0.1});
test_math_used('calc(atan(tan(30deg + 0.261799rad ) ))', '45deg', {type:'angle', approx:0.1});
test_math_used('calc(atan(tan(0.7853975rad ) ))', '45deg', {type:'angle', approx:0.1});
test_math_used('calc(atan(tan(3.14159 / 4 + 1 - 1) ))', '45deg', {type:'angle', approx:0.1});
test_math_used('calc(asin(sin(0.25turn)) )', '90deg', {type:'angle', approx:0.1});
test_math_used('calc(atan2(0,1))', '0deg', {type:'angle', approx:0.1});
test_math_used('calc(atan2(0,-1) / 4)', '45deg', {type:'angle', approx:0.1}); // atan2(0,-1) equals 180deg, result is divided to avoid ambiguity with -180deg
test_math_used('calc(atan2(1,-1))', '135deg', {type:'angle', approx:0.1});
test_math_used('calc(atan2(-1,1))', '-45deg', {type:'angle', approx:0.1});

// Test unresolved at parse time
test_math_used('calc(asin(sin(180deg * sibling-index())))', '0deg', {type:'angle', approx:0.1});
test_math_used('calc(acos(cos(180deg * sibling-index())))', '180deg', {type:'angle', approx:0.1});
test_math_used('calc(atan(tan(180deg * sibling-index())))', '0deg', {type:'angle', approx:0.1});

// Test nesting
test_math_used('calc(cos(sin(acos(cos(pi)))))', '1', {type:'number', approx:0.1});

// Test types for atan2
test_math_used('atan2(1px, -1px)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1cm, -1cm)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1mm, -1mm)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1Q, -1Q)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1in, -1in)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1pc, -1pc)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1pt, -1pt)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1em, -1em)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1ex, -1ex)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1ch, -1ch)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1rem, -1rem)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1rem + 1px - 1px, -1rem)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1vh, -1vh)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1vh + 0px, -1vh + 0px)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1vw, -1vw)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1deg, -1deg)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1grad, -1grad)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1turn, -1turn)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1rad, -1rad)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1s, -1s)', '135deg', {type:'angle', approx:0.1});
test_math_used('atan2(1ms, -1ms)', '135deg', {type:'angle', approx:0.1});

</script>