From e7437bf7a64264a1a8fd9999acfe875c8c12972c Mon Sep 17 00:00:00 2001 From: jiapei100 Date: Tue, 18 Jul 2023 13:30:34 -0700 Subject: [PATCH] 1. C++17 2. Compatible with Catch2 2.13.10 --- CMakeLists.txt | 2 +- tests/AudioWaveformer.cpp | 62 +++++++------- tests/CVTracker.cpp | 16 ++-- tests/Caption.cpp | 26 +++--- tests/Clip.cpp | 50 ++++++------ tests/Color.cpp | 40 ++++----- tests/Coordinate.cpp | 16 ++-- tests/DummyReader.cpp | 8 +- tests/FFmpegReader.cpp | 62 +++++++------- tests/FFmpegWriter.cpp | 8 +- tests/Fraction.cpp | 70 ++++++++-------- tests/FrameMapper.cpp | 16 ++-- tests/ImageWriter.cpp | 8 +- tests/KeyFrame.cpp | 168 +++++++++++++++++++------------------- tests/Point.cpp | 8 +- tests/ReaderBase.cpp | 2 +- tests/Timeline.cpp | 94 ++++++++++----------- 17 files changed, 328 insertions(+), 328 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 19848cba6..31d8446ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -97,7 +97,7 @@ if ((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") AND endif() #### Set C++ standard level -set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/tests/AudioWaveformer.cpp b/tests/AudioWaveformer.cpp index c8d856836..8eb4b959c 100644 --- a/tests/AudioWaveformer.cpp +++ b/tests/AudioWaveformer.cpp @@ -32,14 +32,14 @@ TEST_CASE( "Extract waveform data piano.wav", "[libopenshot][audiowaveformer]" ) if (channel == 0) { CHECK(waveform.rms_samples.size() == 107); - CHECK(waveform.rms_samples[0] == Approx(0.04879f).margin(0.00001)); - CHECK(waveform.rms_samples[86] == Approx(0.13578f).margin(0.00001)); - CHECK(waveform.rms_samples[87] == Approx(0.0f).margin(0.00001)); + CHECK(waveform.rms_samples[0] == Detail::Approx(0.04879f).margin(0.00001)); + CHECK(waveform.rms_samples[86] == Detail::Approx(0.13578f).margin(0.00001)); + CHECK(waveform.rms_samples[87] == Detail::Approx(0.0f).margin(0.00001)); } else if (channel == 1) { CHECK(waveform.rms_samples.size() == 107); - CHECK(waveform.rms_samples[0] == Approx(0.04879f).margin(0.00001)); - CHECK(waveform.rms_samples[86] == Approx(0.13578f).margin(0.00001)); - CHECK(waveform.rms_samples[87] == Approx(0.0f).margin(0.00001)); + CHECK(waveform.rms_samples[0] == Detail::Approx(0.04879f).margin(0.00001)); + CHECK(waveform.rms_samples[86] == Detail::Approx(0.13578f).margin(0.00001)); + CHECK(waveform.rms_samples[87] == Detail::Approx(0.0f).margin(0.00001)); } waveform.clear(); @@ -63,14 +63,14 @@ TEST_CASE( "Extract waveform data sintel", "[libopenshot][audiowaveformer]" ) if (channel == 0) { CHECK(waveform.rms_samples.size() == 1058); - CHECK(waveform.rms_samples[0] == Approx(0.00001f).margin(0.00001)); - CHECK(waveform.rms_samples[1037] == Approx(0.00003f).margin(0.00001)); - CHECK(waveform.rms_samples[1038] == Approx(0.0f).margin(0.00001)); + CHECK(waveform.rms_samples[0] == Detail::Approx(0.00001f).margin(0.00001)); + CHECK(waveform.rms_samples[1037] == Detail::Approx(0.00003f).margin(0.00001)); + CHECK(waveform.rms_samples[1038] == Detail::Approx(0.0f).margin(0.00001)); } else if (channel == 1) { CHECK(waveform.rms_samples.size() == 1058); - CHECK(waveform.rms_samples[0] == Approx(0.00001f ).margin(0.00001)); - CHECK(waveform.rms_samples[1037] == Approx(0.00003f).margin(0.00001)); - CHECK(waveform.rms_samples[1038] == Approx(0.0f).margin(0.00001)); + CHECK(waveform.rms_samples[0] == Detail::Approx(0.00001f ).margin(0.00001)); + CHECK(waveform.rms_samples[1037] == Detail::Approx(0.00003f).margin(0.00001)); + CHECK(waveform.rms_samples[1038] == Detail::Approx(0.0f).margin(0.00001)); } waveform.clear(); @@ -93,9 +93,9 @@ TEST_CASE( "Extract waveform data sintel (all channels)", "[libopenshot][audiowa AudioWaveformData waveform = waveformer.ExtractSamples(-1, 20, false); CHECK(waveform.rms_samples.size() == 1058); - CHECK(waveform.rms_samples[0] == Approx(0.00001f).margin(0.00001)); - CHECK(waveform.rms_samples[1037] == Approx(0.00003f).margin(0.00001)); - CHECK(waveform.rms_samples[1038] == Approx(0.0f).margin(0.00001)); + CHECK(waveform.rms_samples[0] == Detail::Approx(0.00001f).margin(0.00001)); + CHECK(waveform.rms_samples[1037] == Detail::Approx(0.00003f).margin(0.00001)); + CHECK(waveform.rms_samples[1038] == Detail::Approx(0.0f).margin(0.00001)); waveform.clear(); @@ -118,10 +118,10 @@ TEST_CASE( "Normalize & scale waveform data piano.wav", "[libopenshot][audiowave if (channel == 0) { CHECK(waveform.rms_samples.size() == 107); - CHECK(waveform.rms_samples[0] == Approx(0.07524f).margin(0.00001)); - CHECK(waveform.rms_samples[35] == Approx(0.20063f).margin(0.00001)); - CHECK(waveform.rms_samples[86] == Approx(0.2094f).margin(0.00001)); - CHECK(waveform.rms_samples[87] == Approx(0.0f).margin(0.00001)); + CHECK(waveform.rms_samples[0] == Detail::Approx(0.07524f).margin(0.00001)); + CHECK(waveform.rms_samples[35] == Detail::Approx(0.20063f).margin(0.00001)); + CHECK(waveform.rms_samples[86] == Detail::Approx(0.2094f).margin(0.00001)); + CHECK(waveform.rms_samples[87] == Detail::Approx(0.0f).margin(0.00001)); } waveform.clear(); @@ -164,28 +164,28 @@ TEST_CASE( "AudioWaveformData struct methods", "[libopenshot][audiowaveformer]" waveform.rms_samples[s] = 1.0; waveform.max_samples[s] = 1.0; } - CHECK(waveform.rms_samples[0] == Approx(1.0f).margin(0.00001)); - CHECK(waveform.rms_samples[9] == Approx(1.0f).margin(0.00001)); - CHECK(waveform.max_samples[0] == Approx(1.0f).margin(0.00001)); - CHECK(waveform.max_samples[9] == Approx(1.0f).margin(0.00001)); + CHECK(waveform.rms_samples[0] == Detail::Approx(1.0f).margin(0.00001)); + CHECK(waveform.rms_samples[9] == Detail::Approx(1.0f).margin(0.00001)); + CHECK(waveform.max_samples[0] == Detail::Approx(1.0f).margin(0.00001)); + CHECK(waveform.max_samples[9] == Detail::Approx(1.0f).margin(0.00001)); // Scale all values by 2 waveform.scale(10, 2.0); CHECK(waveform.rms_samples.size() == 10); CHECK(waveform.max_samples.size() == 10); - CHECK(waveform.rms_samples[0] == Approx(2.0f).margin(0.00001)); - CHECK(waveform.rms_samples[9] == Approx(2.0f).margin(0.00001)); - CHECK(waveform.max_samples[0] == Approx(2.0f).margin(0.00001)); - CHECK(waveform.max_samples[9] == Approx(2.0f).margin(0.00001)); + CHECK(waveform.rms_samples[0] == Detail::Approx(2.0f).margin(0.00001)); + CHECK(waveform.rms_samples[9] == Detail::Approx(2.0f).margin(0.00001)); + CHECK(waveform.max_samples[0] == Detail::Approx(2.0f).margin(0.00001)); + CHECK(waveform.max_samples[9] == Detail::Approx(2.0f).margin(0.00001)); // Zero out all values waveform.zero(10); CHECK(waveform.rms_samples.size() == 10); CHECK(waveform.max_samples.size() == 10); - CHECK(waveform.rms_samples[0] == Approx(0.0f).margin(0.00001)); - CHECK(waveform.rms_samples[9] == Approx(0.0f).margin(0.00001)); - CHECK(waveform.max_samples[0] == Approx(0.0f).margin(0.00001)); - CHECK(waveform.max_samples[9] == Approx(0.0f).margin(0.00001)); + CHECK(waveform.rms_samples[0] == Detail::Approx(0.0f).margin(0.00001)); + CHECK(waveform.rms_samples[9] == Detail::Approx(0.0f).margin(0.00001)); + CHECK(waveform.max_samples[0] == Detail::Approx(0.0f).margin(0.00001)); + CHECK(waveform.max_samples[9] == Detail::Approx(0.0f).margin(0.00001)); // Access vectors and verify size std::vector> vectors = waveform.vectors(); diff --git a/tests/CVTracker.cpp b/tests/CVTracker.cpp index 95bcc6c8d..ecb2f1a6a 100644 --- a/tests/CVTracker.cpp +++ b/tests/CVTracker.cpp @@ -101,10 +101,10 @@ TEST_CASE( "Track_Video", "[libopenshot][opencv][tracker]" ) int height = ((float)fd.y2*360) - y; // Compare if tracked data is equal to pre-tested ones - CHECK(x == Approx(256).margin(1)); - CHECK(y == Approx(132).margin(1)); - CHECK(width == Approx(180).margin(1)); - CHECK(height == Approx(166).margin(2)); + CHECK(x == Detail::Approx(256).margin(1)); + CHECK(y == Detail::Approx(132).margin(1)); + CHECK(width == Detail::Approx(180).margin(1)); + CHECK(height == Detail::Approx(166).margin(2)); } @@ -178,9 +178,9 @@ TEST_CASE( "SaveLoad_Protobuf", "[libopenshot][opencv][tracker]" ) float height_2 = fd_2.y2 - y_2; // Compare first tracker data with second tracker data - CHECK(x_1 == Approx(x_2).margin(0.01)); - CHECK(y_1 == Approx(y_2).margin(0.01)); - CHECK(width_1 == Approx(width_2).margin(0.01)); - CHECK(height_1 == Approx(height_2).margin(0.01)); + CHECK(x_1 == Detail::Approx(x_2).margin(0.01)); + CHECK(y_1 == Detail::Approx(y_2).margin(0.01)); + CHECK(width_1 == Detail::Approx(width_2).margin(0.01)); + CHECK(height_1 == Detail::Approx(height_2).margin(0.01)); } diff --git a/tests/Caption.cpp b/tests/Caption.cpp index c51c0f780..503fe80e4 100644 --- a/tests/Caption.cpp +++ b/tests/Caption.cpp @@ -49,19 +49,19 @@ TEST_CASE( "caption effect", "[libopenshot][caption]" ) CHECK(c1.color.GetColorHex(1) == "#ffffff"); CHECK(c1.stroke.GetColorHex(1) == "#a9a9a9"); CHECK(c1.background.GetColorHex(1) == "#000000"); - CHECK(c1.background_alpha.GetValue(1) == Approx(0.0f).margin(0.00001)); - CHECK(c1.left.GetValue(1) == Approx(0.10f).margin(0.00001)); - CHECK(c1.right.GetValue(1) == Approx(0.10f).margin(0.00001)); - CHECK(c1.top.GetValue(1) == Approx(0.75).margin(0.00001)); - CHECK(c1.stroke_width.GetValue(1) == Approx(0.5f).margin(0.00001)); - CHECK(c1.font_size.GetValue(1) == Approx(30.0f).margin(0.00001)); - CHECK(c1.font_alpha.GetValue(1) == Approx(1.0f).margin(0.00001)); + CHECK(c1.background_alpha.GetValue(1) == Detail::Approx(0.0f).margin(0.00001)); + CHECK(c1.left.GetValue(1) == Detail::Approx(0.10f).margin(0.00001)); + CHECK(c1.right.GetValue(1) == Detail::Approx(0.10f).margin(0.00001)); + CHECK(c1.top.GetValue(1) == Detail::Approx(0.75).margin(0.00001)); + CHECK(c1.stroke_width.GetValue(1) == Detail::Approx(0.5f).margin(0.00001)); + CHECK(c1.font_size.GetValue(1) == Detail::Approx(30.0f).margin(0.00001)); + CHECK(c1.font_alpha.GetValue(1) == Detail::Approx(1.0f).margin(0.00001)); CHECK(c1.font_name == "sans"); - CHECK(c1.fade_in.GetValue(1) == Approx(0.35f).margin(0.00001)); - CHECK(c1.fade_out.GetValue(1) == Approx(0.35f).margin(0.00001)); - CHECK(c1.background_corner.GetValue(1) == Approx(10.0f).margin(0.00001)); - CHECK(c1.background_padding.GetValue(1) == Approx(20.0f).margin(0.00001)); - CHECK(c1.line_spacing.GetValue(1) == Approx(1.0f).margin(0.00001)); + CHECK(c1.fade_in.GetValue(1) == Detail::Approx(0.35f).margin(0.00001)); + CHECK(c1.fade_out.GetValue(1) == Detail::Approx(0.35f).margin(0.00001)); + CHECK(c1.background_corner.GetValue(1) == Detail::Approx(10.0f).margin(0.00001)); + CHECK(c1.background_padding.GetValue(1) == Detail::Approx(20.0f).margin(0.00001)); + CHECK(c1.line_spacing.GetValue(1) == Detail::Approx(1.0f).margin(0.00001)); CHECK(c1.CaptionText() == "00:00:00:000 --> 00:10:00:000\nEdit this caption with our caption editor"); // Load clip with video @@ -229,4 +229,4 @@ TEST_CASE( "caption effect", "[libopenshot][caption]" ) // Close QApplication app.quit(); -} \ No newline at end of file +} diff --git a/tests/Clip.cpp b/tests/Clip.cpp index a6e3e6299..44098f830 100644 --- a/tests/Clip.cpp +++ b/tests/Clip.cpp @@ -43,9 +43,9 @@ TEST_CASE( "default constructor", "[libopenshot][clip]" ) CHECK(c1.gravity == GRAVITY_CENTER); CHECK(c1.scale == SCALE_FIT); CHECK(c1.Layer() == 0); - CHECK(c1.Position() == Approx(0.0f).margin(0.00001)); - CHECK(c1.Start() == Approx(0.0f).margin(0.00001)); - CHECK(c1.End() == Approx(0.0f).margin(0.00001)); + CHECK(c1.Position() == Detail::Approx(0.0f).margin(0.00001)); + CHECK(c1.Start() == Detail::Approx(0.0f).margin(0.00001)); + CHECK(c1.End() == Detail::Approx(0.0f).margin(0.00001)); } TEST_CASE( "path string constructor", "[libopenshot][clip]" ) @@ -61,9 +61,9 @@ TEST_CASE( "path string constructor", "[libopenshot][clip]" ) CHECK(c1.gravity == GRAVITY_CENTER); CHECK(c1.scale == SCALE_FIT); CHECK(c1.Layer() == 0); - CHECK(c1.Position() == Approx(0.0f).margin(0.00001)); - CHECK(c1.Start() == Approx(0.0f).margin(0.00001)); - CHECK(c1.End() == Approx(4.39937f).margin(0.00001)); + CHECK(c1.Position() == Detail::Approx(0.0f).margin(0.00001)); + CHECK(c1.Start() == Detail::Approx(0.0f).margin(0.00001)); + CHECK(c1.End() == Detail::Approx(4.39937f).margin(0.00001)); } TEST_CASE( "basic getters and setters", "[libopenshot][clip]" ) @@ -77,9 +77,9 @@ TEST_CASE( "basic getters and setters", "[libopenshot][clip]" ) CHECK(c1.gravity == GRAVITY_CENTER); CHECK(c1.scale == SCALE_FIT); CHECK(c1.Layer() == 0); - CHECK(c1.Position() == Approx(0.0f).margin(0.00001)); - CHECK(c1.Start() == Approx(0.0f).margin(0.00001)); - CHECK(c1.End() == Approx(0.0f).margin(0.00001)); + CHECK(c1.Position() == Detail::Approx(0.0f).margin(0.00001)); + CHECK(c1.Start() == Detail::Approx(0.0f).margin(0.00001)); + CHECK(c1.End() == Detail::Approx(0.0f).margin(0.00001)); // Change some properties c1.Layer(1); @@ -88,9 +88,9 @@ TEST_CASE( "basic getters and setters", "[libopenshot][clip]" ) c1.End(10.5); CHECK(c1.Layer() == 1); - CHECK(c1.Position() == Approx(5.0f).margin(0.00001)); - CHECK(c1.Start() == Approx(3.5f).margin(0.00001)); - CHECK(c1.End() == Approx(10.5f).margin(0.00001)); + CHECK(c1.Position() == Detail::Approx(5.0f).margin(0.00001)); + CHECK(c1.Start() == Detail::Approx(3.5f).margin(0.00001)); + CHECK(c1.End() == Detail::Approx(10.5f).margin(0.00001)); } TEST_CASE( "properties", "[libopenshot][clip]" ) @@ -121,7 +121,7 @@ TEST_CASE( "properties", "[libopenshot][clip]" ) CHECK(success == true); // Check for specific things - CHECK(root["alpha"]["value"].asDouble() == Approx(1.0f).margin(0.01)); + CHECK(root["alpha"]["value"].asDouble() == Detail::Approx(1.0f).margin(0.01)); CHECK(root["alpha"]["keyframe"].asBool() == true); // Get properties JSON string at frame 250 @@ -136,7 +136,7 @@ TEST_CASE( "properties", "[libopenshot][clip]" ) CHECK(success == true); // Check for specific things - CHECK(root["alpha"]["value"].asDouble() == Approx(0.5f).margin(0.01)); + CHECK(root["alpha"]["value"].asDouble() == Detail::Approx(0.5f).margin(0.01)); CHECK_FALSE(root["alpha"]["keyframe"].asBool()); // Get properties JSON string at frame 250 (again) @@ -165,7 +165,7 @@ TEST_CASE( "properties", "[libopenshot][clip]" ) CHECK(success == true); // Check for specific things - CHECK(root["alpha"]["value"].asDouble() == Approx(0.0f).margin(0.00001)); + CHECK(root["alpha"]["value"].asDouble() == Detail::Approx(0.0f).margin(0.00001)); CHECK(root["alpha"]["keyframe"].asBool() == true); // Free up the reader we allocated @@ -321,23 +321,23 @@ TEST_CASE( "access frames past reader length", "[libopenshot][clip]" ) // Get the last valid frame # std::shared_ptr frame = c1.GetFrame(30); - CHECK(frame->GetAudioSamples(0)[0] == Approx(30.0).margin(0.00001)); - CHECK(frame->GetAudioSamples(0)[600] == Approx(30.4081631).margin(0.00001)); - CHECK(frame->GetAudioSamples(0)[1200] == Approx(30.8163261).margin(0.00001)); + CHECK(frame->GetAudioSamples(0)[0] == Detail::Approx(30.0).margin(0.00001)); + CHECK(frame->GetAudioSamples(0)[600] == Detail::Approx(30.4081631).margin(0.00001)); + CHECK(frame->GetAudioSamples(0)[1200] == Detail::Approx(30.8163261).margin(0.00001)); // Get the +1 past the end of the reader (should be audio silence) frame = c1.GetFrame(31); - CHECK(frame->GetAudioSamples(0)[0] == Approx(0.0).margin(0.00001)); - CHECK(frame->GetAudioSamples(0)[600] == Approx(0.0).margin(0.00001)); - CHECK(frame->GetAudioSamples(0)[1200] == Approx(0.0).margin(0.00001)); + CHECK(frame->GetAudioSamples(0)[0] == Detail::Approx(0.0).margin(0.00001)); + CHECK(frame->GetAudioSamples(0)[600] == Detail::Approx(0.0).margin(0.00001)); + CHECK(frame->GetAudioSamples(0)[1200] == Detail::Approx(0.0).margin(0.00001)); // Get the +2 past the end of the reader (should be audio silence) frame = c1.GetFrame(32); - CHECK(frame->GetAudioSamples(0)[0] == Approx(0.0).margin(0.00001)); - CHECK(frame->GetAudioSamples(0)[600] == Approx(0.0).margin(0.00001)); - CHECK(frame->GetAudioSamples(0)[1200] == Approx(0.0).margin(0.00001)); + CHECK(frame->GetAudioSamples(0)[0] == Detail::Approx(0.0).margin(0.00001)); + CHECK(frame->GetAudioSamples(0)[600] == Detail::Approx(0.0).margin(0.00001)); + CHECK(frame->GetAudioSamples(0)[1200] == Detail::Approx(0.0).margin(0.00001)); } TEST_CASE( "setting and clobbering readers", "[libopenshot][clip]" ) @@ -489,4 +489,4 @@ TEST_CASE( "resample_audio_8000_to_48000_reverse", "[libopenshot][clip]" ) map.Close(); reader.Close(); clip.Close(); -} \ No newline at end of file +} diff --git a/tests/Color.cpp b/tests/Color.cpp index 032cc9490..063ac8038 100644 --- a/tests/Color.cpp +++ b/tests/Color.cpp @@ -27,9 +27,9 @@ TEST_CASE( "default constructor", "[libopenshot][color]" ) // Create an empty color openshot::Color c1; - CHECK(c1.red.GetValue(0) == Approx(0.0f).margin(0.00001)); - CHECK(c1.green.GetValue(0) == Approx(0.0f).margin(0.00001)); - CHECK(c1.blue.GetValue(0) == Approx(0.0f).margin(0.00001)); + CHECK(c1.red.GetValue(0) == Detail::Approx(0.0f).margin(0.00001)); + CHECK(c1.green.GetValue(0) == Detail::Approx(0.0f).margin(0.00001)); + CHECK(c1.blue.GetValue(0) == Detail::Approx(0.0f).margin(0.00001)); } TEST_CASE( "Keyframe constructor", "[libopenshot][color]" ) @@ -41,10 +41,10 @@ TEST_CASE( "Keyframe constructor", "[libopenshot][color]" ) } auto c = openshot::Color(kfs[0], kfs[1], kfs[2], kfs[3]); - CHECK(c.red.GetLong(100) == Approx(20).margin(0.01)); - CHECK(c.green.GetLong(100) == Approx(40).margin(0.01)); - CHECK(c.blue.GetLong(100) == Approx(60).margin(0.01)); - CHECK(c.alpha.GetLong(100) == Approx(80).margin(0.01)); + CHECK(c.red.GetLong(100) == Detail::Approx(20).margin(0.01)); + CHECK(c.green.GetLong(100) == Detail::Approx(40).margin(0.01)); + CHECK(c.blue.GetLong(100) == Detail::Approx(60).margin(0.01)); + CHECK(c.alpha.GetLong(100) == Detail::Approx(80).margin(0.01)); } TEST_CASE( "Animate_Colors", "[libopenshot][color]" ) @@ -63,9 +63,9 @@ TEST_CASE( "Animate_Colors", "[libopenshot][color]" ) c1.blue.AddPoint(1000, 65); // Check the color at frame 500 - CHECK(c1.red.GetLong(500) == Approx(0).margin(0.01)); - CHECK(c1.green.GetLong(500) == Approx(187).margin(0.01)); - CHECK(c1.blue.GetLong(500) == Approx(160).margin(0.01)); + CHECK(c1.red.GetLong(500) == Detail::Approx(0).margin(0.01)); + CHECK(c1.green.GetLong(500) == Detail::Approx(187).margin(0.01)); + CHECK(c1.blue.GetLong(500) == Detail::Approx(160).margin(0.01)); } TEST_CASE( "HEX_Value", "[libopenshot][color]" ) @@ -90,10 +90,10 @@ TEST_CASE( "QColor ctor", "[libopenshot][color]" ) QColor qc(Qt::red); openshot::Color c(qc); - CHECK(c.red.GetLong(1) == Approx(255.0).margin(0.0001)); - CHECK(c.green.GetLong(1) == Approx(0.0).margin(0.0001)); - CHECK(c.blue.GetLong(1) == Approx(0.0).margin(0.0001)); - CHECK(c.alpha.GetLong(1) == Approx(255.0).margin(0.0001)); + CHECK(c.red.GetLong(1) == Detail::Approx(255.0).margin(0.0001)); + CHECK(c.green.GetLong(1) == Detail::Approx(0.0).margin(0.0001)); + CHECK(c.blue.GetLong(1) == Detail::Approx(0.0).margin(0.0001)); + CHECK(c.alpha.GetLong(1) == Detail::Approx(255.0).margin(0.0001)); } TEST_CASE( "std::string construction", "[libopenshot][color]" ) @@ -121,12 +121,12 @@ TEST_CASE( "Distance", "[libopenshot][color]" ) openshot::Color::GetDistance( c1.red.GetInt(1), c1.blue.GetInt(1), c1.green.GetInt(1), c2.red.GetInt(1), c2.blue.GetInt(1), c2.green.GetInt(1) - ) == Approx(19.0f).margin(0.001)); + ) == Detail::Approx(19.0f).margin(0.001)); CHECK( openshot::Color::GetDistance( c3.red.GetInt(1), c3.blue.GetInt(1), c3.green.GetInt(1), c4.red.GetInt(1), c4.blue.GetInt(1), c4.green.GetInt(1) - ) == Approx(764.0f).margin(0.001)); + ) == Detail::Approx(764.0f).margin(0.001)); } TEST_CASE( "RGBA_Constructor", "[libopenshot][color]" ) @@ -177,8 +177,8 @@ TEST_CASE( "SetJson", "[libopenshot][color]" ) { openshot::Color c; CHECK_THROWS_AS(c.SetJson("}{"), openshot::InvalidJSON); c.SetJson(json_input); - CHECK(c.red.GetLong(10) == Approx(0).margin(0.01)); - CHECK(c.green.GetLong(10) == Approx(128).margin(0.01)); - CHECK(c.blue.GetLong(10) == Approx(64).margin(0.01)); - CHECK(c.alpha.GetLong(10) == Approx(192).margin(0.01)); + CHECK(c.red.GetLong(10) == Detail::Approx(0).margin(0.01)); + CHECK(c.green.GetLong(10) == Detail::Approx(128).margin(0.01)); + CHECK(c.blue.GetLong(10) == Detail::Approx(64).margin(0.01)); + CHECK(c.alpha.GetLong(10) == Detail::Approx(192).margin(0.01)); } diff --git a/tests/Coordinate.cpp b/tests/Coordinate.cpp index c043dcff9..ea160304a 100644 --- a/tests/Coordinate.cpp +++ b/tests/Coordinate.cpp @@ -22,8 +22,8 @@ TEST_CASE( "default constructor", "[libopenshot][coordinate]" ) // Create an empty coordinate Coordinate c1; - CHECK(c1.X == Approx(0.0f).margin(0.00001)); - CHECK(c1.Y == Approx(0.0f).margin(0.00001)); + CHECK(c1.X == Detail::Approx(0.0f).margin(0.00001)); + CHECK(c1.Y == Detail::Approx(0.0f).margin(0.00001)); } TEST_CASE( "XY constructor", "[libopenshot][coordinate]" ) @@ -31,15 +31,15 @@ TEST_CASE( "XY constructor", "[libopenshot][coordinate]" ) // Create an empty coordinate Coordinate c1(2,8); - CHECK(c1.X == Approx(2.0f).margin(0.00001)); - CHECK(c1.Y == Approx(8.0f).margin(0.00001)); + CHECK(c1.X == Detail::Approx(2.0f).margin(0.00001)); + CHECK(c1.Y == Detail::Approx(8.0f).margin(0.00001)); } TEST_CASE( "std::pair constructor", "[libopenshot][coordinate]" ) { Coordinate c1(std::pair(12, 10)); - CHECK(c1.X == Approx(12.0f).margin(0.00001)); - CHECK(c1.Y == Approx(10.0f).margin(0.00001)); + CHECK(c1.X == Detail::Approx(12.0f).margin(0.00001)); + CHECK(c1.Y == Detail::Approx(10.0f).margin(0.00001)); } TEST_CASE( "Json", "[libopenshot][coordinate]" ) @@ -70,6 +70,6 @@ TEST_CASE( "SetJson", "[libopenshot][coordinate]" ) { CHECK_THROWS_AS(c.SetJson("}{"), openshot::InvalidJSON); // Check that values set via SetJson() are correct c.SetJson(json_input); - CHECK(c.X == Approx(100.0).margin(0.01)); - CHECK(c.Y == Approx(50.0).margin(0.01)); + CHECK(c.X == Detail::Approx(100.0).margin(0.01)); + CHECK(c.Y == Detail::Approx(50.0).margin(0.01)); } diff --git a/tests/DummyReader.cpp b/tests/DummyReader.cpp index 7d459392d..48fe1f0b8 100644 --- a/tests/DummyReader.cpp +++ b/tests/DummyReader.cpp @@ -100,11 +100,11 @@ TEST_CASE( "Fake_Frame", "[libopenshot][dummyreader]" ) { // Verify our artificial audio sample data is correct CHECK(r.GetFrame(1)->number == 1); CHECK(r.GetFrame(1)->GetAudioSamples(0)[0] == 1); - CHECK(r.GetFrame(1)->GetAudioSamples(0)[1] == Approx(1.00068033).margin(0.00001)); - CHECK(r.GetFrame(1)->GetAudioSamples(0)[2] == Approx(1.00136054).margin(0.00001)); + CHECK(r.GetFrame(1)->GetAudioSamples(0)[1] == Detail::Approx(1.00068033).margin(0.00001)); + CHECK(r.GetFrame(1)->GetAudioSamples(0)[2] == Detail::Approx(1.00136054).margin(0.00001)); CHECK(r.GetFrame(2)->GetAudioSamples(0)[0] == 2); - CHECK(r.GetFrame(2)->GetAudioSamples(0)[1] == Approx(2.00068033).margin(0.00001)); - CHECK(r.GetFrame(2)->GetAudioSamples(0)[2] == Approx(2.00136054).margin(0.00001)); + CHECK(r.GetFrame(2)->GetAudioSamples(0)[1] == Detail::Approx(2.00068033).margin(0.00001)); + CHECK(r.GetFrame(2)->GetAudioSamples(0)[2] == Detail::Approx(2.00136054).margin(0.00001)); // Clean up cache.Clear(); diff --git a/tests/FFmpegReader.cpp b/tests/FFmpegReader.cpp index a578ab186..77327460a 100644 --- a/tests/FFmpegReader.cpp +++ b/tests/FFmpegReader.cpp @@ -59,12 +59,12 @@ TEST_CASE( "Check_Audio_File", "[libopenshot][ffmpegreader]" ) CHECK(f->GetAudioSamplesCount() == 332); // Check actual sample values (to be sure the waveform is correct) - CHECK(samples[0] == Approx(0.0f).margin(0.00001)); - CHECK(samples[50] == Approx(0.0f).margin(0.00001)); - CHECK(samples[100] == Approx(0.0f).margin(0.00001)); - CHECK(samples[200] == Approx(0.0f).margin(0.00001)); - CHECK(samples[230] == Approx(0.16406f).margin(0.00001)); - CHECK(samples[300] == Approx(-0.06250f).margin(0.00001)); + CHECK(samples[0] == Detail::Approx(0.0f).margin(0.00001)); + CHECK(samples[50] == Detail::Approx(0.0f).margin(0.00001)); + CHECK(samples[100] == Detail::Approx(0.0f).margin(0.00001)); + CHECK(samples[200] == Detail::Approx(0.0f).margin(0.00001)); + CHECK(samples[230] == Detail::Approx(0.16406f).margin(0.00001)); + CHECK(samples[300] == Detail::Approx(-0.06250f).margin(0.00001)); // Close reader r.Close(); @@ -86,10 +86,10 @@ TEST_CASE( "Check_Video_File", "[libopenshot][ffmpegreader]" ) int pixel_index = 112 * 4; // pixel 112 (4 bytes per pixel) // Check image properties on scanline 10, pixel 112 - CHECK((int)pixels[pixel_index] == Approx(21).margin(5)); - CHECK((int)pixels[pixel_index + 1] == Approx(191).margin(5)); - CHECK((int)pixels[pixel_index + 2] == Approx(0).margin(5)); - CHECK((int)pixels[pixel_index + 3] == Approx(255).margin(5)); + CHECK((int)pixels[pixel_index] == Detail::Approx(21).margin(5)); + CHECK((int)pixels[pixel_index + 1] == Detail::Approx(191).margin(5)); + CHECK((int)pixels[pixel_index + 2] == Detail::Approx(0).margin(5)); + CHECK((int)pixels[pixel_index + 3] == Detail::Approx(255).margin(5)); // Check pixel function CHECK(f->CheckPixel(10, 112, 21, 191, 0, 255, 5) == true); @@ -103,10 +103,10 @@ TEST_CASE( "Check_Video_File", "[libopenshot][ffmpegreader]" ) pixel_index = 112 * 4; // pixel 112 (4 bytes per pixel) // Check image properties on scanline 10, pixel 112 - CHECK((int)pixels[pixel_index] == Approx(0).margin(5)); - CHECK((int)pixels[pixel_index + 1] == Approx(96).margin(5)); - CHECK((int)pixels[pixel_index + 2] == Approx(188).margin(5)); - CHECK((int)pixels[pixel_index + 3] == Approx(255).margin(5)); + CHECK((int)pixels[pixel_index] == Detail::Approx(0).margin(5)); + CHECK((int)pixels[pixel_index + 1] == Detail::Approx(96).margin(5)); + CHECK((int)pixels[pixel_index + 2] == Detail::Approx(188).margin(5)); + CHECK((int)pixels[pixel_index + 3] == Detail::Approx(255).margin(5)); // Check pixel function CHECK(f->CheckPixel(10, 112, 0, 96, 188, 255, 5) == true); @@ -304,10 +304,10 @@ TEST_CASE( "Decoding AV1 Video", "[libopenshot][ffmpegreader]" ) int pixel_index = 112 * 4; // Check image properties on scanline 10, pixel 112 - CHECK((int) pixels[pixel_index] == Approx(0).margin(5)); - CHECK((int) pixels[pixel_index + 1] == Approx(0).margin(5)); - CHECK((int) pixels[pixel_index + 2] == Approx(0).margin(5)); - CHECK((int) pixels[pixel_index + 3] == Approx(255).margin(5)); + CHECK((int) pixels[pixel_index] == Detail::Approx(0).margin(5)); + CHECK((int) pixels[pixel_index + 1] == Detail::Approx(0).margin(5)); + CHECK((int) pixels[pixel_index + 2] == Detail::Approx(0).margin(5)); + CHECK((int) pixels[pixel_index + 3] == Detail::Approx(255).margin(5)); f = r.GetFrame(90); @@ -316,10 +316,10 @@ TEST_CASE( "Decoding AV1 Video", "[libopenshot][ffmpegreader]" ) pixel_index = 930 * 4; // Check image properties on scanline 820, pixel 930 - CHECK((int) pixels[pixel_index] == Approx(255).margin(5)); - CHECK((int) pixels[pixel_index + 1] == Approx(255).margin(5)); - CHECK((int) pixels[pixel_index + 2] == Approx(255).margin(5)); - CHECK((int) pixels[pixel_index + 3] == Approx(255).margin(5)); + CHECK((int) pixels[pixel_index] == Detail::Approx(255).margin(5)); + CHECK((int) pixels[pixel_index + 1] == Detail::Approx(255).margin(5)); + CHECK((int) pixels[pixel_index + 2] == Detail::Approx(255).margin(5)); + CHECK((int) pixels[pixel_index + 3] == Detail::Approx(255).margin(5)); f = r.GetFrame(160); @@ -328,10 +328,10 @@ TEST_CASE( "Decoding AV1 Video", "[libopenshot][ffmpegreader]" ) pixel_index = 930 * 4; // Check image properties on scanline 820, pixel 930 - CHECK((int) pixels[pixel_index] == Approx(255).margin(5)); - CHECK((int) pixels[pixel_index + 1] == Approx(255).margin(5)); - CHECK((int) pixels[pixel_index + 2] == Approx(255).margin(5)); - CHECK((int) pixels[pixel_index + 3] == Approx(255).margin(5)); + CHECK((int) pixels[pixel_index] == Detail::Approx(255).margin(5)); + CHECK((int) pixels[pixel_index + 1] == Detail::Approx(255).margin(5)); + CHECK((int) pixels[pixel_index + 2] == Detail::Approx(255).margin(5)); + CHECK((int) pixels[pixel_index + 3] == Detail::Approx(255).margin(5)); f = r.GetFrame(240); @@ -340,10 +340,10 @@ TEST_CASE( "Decoding AV1 Video", "[libopenshot][ffmpegreader]" ) pixel_index = 930 * 4; // Check image properties on scanline 820, pixel 930 - CHECK((int) pixels[pixel_index] == Approx(255).margin(5)); - CHECK((int) pixels[pixel_index + 1] == Approx(255).margin(5)); - CHECK((int) pixels[pixel_index + 2] == Approx(255).margin(5)); - CHECK((int) pixels[pixel_index + 3] == Approx(255).margin(5)); + CHECK((int) pixels[pixel_index] == Detail::Approx(255).margin(5)); + CHECK((int) pixels[pixel_index + 1] == Detail::Approx(255).margin(5)); + CHECK((int) pixels[pixel_index + 2] == Detail::Approx(255).margin(5)); + CHECK((int) pixels[pixel_index + 3] == Detail::Approx(255).margin(5)); // Close reader r.Close(); @@ -353,4 +353,4 @@ TEST_CASE( "Decoding AV1 Video", "[libopenshot][ffmpegreader]" ) } catch (const InvalidFile & e) { // Ignore older FFmpeg versions which don't support AV1 } -} \ No newline at end of file +} diff --git a/tests/FFmpegWriter.cpp b/tests/FFmpegWriter.cpp index cbaa7264b..ea414886d 100644 --- a/tests/FFmpegWriter.cpp +++ b/tests/FFmpegWriter.cpp @@ -66,10 +66,10 @@ TEST_CASE( "Webm", "[libopenshot][ffmpegwriter]" ) int pixel_index = 112 * 4; // pixel 112 (4 bytes per pixel) // Check image properties on scanline 10, pixel 112 - CHECK((int)pixels[pixel_index] == Approx(23).margin(5)); - CHECK((int)pixels[pixel_index + 1] == Approx(23).margin(5)); - CHECK((int)pixels[pixel_index + 2] == Approx(23).margin(5)); - CHECK((int)pixels[pixel_index + 3] == Approx(255).margin(5)); + CHECK((int)pixels[pixel_index] == Detail::Approx(23).margin(5)); + CHECK((int)pixels[pixel_index + 1] == Detail::Approx(23).margin(5)); + CHECK((int)pixels[pixel_index + 2] == Detail::Approx(23).margin(5)); + CHECK((int)pixels[pixel_index + 3] == Detail::Approx(255).margin(5)); } TEST_CASE( "Options_Overloads", "[libopenshot][ffmpegwriter]" ) diff --git a/tests/Fraction.cpp b/tests/Fraction.cpp index a730593c2..85c68c5c5 100644 --- a/tests/Fraction.cpp +++ b/tests/Fraction.cpp @@ -28,8 +28,8 @@ TEST_CASE( "Constructors", "[libopenshot][fraction]" ) // Check default fraction CHECK(f1.num == 1); CHECK(f1.den == 1); - CHECK(f1.ToFloat() == Approx(1.0f).margin(0.00001)); - CHECK(f1.ToDouble() == Approx(1.0f).margin(0.00001)); + CHECK(f1.ToFloat() == Detail::Approx(1.0f).margin(0.00001)); + CHECK(f1.ToDouble() == Detail::Approx(1.0f).margin(0.00001)); // reduce fraction f1.Reduce(); @@ -37,8 +37,8 @@ TEST_CASE( "Constructors", "[libopenshot][fraction]" ) // Check the reduced fraction CHECK(f1.num == 1); CHECK(f1.den == 1); - CHECK(f1.ToFloat() == Approx(1.0f).margin(0.00001)); - CHECK(f1.ToDouble() == Approx(1.0f).margin(0.00001)); + CHECK(f1.ToFloat() == Detail::Approx(1.0f).margin(0.00001)); + CHECK(f1.ToDouble() == Detail::Approx(1.0f).margin(0.00001)); } TEST_CASE( "Alt_Constructors", "[libopenshot][fraction]" ) @@ -48,12 +48,12 @@ TEST_CASE( "Alt_Constructors", "[libopenshot][fraction]" ) Fraction f1(args); CHECK(f1.num == 24); CHECK(f1.den == 1); - CHECK(f1.ToFloat() == Approx(24.0f).margin(0.00001)); + CHECK(f1.ToFloat() == Detail::Approx(24.0f).margin(0.00001)); // Use the delegating constructor for std::vector std::vector v{30000, 1001}; Fraction f2(v); - CHECK(f2.ToFloat() == Approx(30000.0/1001.0).margin(0.00001)); + CHECK(f2.ToFloat() == Detail::Approx(30000.0/1001.0).margin(0.00001)); // Use the delegating constructor for std::map std::map dict; @@ -62,7 +62,7 @@ TEST_CASE( "Alt_Constructors", "[libopenshot][fraction]" ) Fraction f3(dict); CHECK(f3.den == 1001); CHECK(f3.num == 24000); - CHECK(f3.Reciprocal().ToFloat() == Approx(1001.0/24000.0).margin(0.00001)); + CHECK(f3.Reciprocal().ToFloat() == Detail::Approx(1001.0/24000.0).margin(0.00001)); } TEST_CASE( "WxH_640_480", "[libopenshot][fraction]" ) @@ -73,8 +73,8 @@ TEST_CASE( "WxH_640_480", "[libopenshot][fraction]" ) // Check fraction CHECK(f1.num == 640); CHECK(f1.den == 480); - CHECK(f1.ToFloat() == Approx(1.33333f).margin(0.00001)); - CHECK(f1.ToDouble() == Approx(1.33333f).margin(0.00001)); + CHECK(f1.ToFloat() == Detail::Approx(1.33333f).margin(0.00001)); + CHECK(f1.ToDouble() == Detail::Approx(1.33333f).margin(0.00001)); // reduce fraction f1.Reduce(); @@ -82,8 +82,8 @@ TEST_CASE( "WxH_640_480", "[libopenshot][fraction]" ) // Check the reduced fraction CHECK(f1.num == 4); CHECK(f1.den == 3); - CHECK(f1.ToFloat() == Approx(1.33333f).margin(0.00001)); - CHECK(f1.ToDouble() == Approx(1.33333f).margin(0.00001)); + CHECK(f1.ToFloat() == Detail::Approx(1.33333f).margin(0.00001)); + CHECK(f1.ToDouble() == Detail::Approx(1.33333f).margin(0.00001)); } TEST_CASE( "WxH_1280_720", "[libopenshot][fraction]" ) @@ -94,8 +94,8 @@ TEST_CASE( "WxH_1280_720", "[libopenshot][fraction]" ) // Check fraction CHECK(f1.num == 1280); CHECK(f1.den == 720); - CHECK(f1.ToFloat() == Approx(1.77777f).margin(0.00001)); - CHECK(f1.ToDouble() == Approx(1.77777f).margin(0.00001)); + CHECK(f1.ToFloat() == Detail::Approx(1.77777f).margin(0.00001)); + CHECK(f1.ToDouble() == Detail::Approx(1.77777f).margin(0.00001)); // reduce fraction f1.Reduce(); @@ -103,8 +103,8 @@ TEST_CASE( "WxH_1280_720", "[libopenshot][fraction]" ) // Check the reduced fraction CHECK(f1.num == 16); CHECK(f1.den == 9); - CHECK(f1.ToFloat() == Approx(1.77777f).margin(0.00001)); - CHECK(f1.ToDouble() == Approx(1.77777f).margin(0.00001)); + CHECK(f1.ToFloat() == Detail::Approx(1.77777f).margin(0.00001)); + CHECK(f1.ToDouble() == Detail::Approx(1.77777f).margin(0.00001)); } TEST_CASE( "Reciprocal", "[libopenshot][fraction]" ) @@ -115,8 +115,8 @@ TEST_CASE( "Reciprocal", "[libopenshot][fraction]" ) // Check fraction CHECK(f1.num == 1280); CHECK(f1.den == 720); - CHECK(f1.ToFloat() == Approx(1.77777f).margin(0.00001)); - CHECK(f1.ToDouble() == Approx(1.77777f).margin(0.00001)); + CHECK(f1.ToFloat() == Detail::Approx(1.77777f).margin(0.00001)); + CHECK(f1.ToDouble() == Detail::Approx(1.77777f).margin(0.00001)); // Get the reciprocal of the fraction (i.e. flip the fraction) Fraction f2 = f1.Reciprocal(); @@ -124,14 +124,14 @@ TEST_CASE( "Reciprocal", "[libopenshot][fraction]" ) // Check the reduced fraction CHECK(f2.num == 720); CHECK(f2.den == 1280); - CHECK(f2.ToFloat() == Approx(0.5625f).margin(0.00001)); - CHECK(f2.ToDouble() == Approx(0.5625f).margin(0.00001)); + CHECK(f2.ToFloat() == Detail::Approx(0.5625f).margin(0.00001)); + CHECK(f2.ToDouble() == Detail::Approx(0.5625f).margin(0.00001)); // Re-Check the original fraction (to be sure it hasn't changed) CHECK(f1.num == 1280); CHECK(f1.den == 720); - CHECK(f1.ToFloat() == Approx(1.77777f).margin(0.00001)); - CHECK(f1.ToDouble() == Approx(1.77777f).margin(0.00001)); + CHECK(f1.ToFloat() == Detail::Approx(1.77777f).margin(0.00001)); + CHECK(f1.ToDouble() == Detail::Approx(1.77777f).margin(0.00001)); } TEST_CASE( "Fraction operations", "[libopenshot][fraction]" ) { @@ -162,9 +162,9 @@ TEST_CASE( "Numeric multiplication", "[libopenshot][fraction]" ) CHECK_FALSE(f1 * num1 == f1.ToDouble() * num1); CHECK_FALSE(f1 * num1 == f1.ToInt() * num1); - CHECK(f1 * num2 == Approx(static_cast(f1.ToDouble() * num2)) + CHECK(f1 * num2 == Detail::Approx(static_cast(f1.ToDouble() * num2)) .margin(0.0001)); - CHECK(f1 * num3 == Approx(static_cast(f1.ToDouble() * num3)) + CHECK(f1 * num3 == Detail::Approx(static_cast(f1.ToDouble() * num3)) .margin(0.0001)); CHECK(f1 * num4 == static_cast(f1.ToDouble() * num4)); @@ -176,9 +176,9 @@ TEST_CASE( "Numeric multiplication", "[libopenshot][fraction]" ) CHECK_FALSE(num1 * f1 == num1 * f1.ToDouble()); CHECK_FALSE(num1 * f1 == num1 * f1.ToInt()); - CHECK(num2 * f1 == Approx(static_cast(f1.ToDouble() * num2)) + CHECK(num2 * f1 == Detail::Approx(static_cast(f1.ToDouble() * num2)) .margin(0.0001)); - CHECK(num3 * f1 == Approx(static_cast(f1.ToDouble() * num3)) + CHECK(num3 * f1 == Detail::Approx(static_cast(f1.ToDouble() * num3)) .margin(0.0001)); CHECK(num4 * f1 == static_cast(f1.ToDouble() * num4)); @@ -187,8 +187,8 @@ TEST_CASE( "Numeric multiplication", "[libopenshot][fraction]" ) // Transposition CHECK(num1 * f1 == f1 * num1); - CHECK(num2 * f1 == Approx(f1 * num2).margin(0.0001)); - CHECK(num3 * f1 == Approx(f1 * num3).margin(0.0001)); + CHECK(num2 * f1 == Detail::Approx(f1 * num2).margin(0.0001)); + CHECK(num3 * f1 == Detail::Approx(f1 * num3).margin(0.0001)); CHECK(num4 * f1 == f1 * num4); } @@ -204,31 +204,31 @@ TEST_CASE( "Numeric division", "[libopenshot][fraction]" ) // operator* with Fraction on LHS CHECK(f1 / num1 == static_cast(f1.ToDouble() / num1)); - CHECK(f1 / num2 == Approx(static_cast(f1.ToDouble() / num2)) + CHECK(f1 / num2 == Detail::Approx(static_cast(f1.ToDouble() / num2)) .margin(0.0001)); - CHECK(f1 / num3 == Approx(static_cast(f1.ToDouble() / num3)) + CHECK(f1 / num3 == Detail::Approx(static_cast(f1.ToDouble() / num3)) .margin(0.0001)); CHECK(f1 / num4 == static_cast(f1.ToDouble() / num4)); CHECK(f2 / num1 == static_cast(f2.ToDouble() / num1)); - CHECK(f2 / num2 == Approx(static_cast(f2.ToDouble() / num2)) + CHECK(f2 / num2 == Detail::Approx(static_cast(f2.ToDouble() / num2)) .margin(0.0001)); - CHECK(f2 / num3 == Approx(static_cast(f2.ToDouble() / num3)) + CHECK(f2 / num3 == Detail::Approx(static_cast(f2.ToDouble() / num3)) .margin(0.0001)); CHECK(f2 / num4 == static_cast(f2.ToDouble() / num4)); // operator* with Fraction on RHS CHECK(num1 / f1 == static_cast(num1 / f1.ToDouble())); - CHECK(num2 / f1 == Approx(static_cast(num2 / f1.ToDouble())) + CHECK(num2 / f1 == Detail::Approx(static_cast(num2 / f1.ToDouble())) .margin(0.0001)); - CHECK(num3 / f1 == Approx(static_cast(num3 / f1.ToDouble())) + CHECK(num3 / f1 == Detail::Approx(static_cast(num3 / f1.ToDouble())) .margin(0.0001)); CHECK(num4 / f1 == static_cast(num4 / f1.ToDouble())); CHECK(num1 / f2 == static_cast(num1 / f2.ToDouble())); - CHECK(num2 / f2 == Approx(static_cast(num2 / f2.ToDouble())) + CHECK(num2 / f2 == Detail::Approx(static_cast(num2 / f2.ToDouble())) .margin(0.0001)); - CHECK(num3 / f2 == Approx(static_cast(num3 / f2.ToDouble())) + CHECK(num3 / f2 == Detail::Approx(static_cast(num3 / f2.ToDouble())) .margin(0.0001)); CHECK(num4 / f2 == static_cast(num4 / f2.ToDouble())); } diff --git a/tests/FrameMapper.cpp b/tests/FrameMapper.cpp index 80a982ed1..ba8143a8a 100644 --- a/tests/FrameMapper.cpp +++ b/tests/FrameMapper.cpp @@ -195,9 +195,9 @@ TEST_CASE( "resample_audio_48000_to_41000", "[libopenshot][framemapper]" ) // Check details CHECK(map.GetFrame(1)->GetAudioChannelsCount() == 1); - CHECK(map.GetFrame(1)->GetAudioSamplesCount() == Approx(882).margin(10.0)); - CHECK(map.GetFrame(2)->GetAudioSamplesCount() == Approx(882).margin(10.0)); - CHECK(map.GetFrame(50)->GetAudioSamplesCount() == Approx(882).margin(10.0)); + CHECK(map.GetFrame(1)->GetAudioSamplesCount() == Detail::Approx(882).margin(10.0)); + CHECK(map.GetFrame(2)->GetAudioSamplesCount() == Detail::Approx(882).margin(10.0)); + CHECK(map.GetFrame(50)->GetAudioSamplesCount() == Detail::Approx(882).margin(10.0)); CHECK(map.info.video_length == 1299); // Close mapper @@ -277,7 +277,7 @@ TEST_CASE( "resample_audio_mapper", "[libopenshot][framemapper]" ) { float resampled_value = map.GetFrame(frame_index)->GetAudioSample(0, sample_index, 1.0); // TODO: 0.1 is much to broad to accurately test this, but without this, all the resampled values are too far away from expected - CHECK(resampled_value == Approx(sample_value).margin(0.1)); + CHECK(resampled_value == Detail::Approx(sample_value).margin(0.1)); } // Increment sample value num_samples += map.GetFrame(frame_index)->GetAudioSamplesCount(); @@ -330,7 +330,7 @@ TEST_CASE( "resample_audio_mapper", "[libopenshot][framemapper]" ) { // TODO: 0.1 is much to broad to accurately test this, but without this, all the resampled values are too far away from expected // Testing wave value X 2, since we have 2 overlapping clips - CHECK(resampled_value == Approx(sample_value * 2.0).margin(0.1)); + CHECK(resampled_value == Detail::Approx(sample_value * 2.0).margin(0.1)); } } @@ -552,7 +552,7 @@ TEST_CASE( "Distribute samples", "[libopenshot][framemapper]" ) { // Verify each mapped sample value is correct (after being redistributed by the FrameMapper) float mapped_value = map.GetFrame(frame_index)->GetAudioSample(0, sample_index, 1.0); - CHECK(predicted_value == Approx(mapped_value).margin(0.001)); + CHECK(predicted_value == Detail::Approx(mapped_value).margin(0.001)); } } @@ -585,7 +585,7 @@ TEST_CASE( "Distribute samples", "[libopenshot][framemapper]" ) { // Verify each mapped sample value is correct (after being redistributed by the FrameMapper) float timeline_value = t1.GetFrame(frame_index)->GetAudioSample(0, sample_index, 1.0); - CHECK(predicted_value == Approx(timeline_value).margin(0.001)); + CHECK(predicted_value == Detail::Approx(timeline_value).margin(0.001)); } } @@ -745,4 +745,4 @@ TEST_CASE( "SampleRange", "[libopenshot][framemapper]") CHECK(Samples.frame_end == 10); CHECK(Samples.sample_end == 1469); CHECK(Samples.total == total_samples); -} \ No newline at end of file +} diff --git a/tests/ImageWriter.cpp b/tests/ImageWriter.cpp index 5c7edc1e7..63c868563 100644 --- a/tests/ImageWriter.cpp +++ b/tests/ImageWriter.cpp @@ -111,9 +111,9 @@ TEST_CASE( "Gif", "[libopenshot][imagewriter]" ) int pixel_index = 230 * 4; // pixel 230 (4 bytes per pixel) // Check image properties - CHECK((int)pixels[pixel_index] == Approx(20).margin(5)); - CHECK((int)pixels[pixel_index + 1] == Approx(18).margin(5)); - CHECK((int)pixels[pixel_index + 2] == Approx(11).margin(5)); - CHECK((int)pixels[pixel_index + 3] == Approx(255).margin(5)); + CHECK((int)pixels[pixel_index] == Detail::Approx(20).margin(5)); + CHECK((int)pixels[pixel_index + 1] == Detail::Approx(18).margin(5)); + CHECK((int)pixels[pixel_index + 2] == Detail::Approx(11).margin(5)); + CHECK((int)pixels[pixel_index + 3] == Detail::Approx(255).margin(5)); } #endif // USE_IMAGEMAGICK diff --git a/tests/KeyFrame.cpp b/tests/KeyFrame.cpp index a7559103f..811fcdec4 100644 --- a/tests/KeyFrame.cpp +++ b/tests/KeyFrame.cpp @@ -47,8 +47,8 @@ TEST_CASE( "GetPoint (1 Point)", "[libopenshot][keyframe]" ) CHECK_THROWS_AS(k1.GetPoint(-1), OutOfBoundsPoint); CHECK(k1.GetCount() == 1); - CHECK(k1.GetPoint(0).co.X == Approx(2.0f).margin(0.00001)); - CHECK(k1.GetPoint(0).co.Y == Approx(3.0f).margin(0.00001)); + CHECK(k1.GetPoint(0).co.X == Detail::Approx(2.0f).margin(0.00001)); + CHECK(k1.GetPoint(0).co.Y == Detail::Approx(3.0f).margin(0.00001)); CHECK_THROWS_AS(k1.GetPoint(1), OutOfBoundsPoint); } @@ -59,7 +59,7 @@ TEST_CASE( "AddPoint (1 Point)", "[libopenshot][keyframe]" ) Keyframe k1; k1.AddPoint(openshot::Point(2,9)); - CHECK(k1.GetPoint(0).co.X == Approx(2.0f).margin(0.00001)); + CHECK(k1.GetPoint(0).co.X == Detail::Approx(2.0f).margin(0.00001)); CHECK_THROWS_AS(k1.GetPoint(-1), OutOfBoundsPoint); CHECK_THROWS_AS(k1.GetPoint(1), OutOfBoundsPoint); } @@ -71,8 +71,8 @@ TEST_CASE( "AddPoint (2 Points)", "[libopenshot][keyframe]" ) k1.AddPoint(openshot::Point(2,9)); k1.AddPoint(openshot::Point(5,20)); - CHECK(k1.GetPoint(0).co.X == Approx(2.0f).margin(0.00001)); - CHECK(k1.GetPoint(1).co.X == Approx(5.0f).margin(0.00001)); + CHECK(k1.GetPoint(0).co.X == Detail::Approx(2.0f).margin(0.00001)); + CHECK(k1.GetPoint(1).co.X == Detail::Approx(5.0f).margin(0.00001)); CHECK_THROWS_AS(k1.GetPoint(-1), OutOfBoundsPoint); CHECK_THROWS_AS(k1.GetPoint(2), OutOfBoundsPoint); } @@ -85,13 +85,13 @@ TEST_CASE( "GetValue (Bezier curve, 2 Points)", "[libopenshot][keyframe]" ) kf.AddPoint(openshot::Point(Coordinate(50, 4), BEZIER)); // Spot check values from the curve - CHECK(kf.GetValue(-1) == Approx(1.0f).margin(0.0001)); - CHECK(kf.GetValue(0) == Approx(1.0f).margin(0.0001)); - CHECK(kf.GetValue(1) == Approx(1.0f).margin(0.0001)); - CHECK(kf.GetValue(9) == Approx(1.12414f).margin(0.0001)); - CHECK(kf.GetValue(20) == Approx(1.86370f).margin(0.0001)); - CHECK(kf.GetValue(40) == Approx(3.79733f).margin(0.0001)); - CHECK(kf.GetValue(50) == Approx(4.0f).margin(0.0001)); + CHECK(kf.GetValue(-1) == Detail::Approx(1.0f).margin(0.0001)); + CHECK(kf.GetValue(0) == Detail::Approx(1.0f).margin(0.0001)); + CHECK(kf.GetValue(1) == Detail::Approx(1.0f).margin(0.0001)); + CHECK(kf.GetValue(9) == Detail::Approx(1.12414f).margin(0.0001)); + CHECK(kf.GetValue(20) == Detail::Approx(1.86370f).margin(0.0001)); + CHECK(kf.GetValue(40) == Detail::Approx(3.79733f).margin(0.0001)); + CHECK(kf.GetValue(50) == Detail::Approx(4.0f).margin(0.0001)); // Check the expected number of values CHECK(kf.GetLength() == 50); } @@ -107,14 +107,14 @@ TEST_CASE( "GetValue (Bezier, 5 Points, 40% handle)", "[libopenshot][keyframe]" kf.AddPoint(openshot::Point(Coordinate(200, 3), BEZIER)); // Spot check values from the curve - CHECK(1.0f == Approx(kf.GetValue(-1)).margin(0.0001)); - CHECK(kf.GetValue(0) == Approx(1.0f).margin(0.0001)); - CHECK(kf.GetValue(1) == Approx(1.0f).margin(0.0001)); - CHECK(kf.GetValue(27) == Approx(2.68197f).margin(0.0001)); - CHECK(kf.GetValue(77) == Approx(7.47719f).margin(0.0001)); - CHECK(kf.GetValue(127) == Approx(4.20468f).margin(0.0001)); - CHECK(kf.GetValue(177) == Approx(1.73860f).margin(0.0001)); - CHECK(kf.GetValue(200) == Approx(3.0f).margin(0.0001)); + CHECK(1.0f == Detail::Approx(kf.GetValue(-1)).margin(0.0001)); + CHECK(kf.GetValue(0) == Detail::Approx(1.0f).margin(0.0001)); + CHECK(kf.GetValue(1) == Detail::Approx(1.0f).margin(0.0001)); + CHECK(kf.GetValue(27) == Detail::Approx(2.68197f).margin(0.0001)); + CHECK(kf.GetValue(77) == Detail::Approx(7.47719f).margin(0.0001)); + CHECK(kf.GetValue(127) == Detail::Approx(4.20468f).margin(0.0001)); + CHECK(kf.GetValue(177) == Detail::Approx(1.73860f).margin(0.0001)); + CHECK(kf.GetValue(200) == Detail::Approx(3.0f).margin(0.0001)); // Check the expected number of values CHECK(kf.GetLength() == 200); } @@ -130,14 +130,14 @@ TEST_CASE( "GetValue (Bezier, 5 Points, 25% Handle)", "[libopenshot][keyframe]" kf.AddPoint(openshot::Point(Coordinate(200, 3), BEZIER)); // Spot check values from the curve - CHECK(kf.GetValue(-1) == Approx(1.0f).margin(0.0001)); - CHECK(kf.GetValue(0) == Approx(1.0f).margin(0.0001)); - CHECK(kf.GetValue(1) == Approx(1.0f).margin(0.0001)); - CHECK(kf.GetValue(27) == Approx(2.68197f).margin(0.0001)); - CHECK(kf.GetValue(77) == Approx(7.47719f).margin(0.0001)); - CHECK(kf.GetValue(127) == Approx(4.20468f).margin(0.0001)); - CHECK(kf.GetValue(177) == Approx(1.73860f).margin(0.0001)); - CHECK(kf.GetValue(200) == Approx(3.0f).margin(0.0001)); + CHECK(kf.GetValue(-1) == Detail::Approx(1.0f).margin(0.0001)); + CHECK(kf.GetValue(0) == Detail::Approx(1.0f).margin(0.0001)); + CHECK(kf.GetValue(1) == Detail::Approx(1.0f).margin(0.0001)); + CHECK(kf.GetValue(27) == Detail::Approx(2.68197f).margin(0.0001)); + CHECK(kf.GetValue(77) == Detail::Approx(7.47719f).margin(0.0001)); + CHECK(kf.GetValue(127) == Detail::Approx(4.20468f).margin(0.0001)); + CHECK(kf.GetValue(177) == Detail::Approx(1.73860f).margin(0.0001)); + CHECK(kf.GetValue(200) == Detail::Approx(3.0f).margin(0.0001)); // Check the expected number of values CHECK(kf.GetLength() == 200); } @@ -151,13 +151,13 @@ TEST_CASE( "GetValue (Linear, 3 Points)", "[libopenshot][keyframe]" ) kf.AddPoint(openshot::Point(Coordinate(50, 2), LINEAR)); // Spot check values from the curve - CHECK(kf.GetValue(-1) == Approx(1.0f).margin(0.0001)); - CHECK(kf.GetValue(0) == Approx(1.0f).margin(0.0001)); - CHECK(kf.GetValue(1) == Approx(1.0f).margin(0.0001)); - CHECK(kf.GetValue(9) == Approx(3.33333f).margin(0.0001)); - CHECK(kf.GetValue(20) == Approx(6.54167f).margin(0.0001)); - CHECK(kf.GetValue(40) == Approx(4.4f).margin(0.0001)); - CHECK(kf.GetValue(50) == Approx(2.0f).margin(0.0001)); + CHECK(kf.GetValue(-1) == Detail::Approx(1.0f).margin(0.0001)); + CHECK(kf.GetValue(0) == Detail::Approx(1.0f).margin(0.0001)); + CHECK(kf.GetValue(1) == Detail::Approx(1.0f).margin(0.0001)); + CHECK(kf.GetValue(9) == Detail::Approx(3.33333f).margin(0.0001)); + CHECK(kf.GetValue(20) == Detail::Approx(6.54167f).margin(0.0001)); + CHECK(kf.GetValue(40) == Detail::Approx(4.4f).margin(0.0001)); + CHECK(kf.GetValue(50) == Detail::Approx(2.0f).margin(0.0001)); // Check the expected number of values CHECK(kf.GetLength() == 50); } @@ -171,14 +171,14 @@ TEST_CASE( "GetValue (Constant, 3 Points)", "[libopenshot][keyframe]" ) kf.AddPoint(openshot::Point(Coordinate(50, 2), CONSTANT)); // Spot check values from the curve - CHECK(kf.GetValue(-1) == Approx(1.0f).margin(0.0001)); - CHECK(kf.GetValue(0) == Approx(1.0f).margin(0.0001)); - CHECK(kf.GetValue(1) == Approx(1.0f).margin(0.0001)); - CHECK(kf.GetValue(24) == Approx(1.0f).margin(0.0001)); - CHECK(kf.GetValue(25) == Approx(8.0f).margin(0.0001)); - CHECK(kf.GetValue(40) == Approx(8.0f).margin(0.0001)); - CHECK(kf.GetValue(49) == Approx(8.0f).margin(0.0001)); - CHECK(kf.GetValue(50) == Approx(2.0f).margin(0.0001)); + CHECK(kf.GetValue(-1) == Detail::Approx(1.0f).margin(0.0001)); + CHECK(kf.GetValue(0) == Detail::Approx(1.0f).margin(0.0001)); + CHECK(kf.GetValue(1) == Detail::Approx(1.0f).margin(0.0001)); + CHECK(kf.GetValue(24) == Detail::Approx(1.0f).margin(0.0001)); + CHECK(kf.GetValue(25) == Detail::Approx(8.0f).margin(0.0001)); + CHECK(kf.GetValue(40) == Detail::Approx(8.0f).margin(0.0001)); + CHECK(kf.GetValue(49) == Detail::Approx(8.0f).margin(0.0001)); + CHECK(kf.GetValue(50) == Detail::Approx(2.0f).margin(0.0001)); // Check the expected number of values CHECK(kf.GetLength() == 50); } @@ -198,15 +198,15 @@ TEST_CASE( "GetDelta", "[libopenshot][keyframe]" ) CHECK(kf.GetInt(24) == 498); CHECK_FALSE(kf.IsIncreasing(24)); - CHECK(kf.GetDelta(24) == Approx(-0.1622f).margin(0.0001)); + CHECK(kf.GetDelta(24) == Detail::Approx(-0.1622f).margin(0.0001)); CHECK(kf.GetLong(390) == 100); CHECK(kf.IsIncreasing(390) == false); - CHECK(kf.GetDelta(390) == Approx(-0.0732f).margin(0.0001)); + CHECK(kf.GetDelta(390) == Detail::Approx(-0.0732f).margin(0.0001)); CHECK(kf.GetLong(391) == 100); CHECK(kf.IsIncreasing(391) == false); - CHECK(kf.GetDelta(388) == Approx(-0.0886f).margin(0.0001)); + CHECK(kf.GetDelta(388) == Detail::Approx(-0.0886f).margin(0.0001)); } @@ -291,36 +291,36 @@ TEST_CASE( "Keyframe scaling", "[libopenshot][keyframe]" ) kf.AddPoint(openshot::Point(Coordinate(50, 2), BEZIER)); // Spot check values from the curve - CHECK(kf.GetValue(1) == Approx(1.0f).margin(0.01)); - CHECK(kf.GetValue(24) == Approx(7.99f).margin(0.01)); - CHECK(kf.GetValue(25) == Approx(8.0f).margin(0.01)); - CHECK(kf.GetValue(40) == Approx(3.85f).margin(0.01)); - CHECK(kf.GetValue(49) == Approx(2.01f).margin(0.01)); - CHECK(kf.GetValue(50) == Approx(2.0f).margin(0.01)); + CHECK(kf.GetValue(1) == Detail::Approx(1.0f).margin(0.01)); + CHECK(kf.GetValue(24) == Detail::Approx(7.99f).margin(0.01)); + CHECK(kf.GetValue(25) == Detail::Approx(8.0f).margin(0.01)); + CHECK(kf.GetValue(40) == Detail::Approx(3.85f).margin(0.01)); + CHECK(kf.GetValue(49) == Detail::Approx(2.01f).margin(0.01)); + CHECK(kf.GetValue(50) == Detail::Approx(2.0f).margin(0.01)); // Resize / Scale the keyframe kf.ScalePoints(2.0); // 100% larger // Spot check values from the curve - CHECK(kf.GetValue(1) == Approx(1.0f).margin(0.01)); - CHECK(kf.GetValue(24) == Approx(4.08f).margin(0.01)); - CHECK(kf.GetValue(25) == Approx(4.36f).margin(0.01)); - CHECK(kf.GetValue(40) == Approx(7.53f).margin(0.01)); - CHECK(kf.GetValue(49) == Approx(7.99f).margin(0.01)); - CHECK(kf.GetValue(50) == Approx(8.0f).margin(0.01)); - CHECK(kf.GetValue(90) == Approx(2.39f).margin(0.01)); - CHECK(kf.GetValue(100) == Approx(2.0f).margin(0.01)); + CHECK(kf.GetValue(1) == Detail::Approx(1.0f).margin(0.01)); + CHECK(kf.GetValue(24) == Detail::Approx(4.08f).margin(0.01)); + CHECK(kf.GetValue(25) == Detail::Approx(4.36f).margin(0.01)); + CHECK(kf.GetValue(40) == Detail::Approx(7.53f).margin(0.01)); + CHECK(kf.GetValue(49) == Detail::Approx(7.99f).margin(0.01)); + CHECK(kf.GetValue(50) == Detail::Approx(8.0f).margin(0.01)); + CHECK(kf.GetValue(90) == Detail::Approx(2.39f).margin(0.01)); + CHECK(kf.GetValue(100) == Detail::Approx(2.0f).margin(0.01)); // Resize / Scale the keyframe kf.ScalePoints(0.5); // 50% smaller, which should match the original size // Spot check values from the curve - CHECK(kf.GetValue(1) == Approx(1.0f).margin(0.01)); - CHECK(kf.GetValue(24) == Approx(7.99f).margin(0.01)); - CHECK(kf.GetValue(25) == Approx(8.0f).margin(0.01)); - CHECK(kf.GetValue(40) == Approx(3.85f).margin(0.01)); - CHECK(kf.GetValue(49) == Approx(2.01f).margin(0.01)); - CHECK(kf.GetValue(50) == Approx(2.0f).margin(0.01)); + CHECK(kf.GetValue(1) == Detail::Approx(1.0f).margin(0.01)); + CHECK(kf.GetValue(24) == Detail::Approx(7.99f).margin(0.01)); + CHECK(kf.GetValue(25) == Detail::Approx(8.0f).margin(0.01)); + CHECK(kf.GetValue(40) == Detail::Approx(3.85f).margin(0.01)); + CHECK(kf.GetValue(49) == Detail::Approx(2.01f).margin(0.01)); + CHECK(kf.GetValue(50) == Detail::Approx(2.0f).margin(0.01)); } @@ -334,28 +334,28 @@ TEST_CASE( "flip Keyframe", "[libopenshot][keyframe]" ) kf.AddPoint(openshot::Point(Coordinate(100, 10), LINEAR)); // Spot check values from the curve - CHECK(kf.GetValue(1) == Approx(1.0f).margin(0.01)); - CHECK(kf.GetValue(25) == Approx(8.0f).margin(0.01)); - CHECK(kf.GetValue(50) == Approx(2.0f).margin(0.01)); - CHECK(kf.GetValue(100) == Approx(10.0f).margin(0.01)); + CHECK(kf.GetValue(1) == Detail::Approx(1.0f).margin(0.01)); + CHECK(kf.GetValue(25) == Detail::Approx(8.0f).margin(0.01)); + CHECK(kf.GetValue(50) == Detail::Approx(2.0f).margin(0.01)); + CHECK(kf.GetValue(100) == Detail::Approx(10.0f).margin(0.01)); // Flip the points kf.FlipPoints(); // Spot check values from the curve - CHECK(kf.GetValue(1) == Approx(10.0f).margin(0.01)); - CHECK(kf.GetValue(25) == Approx(2.0f).margin(0.01)); - CHECK(kf.GetValue(50) == Approx(8.0f).margin(0.01)); - CHECK(kf.GetValue(100) == Approx(1.0f).margin(0.01)); + CHECK(kf.GetValue(1) == Detail::Approx(10.0f).margin(0.01)); + CHECK(kf.GetValue(25) == Detail::Approx(2.0f).margin(0.01)); + CHECK(kf.GetValue(50) == Detail::Approx(8.0f).margin(0.01)); + CHECK(kf.GetValue(100) == Detail::Approx(1.0f).margin(0.01)); // Flip the points again (back to the original) kf.FlipPoints(); // Spot check values from the curve - CHECK(kf.GetValue(1) == Approx(1.0f).margin(0.01)); - CHECK(kf.GetValue(25) == Approx(8.0f).margin(0.01)); - CHECK(kf.GetValue(50) == Approx(2.0f).margin(0.01)); - CHECK(kf.GetValue(100) == Approx(10.0f).margin(0.01)); + CHECK(kf.GetValue(1) == Detail::Approx(1.0f).margin(0.01)); + CHECK(kf.GetValue(25) == Detail::Approx(8.0f).margin(0.01)); + CHECK(kf.GetValue(50) == Detail::Approx(2.0f).margin(0.01)); + CHECK(kf.GetValue(100) == Detail::Approx(10.0f).margin(0.01)); } TEST_CASE( "remove duplicate Point", "[libopenshot][keyframe]" ) @@ -368,7 +368,7 @@ TEST_CASE( "remove duplicate Point", "[libopenshot][keyframe]" ) // Spot check values from the curve CHECK(kf.GetLength() == 1); - CHECK(kf.GetPoint(0).co.Y == Approx(2.0).margin(0.01)); + CHECK(kf.GetPoint(0).co.Y == Detail::Approx(2.0).margin(0.01)); } TEST_CASE( "large number values", "[libopenshot][keyframe]" ) @@ -383,8 +383,8 @@ TEST_CASE( "large number values", "[libopenshot][keyframe]" ) // Spot check values from the curve CHECK(kf.GetLength() == large_value); - CHECK(kf.GetPoint(0).co.Y == Approx(1.0).margin(0.01)); - CHECK(kf.GetPoint(1).co.Y == Approx(100.0).margin(0.01)); + CHECK(kf.GetPoint(0).co.Y == Detail::Approx(1.0).margin(0.01)); + CHECK(kf.GetPoint(1).co.Y == Detail::Approx(100.0).margin(0.01)); } TEST_CASE( "remove Point", "[libopenshot][keyframe]" ) @@ -467,7 +467,7 @@ TEST_CASE( "use segment end point interpolation", "[libopenshot][keyframe]" ) Keyframe f; f.AddPoint(1,0, CONSTANT); f.AddPoint(100,155, BEZIER); - CHECK(f.GetValue(50) == Approx(75.9).margin(0.1)); + CHECK(f.GetValue(50) == Detail::Approx(75.9).margin(0.1)); } TEST_CASE( "handle large segment", "[libopenshot][keyframe]" ) @@ -476,7 +476,7 @@ TEST_CASE( "handle large segment", "[libopenshot][keyframe]" ) kf.AddPoint(1, 0, CONSTANT); kf.AddPoint(1000000, 1, LINEAR); - CHECK(kf.GetValue(500000) == Approx(0.5).margin(0.01)); + CHECK(kf.GetValue(500000) == Detail::Approx(0.5).margin(0.01)); CHECK(kf.IsIncreasing(10) == true); } @@ -486,7 +486,7 @@ TEST_CASE( "std::vector constructor", "[libopenshot][keyframe]" ) Keyframe k1(points); CHECK(k1.GetLength() == 10); - CHECK(k1.GetValue(10) == Approx(30.0f).margin(0.0001)); + CHECK(k1.GetValue(10) == Detail::Approx(30.0f).margin(0.0001)); } TEST_CASE( "PrintPoints", "[libopenshot][keyframe]" ) diff --git a/tests/Point.cpp b/tests/Point.cpp index bd54fecf3..df1e357e9 100644 --- a/tests/Point.cpp +++ b/tests/Point.cpp @@ -50,8 +50,8 @@ TEST_CASE( "std::pair ctor", "[libopenshot][point]" ) std::pair coordinates(22, 5); openshot::Point p1(coordinates); - CHECK(p1.co.X == Approx(22.0f).margin(0.00001)); - CHECK(p1.co.Y == Approx(5.0f).margin(0.00001)); + CHECK(p1.co.X == Detail::Approx(22.0f).margin(0.00001)); + CHECK(p1.co.Y == Detail::Approx(5.0f).margin(0.00001)); } TEST_CASE( "Coordinate ctor", "[libopenshot][point]" ) @@ -60,8 +60,8 @@ TEST_CASE( "Coordinate ctor", "[libopenshot][point]" ) openshot::Coordinate c1(3,7); openshot::Point p1(c1); - CHECK(p1.co.X == Approx(3.0f).margin(0.00001)); - CHECK(p1.co.Y == Approx(7.0f).margin(0.00001)); + CHECK(p1.co.X == Detail::Approx(3.0f).margin(0.00001)); + CHECK(p1.co.Y == Detail::Approx(7.0f).margin(0.00001)); CHECK(p1.interpolation == openshot::InterpolationType::BEZIER); } diff --git a/tests/ReaderBase.cpp b/tests/ReaderBase.cpp index 506da9440..ad25be78b 100644 --- a/tests/ReaderBase.cpp +++ b/tests/ReaderBase.cpp @@ -69,7 +69,7 @@ TEST_CASE( "derived class", "[libopenshot][readerbase]" ) // Check some of the default values of the FileInfo struct on the base class CHECK_FALSE(t1.info.has_audio); CHECK_FALSE(t1.info.has_audio); - CHECK(t1.info.duration == Approx(0.0f).margin(0.00001)); + CHECK(t1.info.duration == Detail::Approx(0.0f).margin(0.00001)); CHECK(t1.info.height == 0); CHECK(t1.info.width == 0); CHECK(t1.info.fps.num == 1); diff --git a/tests/Timeline.cpp b/tests/Timeline.cpp index 9e68bd979..96587a1d0 100644 --- a/tests/Timeline.cpp +++ b/tests/Timeline.cpp @@ -139,7 +139,7 @@ TEST_CASE( "Framerate", "[libopenshot][timeline]" ) Timeline t1(640, 480, fps, 44100, 2, LAYOUT_STEREO); // Check values - CHECK(t1.info.fps.ToFloat() == Approx(24.0f).margin(0.00001)); + CHECK(t1.info.fps.ToFloat() == Detail::Approx(24.0f).margin(0.00001)); } TEST_CASE( "two-track video", "[libopenshot][timeline]" ) @@ -174,58 +174,58 @@ TEST_CASE( "two-track video", "[libopenshot][timeline]" ) int pixel_index = 230 * 4; // pixel 230 (4 bytes per pixel) // Check image properties - CHECK((int)f->GetPixels(pixel_row)[pixel_index] == Approx(21).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 1] == Approx(191).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 2] == Approx(0).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 3] == Approx(255).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index] == Detail::Approx(21).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 1] == Detail::Approx(191).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 2] == Detail::Approx(0).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 3] == Detail::Approx(255).margin(5)); f = t.GetFrame(2); // Check image properties - CHECK((int)f->GetPixels(pixel_row)[pixel_index] == Approx(176).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 1] == Approx(0).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 2] == Approx(186).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 3] == Approx(255).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index] == Detail::Approx(176).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 1] == Detail::Approx(0).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 2] == Detail::Approx(186).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 3] == Detail::Approx(255).margin(5)); f = t.GetFrame(3); // Check image properties - CHECK((int)f->GetPixels(pixel_row)[pixel_index] == Approx(23).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 1] == Approx(190).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 2] == Approx(0).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 3] == Approx(255).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index] == Detail::Approx(23).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 1] == Detail::Approx(190).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 2] == Detail::Approx(0).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 3] == Detail::Approx(255).margin(5)); f = t.GetFrame(24); // Check image properties - CHECK((int)f->GetPixels(pixel_row)[pixel_index] == Approx(176).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 1] == Approx(0).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 2] == Approx(186).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 3] == Approx(255).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index] == Detail::Approx(176).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 1] == Detail::Approx(0).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 2] == Detail::Approx(186).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 3] == Detail::Approx(255).margin(5)); f = t.GetFrame(5); // Check image properties - CHECK((int)f->GetPixels(pixel_row)[pixel_index] == Approx(23).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 1] == Approx(190).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 2] == Approx(0).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 3] == Approx(255).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index] == Detail::Approx(23).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 1] == Detail::Approx(190).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 2] == Detail::Approx(0).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 3] == Detail::Approx(255).margin(5)); f = t.GetFrame(25); // Check image properties - CHECK((int)f->GetPixels(pixel_row)[pixel_index] == Approx(20).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 1] == Approx(190).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 2] == Approx(0).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 3] == Approx(255).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index] == Detail::Approx(20).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 1] == Detail::Approx(190).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 2] == Detail::Approx(0).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 3] == Detail::Approx(255).margin(5)); f = t.GetFrame(4); // Check image properties - CHECK((int)f->GetPixels(pixel_row)[pixel_index] == Approx(176).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 1] == Approx(0).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 2] == Approx(186).margin(5)); - CHECK((int)f->GetPixels(pixel_row)[pixel_index + 3] == Approx(255).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index] == Detail::Approx(176).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 1] == Detail::Approx(0).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 2] == Detail::Approx(186).margin(5)); + CHECK((int)f->GetPixels(pixel_row)[pixel_index + 3] == Detail::Approx(255).margin(5)); t.Close(); } @@ -283,11 +283,11 @@ TEST_CASE( "Clip order", "[libopenshot][timeline]" ) break; case 1: CHECK(clip->Layer() == 1); - CHECK(clip->Position() == Approx(0.0).margin(0.0001)); + CHECK(clip->Position() == Detail::Approx(0.0).margin(0.0001)); break; case 2: CHECK(clip->Layer() == 1); - CHECK(clip->Position() == Approx(0.5).margin(0.0001)); + CHECK(clip->Position() == Detail::Approx(0.5).margin(0.0001)); break; case 3: CHECK(clip->Layer() == 2); @@ -407,25 +407,25 @@ TEST_CASE( "Effect order", "[libopenshot][timeline]" ) case 1: CHECK(effect->Layer() == 1); CHECK(effect->Id() == "B-1"); - CHECK(effect->Position() == Approx(0.0).margin(0.0001)); + CHECK(effect->Position() == Detail::Approx(0.0).margin(0.0001)); CHECK(effect->Order() == 3); break; case 2: CHECK(effect->Layer() == 1); CHECK(effect->Id() == "B"); - CHECK(effect->Position() == Approx(0.0).margin(0.0001)); + CHECK(effect->Position() == Detail::Approx(0.0).margin(0.0001)); CHECK(effect->Order() == 0); break; case 3: CHECK(effect->Layer() == 1); CHECK(effect->Id() == "B-2"); - CHECK(effect->Position() == Approx(0.5).margin(0.0001)); + CHECK(effect->Position() == Detail::Approx(0.5).margin(0.0001)); CHECK(effect->Order() == 2); break; case 4: CHECK(effect->Layer() == 1); CHECK(effect->Id() == "B-3"); - CHECK(effect->Position() == Approx(0.5).margin(0.0001)); + CHECK(effect->Position() == Detail::Approx(0.5).margin(0.0001)); CHECK(effect->Order() == 1); break; case 5: @@ -614,7 +614,7 @@ TEST_CASE( "GetMaxFrame and GetMaxTime", "[libopenshot][timeline]" ) clip1.End(45); t.AddClip(&clip1); - CHECK(t.GetMaxTime() == Approx(95.0).margin(0.001)); + CHECK(t.GetMaxTime() == Detail::Approx(95.0).margin(0.001)); CHECK(t.GetMaxFrame() == 95 * 30 + 1); Clip clip2(path1.str()); @@ -625,24 +625,24 @@ TEST_CASE( "GetMaxFrame and GetMaxTime", "[libopenshot][timeline]" ) t.AddClip(&clip2); CHECK(t.GetMaxFrame() == 95 * 30 + 1); - CHECK(t.GetMaxTime() == Approx(95.0).margin(0.001)); + CHECK(t.GetMaxTime() == Detail::Approx(95.0).margin(0.001)); clip1.Position(80); clip2.Position(100); CHECK(t.GetMaxFrame() == 155 * 30 + 1); - CHECK(t.GetMaxTime() == Approx(155.0).margin(0.001)); + CHECK(t.GetMaxTime() == Detail::Approx(155.0).margin(0.001)); clip2.Start(20); CHECK(t.GetMaxFrame() == 135 * 30 + 1); - CHECK(t.GetMaxTime() == Approx(135.0).margin(0.001)); + CHECK(t.GetMaxTime() == Detail::Approx(135.0).margin(0.001)); clip2.End(35); CHECK(t.GetMaxFrame() == 125 * 30 + 1); - CHECK(t.GetMaxTime() == Approx(125.0).margin(0.001)); + CHECK(t.GetMaxTime() == Detail::Approx(125.0).margin(0.001)); t.RemoveClip(&clip1); CHECK(t.GetMaxFrame() == 115 * 30 + 1); - CHECK(t.GetMaxTime() == Approx(115.0).margin(0.001)); + CHECK(t.GetMaxTime() == Detail::Approx(115.0).margin(0.001)); // Update Clip's basic properties with JSON Diff std::stringstream json_change1; @@ -650,7 +650,7 @@ TEST_CASE( "GetMaxFrame and GetMaxTime", "[libopenshot][timeline]" ) t.ApplyJsonDiff(json_change1.str()); CHECK(t.GetMaxFrame() == 10 * 30 + 1); - CHECK(t.GetMaxTime() == Approx(10.0).margin(0.001)); + CHECK(t.GetMaxTime() == Detail::Approx(10.0).margin(0.001)); // Insert NEW Clip with JSON Diff std::stringstream json_change2; @@ -658,7 +658,7 @@ TEST_CASE( "GetMaxFrame and GetMaxTime", "[libopenshot][timeline]" ) t.ApplyJsonDiff(json_change2.str()); CHECK(t.GetMaxFrame() == 20 * 30 + 1); - CHECK(t.GetMaxTime() == Approx(20.0).margin(0.001)); + CHECK(t.GetMaxTime() == Detail::Approx(20.0).margin(0.001)); } TEST_CASE( "Multi-threaded Timeline GetFrame", "[libopenshot][timeline]" ) @@ -828,7 +828,7 @@ TEST_CASE( "ApplyJSONDiff Update Reader Info", "[libopenshot][timeline]" ) CHECK(clip1.info.fps.den == 1); CHECK(clip1.info.video_timebase.num == 1); CHECK(clip1.info.video_timebase.den == 24); - CHECK(clip1.info.duration == Approx(51.94667).margin(0.00001)); + CHECK(clip1.info.duration == Detail::Approx(51.94667).margin(0.00001)); // Create JSON change to increase FPS from 24 to 60 Json::Value reader_root = openshot::stringToJson(reader_json); @@ -853,14 +853,14 @@ TEST_CASE( "ApplyJSONDiff Update Reader Info", "[libopenshot][timeline]" ) CHECK(mapper->Reader()->info.fps.den == 1); CHECK(mapper->Reader()->info.video_timebase.num == 1); CHECK(mapper->Reader()->info.video_timebase.den == 60); - CHECK(mapper->Reader()->info.duration == Approx(20.77867).margin(0.00001)); + CHECK(mapper->Reader()->info.duration == Detail::Approx(20.77867).margin(0.00001)); // Verify clip has updated properties and info struct CHECK(clip1.info.fps.num == 24); CHECK(clip1.info.fps.den == 1); CHECK(clip1.info.video_timebase.num == 1); CHECK(clip1.info.video_timebase.den == 24); - CHECK(clip1.info.duration == Approx(20.77867).margin(0.00001)); + CHECK(clip1.info.duration == Detail::Approx(20.77867).margin(0.00001)); // Open Clip object, and verify this does not clobber our 60 FPS change clip1.Open(); @@ -868,6 +868,6 @@ TEST_CASE( "ApplyJSONDiff Update Reader Info", "[libopenshot][timeline]" ) CHECK(mapper->Reader()->info.fps.den == 1); CHECK(mapper->Reader()->info.video_timebase.num == 1); CHECK(mapper->Reader()->info.video_timebase.den == 60); - CHECK(mapper->Reader()->info.duration == Approx(20.77867).margin(0.00001)); + CHECK(mapper->Reader()->info.duration == Detail::Approx(20.77867).margin(0.00001)); }