diff --git a/Tests/LibWeb/Layout/expected/css-values/comparison-functions.txt b/Tests/LibWeb/Layout/expected/css-values/comparison-functions.txt
new file mode 100644
index 0000000000..713e44ecd7
--- /dev/null
+++ b/Tests/LibWeb/Layout/expected/css-values/comparison-functions.txt
@@ -0,0 +1,7 @@
+Viewport <#document> at (0,0) content-size 800x600 children: not-inline
+ BlockContainer at (0,0) content-size 0x0 [BFC] children: not-inline
+ BlockContainer
at (8,8) content-size 0x0 children: not-inline
+ BlockContainer at (8,8) content-size 80x0 children: not-inline
+ BlockContainer at (8,8) content-size 100x0 children: not-inline
+ BlockContainer at (8,8) content-size 120x300 children: inline
+ TextNode <#text>
diff --git a/Tests/LibWeb/Layout/expected/css-values/exponential-functions.txt b/Tests/LibWeb/Layout/expected/css-values/exponential-functions.txt
new file mode 100644
index 0000000000..48a9b3e3fa
--- /dev/null
+++ b/Tests/LibWeb/Layout/expected/css-values/exponential-functions.txt
@@ -0,0 +1,9 @@
+Viewport <#document> at (0,0) content-size 800x600 children: not-inline
+ BlockContainer at (0,0) content-size 0x0 [BFC] children: not-inline
+ BlockContainer at (8,8) content-size 0x0 children: not-inline
+ BlockContainer at (8,8) content-size 80x0 children: not-inline
+ BlockContainer at (8,8) content-size 100x0 children: not-inline
+ BlockContainer at (8,8) content-size 120x0 children: not-inline
+ BlockContainer at (8,8) content-size 140x0 children: not-inline
+ BlockContainer at (8,8) content-size 160x0 children: inline
+ TextNode <#text>
diff --git a/Tests/LibWeb/Layout/expected/css-values/numeric-constants.txt b/Tests/LibWeb/Layout/expected/css-values/numeric-constants.txt
new file mode 100644
index 0000000000..aaf0af886a
--- /dev/null
+++ b/Tests/LibWeb/Layout/expected/css-values/numeric-constants.txt
@@ -0,0 +1,6 @@
+Viewport <#document> at (0,0) content-size 800x600 children: not-inline
+ BlockContainer at (0,0) content-size 0x0 [BFC] children: not-inline
+ BlockContainer at (8,8) content-size 0x0 children: not-inline
+ BlockContainer at (8,8) content-size 80x0 children: not-inline
+ BlockContainer at (8,8) content-size 100x0 children: inline
+ TextNode <#text>
diff --git a/Tests/LibWeb/Layout/expected/css-values/sign-related-functions.txt b/Tests/LibWeb/Layout/expected/css-values/sign-related-functions.txt
new file mode 100644
index 0000000000..77fd225d3c
--- /dev/null
+++ b/Tests/LibWeb/Layout/expected/css-values/sign-related-functions.txt
@@ -0,0 +1,6 @@
+Viewport <#document> at (0,0) content-size 800x600 children: not-inline
+ BlockContainer at (0,0) content-size 0x0 [BFC] children: not-inline
+ BlockContainer at (8,8) content-size 0x0 children: not-inline
+ BlockContainer at (8,8) content-size 80x0 children: not-inline
+ BlockContainer at (8,8) content-size 100x0 children: inline
+ TextNode <#text>
diff --git a/Tests/LibWeb/Layout/expected/css-values/stepped-value-functions.txt b/Tests/LibWeb/Layout/expected/css-values/stepped-value-functions.txt
new file mode 100644
index 0000000000..8cb72e4d52
--- /dev/null
+++ b/Tests/LibWeb/Layout/expected/css-values/stepped-value-functions.txt
@@ -0,0 +1,7 @@
+Viewport <#document> at (0,0) content-size 800x600 children: not-inline
+ BlockContainer at (0,0) content-size 0x0 [BFC] children: not-inline
+ BlockContainer at (8,8) content-size 0x0 children: not-inline
+ BlockContainer at (8,8) content-size 80x0 children: not-inline
+ BlockContainer at (8,8) content-size 100x0 children: not-inline
+ BlockContainer at (8,8) content-size 120x0 children: inline
+ TextNode <#text>
diff --git a/Tests/LibWeb/Layout/expected/css-values/trigonometric-functions.txt b/Tests/LibWeb/Layout/expected/css-values/trigonometric-functions.txt
new file mode 100644
index 0000000000..8f8b5c3153
--- /dev/null
+++ b/Tests/LibWeb/Layout/expected/css-values/trigonometric-functions.txt
@@ -0,0 +1,12 @@
+Viewport <#document> at (0,0) content-size 800x600 children: not-inline
+ BlockContainer at (0,0) content-size 800x996 [BFC] children: not-inline
+ BlockContainer at (8,8) content-size 784x980 children: not-inline
+ BlockContainer at (8,8) content-size 79.984375x100 positioned children: not-inline
+ BlockContainer at (8,108) content-size 99.984375x100 positioned children: not-inline
+ BlockContainer at (8,208) content-size 119.984375x100 positioned children: not-inline
+ BlockContainer at (8,308) content-size 100x140 positioned children: not-inline
+ BlockContainer at (8,448) content-size 100x160 positioned children: not-inline
+ BlockContainer at (8,608) content-size 100x180 positioned children: not-inline
+ BlockContainer at (8,788) content-size 100x200 positioned children: not-inline
+ BlockContainer <(anonymous)> at (8,988) content-size 784x0 children: inline
+ TextNode <#text>
diff --git a/Tests/LibWeb/Layout/input/css-values/comparison-functions.html b/Tests/LibWeb/Layout/input/css-values/comparison-functions.html
new file mode 100644
index 0000000000..dc07142e0c
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/css-values/comparison-functions.html
@@ -0,0 +1,17 @@
+
+
diff --git a/Tests/LibWeb/Layout/input/css-values/exponential-functions.html b/Tests/LibWeb/Layout/input/css-values/exponential-functions.html
new file mode 100644
index 0000000000..734490c2e3
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/css-values/exponential-functions.html
@@ -0,0 +1,22 @@
+
+
diff --git a/Tests/LibWeb/Layout/input/css-values/numeric-constants.html b/Tests/LibWeb/Layout/input/css-values/numeric-constants.html
new file mode 100644
index 0000000000..3f4cd3c0c4
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/css-values/numeric-constants.html
@@ -0,0 +1,13 @@
+
+
diff --git a/Tests/LibWeb/Layout/input/css-values/sign-related-functions.html b/Tests/LibWeb/Layout/input/css-values/sign-related-functions.html
new file mode 100644
index 0000000000..b46d44eb2f
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/css-values/sign-related-functions.html
@@ -0,0 +1,13 @@
+
+
diff --git a/Tests/LibWeb/Layout/input/css-values/stepped-value-functions.html b/Tests/LibWeb/Layout/input/css-values/stepped-value-functions.html
new file mode 100644
index 0000000000..56199d28ab
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/css-values/stepped-value-functions.html
@@ -0,0 +1,16 @@
+
+
diff --git a/Tests/LibWeb/Layout/input/css-values/trigonometric-functions.html b/Tests/LibWeb/Layout/input/css-values/trigonometric-functions.html
new file mode 100644
index 0000000000..ba6550d455
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/css-values/trigonometric-functions.html
@@ -0,0 +1,38 @@
+
+