// Copyright 2014 Hajime Hoshi // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package graphics_test import ( "testing" "github.com/hajimehoshi/ebiten/v2/internal/graphics" ) func TestInternalImageSize(t *testing.T) { testCases := []struct { expected int arg int }{ {256, 255}, {256, 256}, {512, 257}, } for _, testCase := range testCases { got := graphics.InternalImageSize(testCase.arg) wanted := testCase.expected if wanted != got { t.Errorf("Clp(%d) = %d, wanted %d", testCase.arg, got, wanted) } } } func TestAdjustPixel(t *testing.T) { tests := []struct { X float32 Y float32 Delta float32 }{ { X: -0.1, Y: 0.9, Delta: 1, }, { X: -1, Y: 0, Delta: 1, }, { X: -1.9, Y: 1.1, Delta: 3, }, { X: -2, Y: 1, Delta: 3, }, } for _, tc := range tests { if rx, ry := graphics.AdjustDestinationPixelForTesting(tc.X)+tc.Delta, graphics.AdjustDestinationPixelForTesting(tc.Y); rx != ry { t.Errorf("adjustDestinationPixel(%f) + 1 must equal to adjustDestinationPixel(%f) but not (%f vs %f)", tc.X, tc.Y, rx, ry) } } } func BenchmarkAdjustPixel(b *testing.B) { for i := 0; i < b.N; i++ { graphics.AdjustDestinationPixelForTesting(float32(i) / 17) } }