diff --git a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt
index 3d0005c795..9a72381ae2 100644
--- a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt
+++ b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt
@@ -1297,7 +1297,6 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_gui_basics/layout/juce_Grid.h"
"../../../../../modules/juce_gui_basics/layout/juce_GridItem.cpp"
"../../../../../modules/juce_gui_basics/layout/juce_GridItem.h"
- "../../../../../modules/juce_gui_basics/layout/juce_GridUnitTests.cpp"
"../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp"
"../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"
"../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"
@@ -2895,7 +2894,6 @@ set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_Grid.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GridItem.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GridItem.h" PROPERTIES HEADER_FILE_ONLY TRUE)
-set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GridUnitTests.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
diff --git a/examples/DemoRunner/Builds/VisualStudio2013/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2013/DemoRunner_App.vcxproj
index ad819d251e..f09a05c1b9 100644
--- a/examples/DemoRunner/Builds/VisualStudio2013/DemoRunner_App.vcxproj
+++ b/examples/DemoRunner/Builds/VisualStudio2013/DemoRunner_App.vcxproj
@@ -1797,9 +1797,6 @@
true
-
- true
-
true
diff --git a/examples/DemoRunner/Builds/VisualStudio2013/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2013/DemoRunner_App.vcxproj.filters
index 7e707f7f70..74b17f7d1c 100644
--- a/examples/DemoRunner/Builds/VisualStudio2013/DemoRunner_App.vcxproj.filters
+++ b/examples/DemoRunner/Builds/VisualStudio2013/DemoRunner_App.vcxproj.filters
@@ -2275,9 +2275,6 @@
JUCE Modules\juce_gui_basics\layout
-
- JUCE Modules\juce_gui_basics\layout
-
JUCE Modules\juce_gui_basics\layout
diff --git a/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj
index 045188df39..c0764fff09 100644
--- a/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj
+++ b/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj
@@ -1797,9 +1797,6 @@
true
-
- true
-
true
diff --git a/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj.filters
index d56d3ebce6..50b0e60feb 100644
--- a/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj.filters
+++ b/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj.filters
@@ -2275,9 +2275,6 @@
JUCE Modules\juce_gui_basics\layout
-
- JUCE Modules\juce_gui_basics\layout
-
JUCE Modules\juce_gui_basics\layout
diff --git a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj
index 779b324e18..85fe14f833 100644
--- a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj
+++ b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj
@@ -1799,9 +1799,6 @@
true
-
- true
-
true
diff --git a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters
index deed83a32d..1f98fec3c4 100644
--- a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters
+++ b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters
@@ -2275,9 +2275,6 @@
JUCE Modules\juce_gui_basics\layout
-
- JUCE Modules\juce_gui_basics\layout
-
JUCE Modules\juce_gui_basics\layout
diff --git a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt
index 99d92958c1..ff7b3e1fc6 100644
--- a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt
+++ b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt
@@ -1067,7 +1067,6 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_gui_basics/layout/juce_Grid.h"
"../../../../../modules/juce_gui_basics/layout/juce_GridItem.cpp"
"../../../../../modules/juce_gui_basics/layout/juce_GridItem.h"
- "../../../../../modules/juce_gui_basics/layout/juce_GridUnitTests.cpp"
"../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp"
"../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"
"../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"
@@ -2352,7 +2351,6 @@ set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_Grid.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GridItem.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GridItem.h" PROPERTIES HEADER_FILE_ONLY TRUE)
-set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GridUnitTests.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj b/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj
index f0dbe4f361..d14da762c9 100644
--- a/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj
+++ b/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj
@@ -1507,9 +1507,6 @@
true
-
- true
-
true
diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj.filters b/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj.filters
index 557ea85669..501a0489f0 100644
--- a/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj.filters
+++ b/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj.filters
@@ -1828,9 +1828,6 @@
JUCE Modules\juce_gui_basics\layout
-
- JUCE Modules\juce_gui_basics\layout
-
JUCE Modules\juce_gui_basics\layout
diff --git a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt
index f170e3a238..a1009c3504 100644
--- a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt
+++ b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt
@@ -1099,7 +1099,6 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_gui_basics/layout/juce_Grid.h"
"../../../../../modules/juce_gui_basics/layout/juce_GridItem.cpp"
"../../../../../modules/juce_gui_basics/layout/juce_GridItem.h"
- "../../../../../modules/juce_gui_basics/layout/juce_GridUnitTests.cpp"
"../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp"
"../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"
"../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"
@@ -2457,7 +2456,6 @@ set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_Grid.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GridItem.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GridItem.h" PROPERTIES HEADER_FILE_ONLY TRUE)
-set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GridUnitTests.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2013/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2013/AudioPluginHost_App.vcxproj
index 341c261b17..c4643e2b85 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2013/AudioPluginHost_App.vcxproj
+++ b/extras/AudioPluginHost/Builds/VisualStudio2013/AudioPluginHost_App.vcxproj
@@ -1535,9 +1535,6 @@
true
-
- true
-
true
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2013/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2013/AudioPluginHost_App.vcxproj.filters
index 3b69472826..ee8a85c0cd 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2013/AudioPluginHost_App.vcxproj.filters
+++ b/extras/AudioPluginHost/Builds/VisualStudio2013/AudioPluginHost_App.vcxproj.filters
@@ -1909,9 +1909,6 @@
JUCE Modules\juce_gui_basics\layout
-
- JUCE Modules\juce_gui_basics\layout
-
JUCE Modules\juce_gui_basics\layout
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj
index c9de32b756..8ab5efea9b 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj
+++ b/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj
@@ -1533,9 +1533,6 @@
true
-
- true
-
true
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj.filters
index 36fa4e01c8..a1f11ea344 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj.filters
+++ b/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj.filters
@@ -1909,9 +1909,6 @@
JUCE Modules\juce_gui_basics\layout
-
- JUCE Modules\juce_gui_basics\layout
-
JUCE Modules\juce_gui_basics\layout
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj
index d08e0d7699..3e62f02831 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj
+++ b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj
@@ -1535,9 +1535,6 @@
true
-
- true
-
true
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters
index 71f3db5c6c..430a4d3277 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters
+++ b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters
@@ -1909,9 +1909,6 @@
JUCE Modules\juce_gui_basics\layout
-
- JUCE Modules\juce_gui_basics\layout
-
JUCE Modules\juce_gui_basics\layout
diff --git a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt
index 2ca53bb364..2cb1612e3c 100644
--- a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt
+++ b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt
@@ -1086,7 +1086,6 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_gui_basics/layout/juce_Grid.h"
"../../../../../modules/juce_gui_basics/layout/juce_GridItem.cpp"
"../../../../../modules/juce_gui_basics/layout/juce_GridItem.h"
- "../../../../../modules/juce_gui_basics/layout/juce_GridUnitTests.cpp"
"../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp"
"../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"
"../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"
@@ -2446,7 +2445,6 @@ set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_Grid.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GridItem.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GridItem.h" PROPERTIES HEADER_FILE_ONLY TRUE)
-set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GridUnitTests.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2013/NetworkGraphicsDemo_App.vcxproj b/extras/NetworkGraphicsDemo/Builds/VisualStudio2013/NetworkGraphicsDemo_App.vcxproj
index 01845483cb..1e77927825 100644
--- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2013/NetworkGraphicsDemo_App.vcxproj
+++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2013/NetworkGraphicsDemo_App.vcxproj
@@ -1528,9 +1528,6 @@
true
-
- true
-
true
diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2013/NetworkGraphicsDemo_App.vcxproj.filters b/extras/NetworkGraphicsDemo/Builds/VisualStudio2013/NetworkGraphicsDemo_App.vcxproj.filters
index a915a7d028..be21413ff8 100644
--- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2013/NetworkGraphicsDemo_App.vcxproj.filters
+++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2013/NetworkGraphicsDemo_App.vcxproj.filters
@@ -1882,9 +1882,6 @@
JUCE Modules\juce_gui_basics\layout
-
- JUCE Modules\juce_gui_basics\layout
-
JUCE Modules\juce_gui_basics\layout
diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2017/NetworkGraphicsDemo_App.vcxproj b/extras/NetworkGraphicsDemo/Builds/VisualStudio2017/NetworkGraphicsDemo_App.vcxproj
index ee7e5b09d8..c1a1084a71 100644
--- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2017/NetworkGraphicsDemo_App.vcxproj
+++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2017/NetworkGraphicsDemo_App.vcxproj
@@ -1528,9 +1528,6 @@
true
-
- true
-
true
diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2017/NetworkGraphicsDemo_App.vcxproj.filters b/extras/NetworkGraphicsDemo/Builds/VisualStudio2017/NetworkGraphicsDemo_App.vcxproj.filters
index 64ab694519..12ea04c8fd 100644
--- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2017/NetworkGraphicsDemo_App.vcxproj.filters
+++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2017/NetworkGraphicsDemo_App.vcxproj.filters
@@ -1882,9 +1882,6 @@
JUCE Modules\juce_gui_basics\layout
-
- JUCE Modules\juce_gui_basics\layout
-
JUCE Modules\juce_gui_basics\layout
diff --git a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj
index e5f32aee61..6af0077cbf 100644
--- a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj
@@ -1114,9 +1114,6 @@
true
-
- true
-
true
diff --git a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters
index 18c185f1e8..8f1d5d4812 100644
--- a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters
@@ -1435,9 +1435,6 @@
JUCE Modules\juce_gui_basics\layout
-
- JUCE Modules\juce_gui_basics\layout
-
JUCE Modules\juce_gui_basics\layout
diff --git a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj
index f35e8107ea..f597cd5680 100644
--- a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj
@@ -1114,9 +1114,6 @@
true
-
- true
-
true
diff --git a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters
index a9ef4daf3c..170508a605 100644
--- a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters
@@ -1435,9 +1435,6 @@
JUCE Modules\juce_gui_basics\layout
-
- JUCE Modules\juce_gui_basics\layout
-
JUCE Modules\juce_gui_basics\layout
diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj
index 0b5bce19f6..46e3a41cea 100644
--- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj
@@ -1116,9 +1116,6 @@
true
-
- true
-
true
diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters
index f71a483e45..7c5b1aaeee 100644
--- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters
@@ -1435,9 +1435,6 @@
JUCE Modules\juce_gui_basics\layout
-
- JUCE Modules\juce_gui_basics\layout
-
JUCE Modules\juce_gui_basics\layout
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj
index 146b188c5d..60b56d9ed8 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj
+++ b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj
@@ -1655,9 +1655,6 @@
true
-
- true
-
true
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters
index d21136ed3d..8b259f3349 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters
+++ b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters
@@ -2083,9 +2083,6 @@
JUCE Modules\juce_gui_basics\layout
-
- JUCE Modules\juce_gui_basics\layout
-
JUCE Modules\juce_gui_basics\layout
diff --git a/extras/WindowsDLL/Builds/VisualStudio2017/WindowsDLL_StaticLibrary.vcxproj b/extras/WindowsDLL/Builds/VisualStudio2017/WindowsDLL_StaticLibrary.vcxproj
index 4f2bf0e17a..5dfcb7e5cd 100644
--- a/extras/WindowsDLL/Builds/VisualStudio2017/WindowsDLL_StaticLibrary.vcxproj
+++ b/extras/WindowsDLL/Builds/VisualStudio2017/WindowsDLL_StaticLibrary.vcxproj
@@ -1527,9 +1527,6 @@
true
-
- true
-
true
diff --git a/extras/WindowsDLL/Builds/VisualStudio2017/WindowsDLL_StaticLibrary.vcxproj.filters b/extras/WindowsDLL/Builds/VisualStudio2017/WindowsDLL_StaticLibrary.vcxproj.filters
index 546aded874..83781847ba 100644
--- a/extras/WindowsDLL/Builds/VisualStudio2017/WindowsDLL_StaticLibrary.vcxproj.filters
+++ b/extras/WindowsDLL/Builds/VisualStudio2017/WindowsDLL_StaticLibrary.vcxproj.filters
@@ -1879,9 +1879,6 @@
JUCE Modules\juce_gui_basics\layout
-
- JUCE Modules\juce_gui_basics\layout
-
JUCE Modules\juce_gui_basics\layout
diff --git a/modules/juce_gui_basics/juce_gui_basics.cpp b/modules/juce_gui_basics/juce_gui_basics.cpp
index 1c8077a44e..35b88c59f9 100644
--- a/modules/juce_gui_basics/juce_gui_basics.cpp
+++ b/modules/juce_gui_basics/juce_gui_basics.cpp
@@ -270,9 +270,6 @@ namespace juce
#if JUCE_HAS_CONSTEXPR
#include "layout/juce_GridItem.cpp"
#include "layout/juce_Grid.cpp"
- #if JUCE_UNIT_TESTS
- #include "layout/juce_GridUnitTests.cpp"
- #endif
#endif
#if JUCE_IOS || JUCE_WINDOWS
diff --git a/modules/juce_gui_basics/layout/juce_Grid.cpp b/modules/juce_gui_basics/layout/juce_Grid.cpp
index 1f48625399..faf8196a0d 100644
--- a/modules/juce_gui_basics/layout/juce_Grid.cpp
+++ b/modules/juce_gui_basics/layout/juce_Grid.cpp
@@ -1026,4 +1026,240 @@ void Grid::performLayout (juce::Rectangle targetArea)
}
}
+//==============================================================================
+#if JUCE_UNIT_TESTS
+
+struct GridTests : public UnitTest
+{
+ GridTests() : UnitTest ("Grid", "GUI") {}
+
+ void runTest() override
+ {
+ using Fr = Grid::Fr;
+ using Tr = Grid::TrackInfo;
+ using Rect = Rectangle;
+
+ {
+ Grid grid;
+
+ grid.templateColumns.add (Tr (1_fr));
+ grid.templateRows.addArray ({ Tr (20_px), Tr (1_fr) });
+
+ grid.items.addArray ({ GridItem().withArea (1, 1),
+ GridItem().withArea (2, 1) });
+
+ grid.performLayout (Rectangle (200, 400));
+
+ beginTest ("Layout calculation test: 1 column x 2 rows: no gap");
+ expect (grid.items[0].currentBounds == Rect (0.0f, 0.0f, 200.f, 20.0f));
+ expect (grid.items[1].currentBounds == Rect (0.0f, 20.0f, 200.f, 380.0f));
+
+ grid.templateColumns.add (Tr (50_px));
+ grid.templateRows.add (Tr (2_fr));
+
+ grid.items.addArray ( { GridItem().withArea (1, 2),
+ GridItem().withArea (2, 2),
+ GridItem().withArea (3, 1),
+ GridItem().withArea (3, 2) });
+
+ grid.performLayout (Rectangle (150, 170));
+
+ beginTest ("Layout calculation test: 2 columns x 3 rows: no gap");
+ expect (grid.items[0].currentBounds == Rect (0.0f, 0.0f, 100.0f, 20.0f));
+ expect (grid.items[1].currentBounds == Rect (0.0f, 20.0f, 100.0f, 50.0f));
+ expect (grid.items[2].currentBounds == Rect (100.0f, 0.0f, 50.0f, 20.0f));
+ expect (grid.items[3].currentBounds == Rect (100.0f, 20.0f, 50.0f, 50.0f));
+ expect (grid.items[4].currentBounds == Rect (0.0f, 70.0f, 100.0f, 100.0f));
+ expect (grid.items[5].currentBounds == Rect (100.0f, 70.0f, 50.0f, 100.0f));
+
+ grid.columnGap = 20_px;
+ grid.rowGap = 10_px;
+
+ grid.performLayout (Rectangle (200, 310));
+
+ beginTest ("Layout calculation test: 2 columns x 3 rows: rowGap of 10 and columnGap of 20");
+ expect (grid.items[0].currentBounds == Rect (0.0f, 0.0f, 130.0f, 20.0f));
+ expect (grid.items[1].currentBounds == Rect (0.0f, 30.0f, 130.0f, 90.0f));
+ expect (grid.items[2].currentBounds == Rect (150.0f, 0.0f, 50.0f, 20.0f));
+ expect (grid.items[3].currentBounds == Rect (150.0f, 30.0f, 50.0f, 90.0f));
+ expect (grid.items[4].currentBounds == Rect (0.0f, 130.0f, 130.0f, 180.0f));
+ expect (grid.items[5].currentBounds == Rect (150.0f, 130.0f, 50.0f, 180.0f));
+ }
+
+ {
+ Grid grid;
+
+ grid.templateColumns.addArray ({ Tr ("first", 20_px, "in"), Tr ("in", 1_fr, "in"), Tr (20_px, "last") });
+ grid.templateRows.addArray ({ Tr (1_fr),
+ Tr (20_px)});
+
+ {
+ beginTest ("Grid items placement tests: integer and custom ident, counting forward");
+
+ GridItem i1, i2, i3, i4, i5;
+ i1.column = { 1, 4 };
+ i1.row = { 1, 2 };
+
+ i2.column = { 1, 3 };
+ i2.row = { 1, 3 };
+
+ i3.column = { "first", "in" };
+ i3.row = { 2, 3 };
+
+ i4.column = { "first", { 2, "in" } };
+ i4.row = { 1, 2 };
+
+ i5.column = { "first", "last" };
+ i5.row = { 1, 2 };
+
+ grid.items.addArray ({ i1, i2, i3, i4, i5 });
+
+ grid.performLayout ({ 140, 100 });
+
+ expect (grid.items[0].currentBounds == Rect (0.0f, 0.0f, 140.0f, 80.0f));
+ expect (grid.items[1].currentBounds == Rect (0.0f, 0.0f, 120.0f, 100.0f));
+ expect (grid.items[2].currentBounds == Rect (0.0f, 80.0f, 20.0f, 20.0f));
+ expect (grid.items[3].currentBounds == Rect (0.0f, 0.0f, 120.0f, 80.0f));
+ expect (grid.items[4].currentBounds == Rect (0.0f, 0.0f, 140.0f, 80.0f));
+ }
+ }
+
+ {
+ Grid grid;
+
+ grid.templateColumns.addArray ({ Tr ("first", 20_px, "in"), Tr ("in", 1_fr, "in"), Tr (20_px, "last") });
+ grid.templateRows.addArray ({ Tr (1_fr),
+ Tr (20_px)});
+
+ beginTest ("Grid items placement tests: integer and custom ident, counting forward, reversed end and start");
+
+ GridItem i1, i2, i3, i4, i5;
+ i1.column = { 4, 1 };
+ i1.row = { 2, 1 };
+
+ i2.column = { 3, 1 };
+ i2.row = { 3, 1 };
+
+ i3.column = { "in", "first" };
+ i3.row = { 3, 2 };
+
+ i4.column = { "first", { 2, "in" } };
+ i4.row = { 1, 2 };
+
+ i5.column = { "last", "first" };
+ i5.row = { 1, 2 };
+
+ grid.items.addArray ({ i1, i2, i3, i4, i5 });
+
+ grid.performLayout ({ 140, 100 });
+
+ expect (grid.items[0].currentBounds == Rect (0.0f, 0.0f, 140.0f, 80.0f));
+ expect (grid.items[1].currentBounds == Rect (0.0f, 0.0f, 120.0f, 100.0f));
+ expect (grid.items[2].currentBounds == Rect (0.0f, 80.0f, 20.0f, 20.0f));
+ expect (grid.items[3].currentBounds == Rect (0.0f, 0.0f, 120.0f, 80.0f));
+ expect (grid.items[4].currentBounds == Rect (0.0f, 0.0f, 140.0f, 80.0f));
+ }
+
+ {
+ beginTest ("Grid items placement tests: areas");
+
+ Grid grid;
+
+ grid.templateColumns = { Tr (50_px), Tr (100_px), Tr (Fr (1_fr)), Tr (50_px) };
+ grid.templateRows = { Tr (50_px),
+ Tr (1_fr),
+ Tr (50_px) };
+
+ grid.templateAreas = { "header header header header",
+ "main main . sidebar",
+ "footer footer footer footer" };
+
+ grid.items.addArray ({ GridItem().withArea ("header"),
+ GridItem().withArea ("main"),
+ GridItem().withArea ("sidebar"),
+ GridItem().withArea ("footer"),
+ });
+
+ grid.performLayout ({ 300, 150 });
+
+ expect (grid.items[0].currentBounds == Rect (0.f, 0.f, 300.f, 50.f));
+ expect (grid.items[1].currentBounds == Rect (0.f, 50.f, 150.f, 50.f));
+ expect (grid.items[2].currentBounds == Rect (250.f, 50.f, 50.f, 50.f));
+ expect (grid.items[3].currentBounds == Rect (0.f, 100.f, 300.f, 50.f));
+ }
+
+ {
+ beginTest ("Grid implicit rows and columns: triggered by areas");
+
+ Grid grid;
+
+ grid.templateColumns = { Tr (50_px), Tr (100_px), Tr (1_fr), Tr (50_px) };
+ grid.templateRows = { Tr (50_px),
+ Tr (1_fr),
+ Tr (50_px) };
+
+ grid.autoRows = Tr (30_px);
+ grid.autoColumns = Tr (30_px);
+
+ grid.templateAreas = { "header header header header header",
+ "main main . sidebar sidebar",
+ "footer footer footer footer footer",
+ "sub sub sub sub sub"};
+
+ grid.items.addArray ({ GridItem().withArea ("header"),
+ GridItem().withArea ("main"),
+ GridItem().withArea ("sidebar"),
+ GridItem().withArea ("footer"),
+ GridItem().withArea ("sub"),
+ });
+
+ grid.performLayout ({ 330, 180 });
+
+ expect (grid.items[0].currentBounds == Rect (0.f, 0.f, 330.f, 50.f));
+ expect (grid.items[1].currentBounds == Rect (0.f, 50.f, 150.f, 50.f));
+ expect (grid.items[2].currentBounds == Rect (250.f, 50.f, 80.f, 50.f));
+ expect (grid.items[3].currentBounds == Rect (0.f, 100.f, 330.f, 50.f));
+ expect (grid.items[4].currentBounds == Rect (0.f, 150.f, 330.f, 30.f));
+ }
+
+ {
+ beginTest ("Grid implicit rows and columns: triggered by areas");
+
+ Grid grid;
+
+ grid.templateColumns = { Tr (50_px), Tr (100_px), Tr (1_fr), Tr (50_px) };
+ grid.templateRows = { Tr (50_px),
+ Tr (1_fr),
+ Tr (50_px) };
+
+ grid.autoRows = Tr (1_fr);
+ grid.autoColumns = Tr (1_fr);
+
+ grid.templateAreas = { "header header header header",
+ "main main . sidebar",
+ "footer footer footer footer" };
+
+ grid.items.addArray ({ GridItem().withArea ("header"),
+ GridItem().withArea ("main"),
+ GridItem().withArea ("sidebar"),
+ GridItem().withArea ("footer"),
+ GridItem().withArea (4, 5, 6, 7)
+ });
+
+ grid.performLayout ({ 350, 250 });
+
+ expect (grid.items[0].currentBounds == Rect (0.f, 0.f, 250.f, 50.f));
+ expect (grid.items[1].currentBounds == Rect (0.f, 50.f, 150.f, 50.f));
+ expect (grid.items[2].currentBounds == Rect (200.f, 50.f, 50.f, 50.f));
+ expect (grid.items[3].currentBounds == Rect (0.f, 100.f, 250.f, 50.f));
+ expect (grid.items[4].currentBounds == Rect (250.f, 150.f, 100.f, 100.f));
+ }
+
+ }
+};
+
+static GridTests gridUnitTests;
+
+#endif // JUCE_UNIT_TESTS
+
} // namespace juce
diff --git a/modules/juce_gui_basics/layout/juce_GridUnitTests.cpp b/modules/juce_gui_basics/layout/juce_GridUnitTests.cpp
deleted file mode 100644
index f005e17cbd..0000000000
--- a/modules/juce_gui_basics/layout/juce_GridUnitTests.cpp
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- ==============================================================================
-
- This file is part of the JUCE library.
- Copyright (c) 2017 - ROLI Ltd.
-
- JUCE is an open source library subject to commercial or open-source
- licensing.
-
- By using JUCE, you agree to the terms of both the JUCE 5 End-User License
- Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
- 27th April 2017).
-
- End User License Agreement: www.juce.com/juce-5-licence
- Privacy Policy: www.juce.com/juce-5-privacy-policy
-
- Or: You may also use this code under the terms of the GPL v3 (see
- www.gnu.org/licenses).
-
- JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
- EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
- DISCLAIMED.
-
- ==============================================================================
-*/
-
-namespace juce
-{
-
-struct GridTests : public UnitTest
-{
- GridTests() : UnitTest ("Grid class") {}
-
- void runTest() override
- {
- using Fr = Grid::Fr;
- using Tr = Grid::TrackInfo;
- using Rect = Rectangle;
-
- {
- Grid grid;
-
- grid.templateColumns.add (Tr (1_fr));
- grid.templateRows.addArray ({ Tr (20_px), Tr (1_fr) });
-
- grid.items.addArray ({ GridItem().withArea (1, 1),
- GridItem().withArea (2, 1) });
-
- grid.performLayout (Rectangle (200, 400));
-
- beginTest ("Layout calculation test: 1 column x 2 rows: no gap");
- expect (grid.items[0].currentBounds == Rect (0.0f, 0.0f, 200.f, 20.0f));
- expect (grid.items[1].currentBounds == Rect (0.0f, 20.0f, 200.f, 380.0f));
-
- grid.templateColumns.add (Tr (50_px));
- grid.templateRows.add (Tr (2_fr));
-
- grid.items.addArray ( { GridItem().withArea (1, 2),
- GridItem().withArea (2, 2),
- GridItem().withArea (3, 1),
- GridItem().withArea (3, 2) });
-
- grid.performLayout (Rectangle (150, 170));
-
- beginTest ("Layout calculation test: 2 columns x 3 rows: no gap");
- expect (grid.items[0].currentBounds == Rect (0.0f, 0.0f, 100.0f, 20.0f));
- expect (grid.items[1].currentBounds == Rect (0.0f, 20.0f, 100.0f, 50.0f));
- expect (grid.items[2].currentBounds == Rect (100.0f, 0.0f, 50.0f, 20.0f));
- expect (grid.items[3].currentBounds == Rect (100.0f, 20.0f, 50.0f, 50.0f));
- expect (grid.items[4].currentBounds == Rect (0.0f, 70.0f, 100.0f, 100.0f));
- expect (grid.items[5].currentBounds == Rect (100.0f, 70.0f, 50.0f, 100.0f));
-
- grid.columnGap = 20_px;
- grid.rowGap = 10_px;
-
- grid.performLayout (Rectangle (200, 310));
-
- beginTest ("Layout calculation test: 2 columns x 3 rows: rowGap of 10 and columnGap of 20");
- expect (grid.items[0].currentBounds == Rect (0.0f, 0.0f, 130.0f, 20.0f));
- expect (grid.items[1].currentBounds == Rect (0.0f, 30.0f, 130.0f, 90.0f));
- expect (grid.items[2].currentBounds == Rect (150.0f, 0.0f, 50.0f, 20.0f));
- expect (grid.items[3].currentBounds == Rect (150.0f, 30.0f, 50.0f, 90.0f));
- expect (grid.items[4].currentBounds == Rect (0.0f, 130.0f, 130.0f, 180.0f));
- expect (grid.items[5].currentBounds == Rect (150.0f, 130.0f, 50.0f, 180.0f));
- }
-
- {
- Grid grid;
-
- grid.templateColumns.addArray ({ Tr ("first", 20_px, "in"), Tr ("in", 1_fr, "in"), Tr (20_px, "last") });
- grid.templateRows.addArray ({ Tr (1_fr),
- Tr (20_px)});
-
- {
- beginTest ("Grid items placement tests: integer and custom ident, counting forward");
-
- GridItem i1, i2, i3, i4, i5;
- i1.column = { 1, 4 };
- i1.row = { 1, 2 };
-
- i2.column = { 1, 3 };
- i2.row = { 1, 3 };
-
- i3.column = { "first", "in" };
- i3.row = { 2, 3 };
-
- i4.column = { "first", { 2, "in" } };
- i4.row = { 1, 2 };
-
- i5.column = { "first", "last" };
- i5.row = { 1, 2 };
-
- grid.items.addArray ({ i1, i2, i3, i4, i5 });
-
- grid.performLayout ({ 140, 100 });
-
- expect (grid.items[0].currentBounds == Rect (0.0f, 0.0f, 140.0f, 80.0f));
- expect (grid.items[1].currentBounds == Rect (0.0f, 0.0f, 120.0f, 100.0f));
- expect (grid.items[2].currentBounds == Rect (0.0f, 80.0f, 20.0f, 20.0f));
- expect (grid.items[3].currentBounds == Rect (0.0f, 0.0f, 120.0f, 80.0f));
- expect (grid.items[4].currentBounds == Rect (0.0f, 0.0f, 140.0f, 80.0f));
- }
- }
-
- {
- Grid grid;
-
- grid.templateColumns.addArray ({ Tr ("first", 20_px, "in"), Tr ("in", 1_fr, "in"), Tr (20_px, "last") });
- grid.templateRows.addArray ({ Tr (1_fr),
- Tr (20_px)});
-
- beginTest ("Grid items placement tests: integer and custom ident, counting forward, reversed end and start");
-
- GridItem i1, i2, i3, i4, i5;
- i1.column = { 4, 1 };
- i1.row = { 2, 1 };
-
- i2.column = { 3, 1 };
- i2.row = { 3, 1 };
-
- i3.column = { "in", "first" };
- i3.row = { 3, 2 };
-
- i4.column = { "first", { 2, "in" } };
- i4.row = { 1, 2 };
-
- i5.column = { "last", "first" };
- i5.row = { 1, 2 };
-
- grid.items.addArray ({ i1, i2, i3, i4, i5 });
-
- grid.performLayout ({ 140, 100 });
-
- expect (grid.items[0].currentBounds == Rect (0.0f, 0.0f, 140.0f, 80.0f));
- expect (grid.items[1].currentBounds == Rect (0.0f, 0.0f, 120.0f, 100.0f));
- expect (grid.items[2].currentBounds == Rect (0.0f, 80.0f, 20.0f, 20.0f));
- expect (grid.items[3].currentBounds == Rect (0.0f, 0.0f, 120.0f, 80.0f));
- expect (grid.items[4].currentBounds == Rect (0.0f, 0.0f, 140.0f, 80.0f));
- }
-
- {
- beginTest ("Grid items placement tests: areas");
-
- Grid grid;
-
- grid.templateColumns = { Tr (50_px), Tr (100_px), Tr (Fr (1_fr)), Tr (50_px) };
- grid.templateRows = { Tr (50_px),
- Tr (1_fr),
- Tr (50_px) };
-
- grid.templateAreas = { "header header header header",
- "main main . sidebar",
- "footer footer footer footer" };
-
- grid.items.addArray ({ GridItem().withArea ("header"),
- GridItem().withArea ("main"),
- GridItem().withArea ("sidebar"),
- GridItem().withArea ("footer"),
- });
-
- grid.performLayout ({ 300, 150 });
-
- expect (grid.items[0].currentBounds == Rect (0.f, 0.f, 300.f, 50.f));
- expect (grid.items[1].currentBounds == Rect (0.f, 50.f, 150.f, 50.f));
- expect (grid.items[2].currentBounds == Rect (250.f, 50.f, 50.f, 50.f));
- expect (grid.items[3].currentBounds == Rect (0.f, 100.f, 300.f, 50.f));
- }
-
- {
- beginTest ("Grid implicit rows and columns: triggered by areas");
-
- Grid grid;
-
- grid.templateColumns = { Tr (50_px), Tr (100_px), Tr (1_fr), Tr (50_px) };
- grid.templateRows = { Tr (50_px),
- Tr (1_fr),
- Tr (50_px) };
-
- grid.autoRows = Tr (30_px);
- grid.autoColumns = Tr (30_px);
-
- grid.templateAreas = { "header header header header header",
- "main main . sidebar sidebar",
- "footer footer footer footer footer",
- "sub sub sub sub sub"};
-
- grid.items.addArray ({ GridItem().withArea ("header"),
- GridItem().withArea ("main"),
- GridItem().withArea ("sidebar"),
- GridItem().withArea ("footer"),
- GridItem().withArea ("sub"),
- });
-
- grid.performLayout ({ 330, 180 });
-
- expect (grid.items[0].currentBounds == Rect (0.f, 0.f, 330.f, 50.f));
- expect (grid.items[1].currentBounds == Rect (0.f, 50.f, 150.f, 50.f));
- expect (grid.items[2].currentBounds == Rect (250.f, 50.f, 80.f, 50.f));
- expect (grid.items[3].currentBounds == Rect (0.f, 100.f, 330.f, 50.f));
- expect (grid.items[4].currentBounds == Rect (0.f, 150.f, 330.f, 30.f));
- }
-
- {
- beginTest ("Grid implicit rows and columns: triggered by areas");
-
- Grid grid;
-
- grid.templateColumns = { Tr (50_px), Tr (100_px), Tr (1_fr), Tr (50_px) };
- grid.templateRows = { Tr (50_px),
- Tr (1_fr),
- Tr (50_px) };
-
- grid.autoRows = Tr (1_fr);
- grid.autoColumns = Tr (1_fr);
-
- grid.templateAreas = { "header header header header",
- "main main . sidebar",
- "footer footer footer footer" };
-
- grid.items.addArray ({ GridItem().withArea ("header"),
- GridItem().withArea ("main"),
- GridItem().withArea ("sidebar"),
- GridItem().withArea ("footer"),
- GridItem().withArea (4, 5, 6, 7)
- });
-
- grid.performLayout ({ 350, 250 });
-
- expect (grid.items[0].currentBounds == Rect (0.f, 0.f, 250.f, 50.f));
- expect (grid.items[1].currentBounds == Rect (0.f, 50.f, 150.f, 50.f));
- expect (grid.items[2].currentBounds == Rect (200.f, 50.f, 50.f, 50.f));
- expect (grid.items[3].currentBounds == Rect (0.f, 100.f, 250.f, 50.f));
- expect (grid.items[4].currentBounds == Rect (250.f, 150.f, 100.f, 100.f));
- }
-
- }
-};
-
-static GridTests gridUnitTests;
-
-} // namespace juce