1package cef
2
3import (
4 "fmt"
5 "testing"
6
7 "github.com/stretchr/testify/assert"
8)
9
10func TestZoomConversionsRoundTrip(t *testing.T) {
11 factors := []float64{0.5, 0.8, 1.0, 1.1, 1.2, 1.4, 2.0}
12 for _, factor := range factors {
13 t.Run(fmt.Sprintf("factor_%.1f", factor), func(t *testing.T) {
14 level := cefZoomFromFactor(factor)
15 got := factorFromCEFZoom(level)
16 assert.InDelta(t, factor, got, 1e-9, "round-trip mismatch for factor %.6f: level %.6f -> factor %.12f", factor, level, got)
17 })
18 }
19}
20
21func TestZoomConversionsCompensateOSRBackingScale(t *testing.T) {
22 for _, backing := range []float64{1.0, 1.25, 1.5, 2.0} {
23 for _, pageZoom := range []float64{1.0, 1.75} {
24 t.Run(fmt.Sprintf("backing_%.2f_page_%.2f", backing, pageZoom), func(t *testing.T) {
25 level := cefZoomFromPageAndBackingFactor(pageZoom, backing)
26 assert.InDelta(t, pageZoom/backing, factorFromCEFZoom(level), 1e-9)
27 assert.InDelta(t, pageZoom, pageZoomFromCEFAndBackingLevel(level, backing), 1e-9)
28 })
29 }
30 }
31}