...
Run Format

Source file test/fixedbugs/issue14553.go

Documentation: test/fixedbugs

  // run
  
  // Copyright 2016 The Go Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style
  // license that can be found in the LICENSE file.
  
  // This test checks if the compiler's internal constant
  // arithmetic correctly rounds denormal float32 values.
  
  package main
  
  import (
  	"fmt"
  	"math"
  )
  
  func main() {
  	for _, t := range []struct {
  		value float32
  		bits  uint32
  	}{
  		{0e+00, 0x00000000},
  		{1e-46, 0x00000000},
  		{0.5e-45, 0x00000000},
  		{0.8e-45, 0x00000001},
  		{1e-45, 0x00000001},
  		{2e-45, 0x00000001},
  		{3e-45, 0x00000002},
  		{4e-45, 0x00000003},
  		{5e-45, 0x00000004},
  		{6e-45, 0x00000004},
  		{7e-45, 0x00000005},
  		{8e-45, 0x00000006},
  		{9e-45, 0x00000006},
  		{1.0e-44, 0x00000007},
  		{1.1e-44, 0x00000008},
  		{1.2e-44, 0x00000009},
  	} {
  		got := math.Float32bits(t.value)
  		want := t.bits
  		if got != want {
  			panic(fmt.Sprintf("bits(%g) = 0x%08x; want 0x%08x", t.value, got, want))
  		}
  	}
  }
  

View as plain text