-- in.cue --
bool1: "1+1=2:  \(true)" @test(eq, "1+1=2:  true")
bool1: "1+1=2:  \(true)"
bool2: "1+1=1:  \(false)" @test(eq, "1+1=1:  false")

// one replacement character
b1:      'a\xED\x95a'   @test(eq, 'a\xed\x95a')
bytes1s: "\(b1)"        @test(eq, "a\uFFFDa")
bytes1b: '\(b1)'        @test(eq, 'a\xed\x95a')

// two replacement characters
b2:      'a\x80\x95a'   @test(eq, 'a\x80\x95a')
bytes2s: "\(b2)" @test(eq, "a�a")
bytes2b: '\(b2)'        @test(eq, 'a\x80\x95a')

// preserve precision
n1: "\(1) \(2.00)"      @test(eq, "1 2.00")

// but normalize representation
n2: "\(1e2)"            @test(eq, "1E+2")
-- out/eval/stats --
Leaks:  0
Freed:  11
Reused: 0
Allocs: 11
Retain: 0

Unifications: 11
Conjuncts:    12
Disjuncts:    0
-- out/diff-v2-v3.txt --
v2 produces two replacement characters for bytes2s ("a\uFFFD\uFFFDa"); v3
produces one ("a\uFFFDa"). Reason: V2 implements Go conversions standard, which
deviates from the Unicode standard. V3 implements the Unicode standard in this
regard.
