Squashed commit of the following:

commit 61516d7f6a3242ff2f544a346cd6ac58842ecdd6
Author: Tom Spilman <tom@sickheadgames.com>
Date:   Sat Mar 2 01:30:51 2013 -0600

    Moved everything into Tests subfolder.

commit 3cbdf67c4ac3c2951e7aeec5159a03c104e8e7b8
Merge: 786b371 50cab72
Author: Steve 'Sly' Williams <slygamer@gmail.com>
Date:   Thu Feb 28 21:43:36 2013 -0800

    Merge pull request #11 from SickheadGames/master

    Added RayTest.BoundingBoxIntersects() Test

commit 50cab727a190f88f74b4e0b5384daef5093db0e9
Author: Tom Spilman <tom@sickheadgames.com>
Date:   Wed Feb 27 12:46:16 2013 -0600

    Added RayTest.BoundingBoxIntersects().
    Added Ray and Bounding.cs to all test projects.

commit 786b371eb7744e4b70f6a7eb513ab2b4deb439dc
Merge: 7a47d59 92abcc9
Author: Steve 'Sly' Williams <slygamer@gmail.com>
Date:   Wed Feb 13 03:49:23 2013 -0800

    Merge pull request #10 from csulmone/master

    Boundingbox containment test

commit 92abcc96dd5947df9cadf3118cdb02af7ab074f7
Author: chris <chris@liquidmetalgames.com>
Date:   Sun Feb 10 20:14:52 2013 -0600

    Added boundingbox test.

commit 7a47d59919d29d93edaf6f78af1c9ae711cc2903
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Sun Mar 11 12:54:43 2012 -0500

    Adds licenses to Interactive classes

commit 2d5124edc23c3f5bfb203c545dc482e7675bff80
Merge: 68c4b87 05d2676
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Sun Mar 11 10:49:40 2012 -0700

    Merge pull request #9 from kungfubanana/interactive_tests

    Adds a framework for interactive tests (iOS only)

commit 05d26763987ad831af9743fcccd2da4da884ae1d
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Fri Mar 9 16:56:23 2012 -0600

    Adds a framework for interactive tests (iOS only)

    To add a new interactive test, subclass Microsoft.XNA.Framework.Game and
    decorate the subclass with [InteractiveTest].  Doing this will add your
    interactive test to the test launching GUI.  Be sure to provide a way to
    exit the game (a button, say) so users can continue running other tests
    when they've finished one.

    An extremely crude GUI framework for writing interactive tests has also
    been added.  It is somewhat verbose, at the moment, but still easier
    than doing it all by hand.

    Adds a test for the Guide class, and a crude test for the crude test GUI
    framework.

commit 68c4b8749db91f18452d1cf477334ae6ff326fe5
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Fri Mar 9 19:18:39 2012 -0600

    Adds a few forbidden path characters

commit b1c157bc950fa5a6db72603562b12f92b48a98ba
Merge: 3932f94 0b2d043
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Fri Mar 9 17:06:09 2012 -0800

    Merge pull request #8 from kungfubanana/spritebatch_matrix

    Adds Draw_with_matrix SpriteBatch test

commit 0b2d04376b79df16634927a032ce66f34ca4e485
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Fri Mar 9 18:40:52 2012 -0600

    Adds Draw_with_matrix SpriteBatch test

    Demonstrates SpriteBatch.Draw with several transformation matrices.

commit 3932f944f83dda317afecaf4d3e9b2390af0b4f9
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Thu Mar 8 20:08:21 2012 -0600

    Re-enables the spaceship and textured quad tests

    These were previously disabled due to compile incompatibilities with the
    develop branch.  The develop branch has been updated to include the
    needed stubs for compilation to succeed.

commit 66d0ba9549b92f72fcccc7dce1e3b617f2b1ae6a
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Thu Mar 8 17:31:15 2012 -0600

    Adds missing SpriteBatch test to Windows

commit a077e414b882ecbdb52e953c195b0964d0018890
Merge: 58e3599 e839fb8
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Thu Mar 8 15:22:55 2012 -0800

    Merge pull request #7 from kungfubanana/drastically_simple

    Drastic measures to simplify testing

commit e839fb8b85b52e6d297bd82f2894a0e9c77428d9
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Thu Mar 8 11:23:04 2012 -0600

    Drastic measures to simplify testing

    Creating components for tests is no longer the preffered way to create
    simple visual tests.  Instead, prefer Game.DrawWith, and the other *With
    events exposed by TestGameBase.  Follow that with a call to
    RunSingleFrameTest or RunMultiFrameTest.

    Captured image folders and filenames are now automatically generated in
    all cases.

    Reduced the size of some reference images (that picture of outer space,
    even when PNG compressed, was consuming quite a bit of space).

    Reorganized reference image names to be more natural:
    Clear/frame-01.png => Clear-1.png, for example.

    Improved tests.xsl with better handling of parameterized tests and
    generally better layout and display.

    Adds a few tests for GraphicsDevice.Viewport for issue #329

commit 58e35991b05b744f116104a591a6df4bc55c676b
Merge: 8fd6bd9 1441019
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Tue Mar 6 02:19:41 2012 -0800

    Merge pull request #6 from kungfubanana/ios_port

    Adds necessary functionality for iOS test running

commit 14410199e11721945e72c9995eef595c9823d701
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Fri Feb 3 21:07:02 2012 -0600

    Adds necessary functionality for iOS test running

    The dependency on Moq has been (temporarily?) removed.  It seems to be
    incompatible with the iOS simulator--probably the device, too.

    FramePixelData has been introduced as a way to abstract image data
    access, image saving and image loading.  MonoTouch does not implement
    System.Drawing.Imaging, so a platform-specific solution was needed.

    ConsoleInterface has been broken up significantly to better share
    functionality with MobileInterface.

    Upgraded to NUnit 2.6, which eliminates a dependency on
    System.Configuration, which MonoTouch does not implement.

commit 8fd6bd9c4475ec814b8edd9eebd811574ba416ec
Merge: 7a18cf1 c380bb1
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Thu Mar 1 04:30:00 2012 -0800

    Merge pull request #5 from espes/moretests

    Add a some various visual tests

commit c380bb1438515a2695fa8c3b23e2dcb93961a928
Author: espes <nielkie2@gmail.com>
Date:   Thu Mar 1 22:44:30 2012 +1100

    BasicVisualTest -> MiscVisualTest

commit 7a18cf17b758ec1752c690729a38bb16be963cf6
Merge: 0e9a2d2 8e7a57e
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Mon Feb 27 16:05:56 2012 -0800

    Merge pull request #4 from espes/master

    Simplify visual tests slightly

commit 93e6cd1c043d5ced5134edbe2b555005fefa37b3
Author: espes <nielkie2@gmail.com>
Date:   Wed Feb 15 21:53:38 2012 +1000

    Add spaceship model draw test

commit 8133e281b1d4158c224b3ed5cf78ce7ef94dc10e
Author: espes <nielkie2@gmail.com>
Date:   Wed Feb 15 18:52:41 2012 +1000

    Lower the standard similarity so tests pass :/

commit cb9dd06c72ad8417d141953d25e4f56878d6d3b0
Author: espes <nielkie2@gmail.com>
Date:   Wed Feb 15 18:51:31 2012 +1000

    Add TexturedQuad test, fix Colored3DCube test (to enable lighting we would have needed to specify normals), and add the reference images

commit 1e597103dddcdcc926173ae168a910429ed743e1
Author: espes <nielkie2@gmail.com>
Date:   Tue Feb 14 23:52:51 2012 +1000

    Add Colored3DCube visual test

commit 8e7a57ea0bd25d34f992da0d7d417e8069042f9b
Author: espes <nielkie2@gmail.com>
Date:   Tue Feb 14 23:19:10 2012 +1000

    Clean up indentation

commit c86d070e6a0b1b06ae083152aa8c4a7940152bfa
Merge: 8939dc3 0e9a2d2
Author: espes <nielkie2@gmail.com>
Date:   Tue Feb 14 23:09:35 2012 +1000

    Merge remote-tracking branch 'origin/master'

commit 8939dc3b04682e48f8d26c531f1c26c8db3c0bb2
Author: espes <nielkie2@gmail.com>
Date:   Tue Feb 14 23:09:06 2012 +1000

    Simplify visual tests

commit 0e9a2d2360ee4bbabeb52a70b538195a6a03648f
Merge: bb51fda 4e05d17
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Mon Feb 13 00:07:45 2012 -0800

    Merge pull request #3 from espes/master

    add Sprite Shader tests

commit 4e05d174a301ff1069842c17c950560b1745a02f
Author: espes <nielkie2@gmail.com>
Date:   Mon Feb 13 17:34:17 2012 +1000

    Add shader tests

commit bb51fda9aa04e316b3056912a343053574e6c394
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Wed Feb 8 15:57:47 2012 -0600

    Simplifies font testing, adds filtering to runner

    DrawString tests have been rearranged so that their output is in a
    single 'DrawString' directory, rather than separate directories for each
    test.

    CommandLineInterface now implements regular expression-based filtering
    of tests.  Use -i=/regex/ or -i=PlainText to include tests.  Use
    -x=/regex/ or -x=PlainText to exclude tests.  Multiple -i and -x flags
    may be chained together and are applied in order to constrict the set
    of tests that are run.

commit ba0465039ea4703c8779d14e1f3dab5835c07723
Author: Kenneth <kjpou@pt.lu>
Date:   Wed Feb 8 06:51:35 2012 +0100

    Adds new font tests

    Adds two new font tests.  One for a drawing issue with DataFont, another
    to test for correct handling of characters not contained in a particular
    spritefont.

commit 0697bc353d726e82cd0092ec2bf07cf7ca31a65a
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Wed Feb 8 00:17:45 2012 -0600

    Simplifies test asset management

    All test assets are now managed in a separate project, so that file
    management does not have to be repeated for each platform.  All the
    platform-specific projects simply reference the Assets project and get
    proper copying for free.

commit 55c7aa2502045385296173d4bec1edf6f432ca05
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Tue Feb 7 22:34:17 2012 -0600

    Updated README to reflect fixed Mac Synchronous run mode

commit 651418d181b466634e6d8c8666d6d89e6e86daeb
Merge: 434bc96 aeb00b5
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Mon Feb 6 18:24:04 2012 -0800

    Merge pull request #2 from kungfubanana/sample_test_reorg

    Ports interactive tests from Samples

commit aeb00b56194c58580c9aad7d3ab702d3ee2d4023
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Mon Feb 6 12:25:00 2012 -0600

    Ports interactive tests from Samples

    Moves Samples/Tests into Tests/Interactive.  Eventually these
    interactive tests should be made automatic where possible.  Where
    automation is not possible, we should still try to streamline the
    process of manually running and proofing them.

commit 434bc969c13250bf077df7ccbf0c283979dd6a04
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Mon Feb 6 00:54:38 2012 -0600

    Sets Linux tests to render in compatibility mode

    Uses LIBGL_ALWAYS_INDIRECT to force compatible rendering
    for the tests so they can be run from a VM.  This is not
    ideal, but for now it works.

commit 7d984b95bf055ea9ee74f2ee20718f0b5a29f628
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Fri Feb 3 20:57:24 2012 -0600

    Adds several SpriteFont rendering tests

commit f550241ea0a710abc906f3f4e952f2464a7e176c
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Tue Jan 31 21:54:11 2012 -0600

    Mac test runner runs in background mode

    The Mac test runner now runs in background mode by default.  Also,
    removed some test command line args that were accidentally checked in.
    I wasn't expecting MonoDevelop to write them to the .csproj.

commit e8b6e6348f9bc9801e59f28a38500a7b72ae5f6a
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Tue Jan 31 02:21:23 2012 -0600

    Adds 64x64 MonoGameIcon assets, instead of 128x128

    The Draw2D in the Samples project uses the 64x64 image, so the test does
    too now.  It's less scary, and it also happens to look nicer.

commit 39c4a01db84dbd1869a21b8f0dff56d7c7a7b708
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Mon Jan 30 11:44:32 2012 -0600

    Fixes Linux test assembly name

commit 88c9ac9eec6b3abcf69bce24fd359a89dbd0125f
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Mon Jan 30 10:14:44 2012 -0600

    Updates Linux project library references

commit d32131d571eda933e955991009633986c268ceb7
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Mon Jan 30 09:45:37 2012 -0600

    Adds test harness to Windows, updates test library references

commit eb89af8dfa2ea8119064ec7d4abef8a88a02b841
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Mon Jan 30 09:10:18 2012 -0600

    Adds command line options to test harness

    Adds several command line options to the Test harness to improve the
    test running experience (primarily for automation).  Run the harness
    with --help to see them.

    Moves the libraries needed by the test projects into the test
    repository.  They didn't really belong in ThirdParty/Libs and this means
    people who don't want to run tests never have to pay the penalty of
    downloading these libs.

commit 3871cf76ea5ad735008d7a120ede8783301c4e3a
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Sat Jan 28 02:12:18 2012 -0600

    Updates ImplicitDrawOrder reference images to XNA versions

commit b4d5a1578933af5080598d34c1f018683f491c31
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Fri Jan 27 23:48:51 2012 -0600

    Adds affordances, clarifies class names, reduces waste

    Adds UpdateGuard, which can be used to ensure that Update actions only
    occur once per Draw call.  VisualTestDrawableGameComponent and
    VisualTestGameComponent use this class and provide UpdateOncePerDraw to
    inheritors.

    Renamed VisualTestBase to VisualTestFixtureBase.

    Updates README.md.

commit 464e0e216a144f039882fbb9f544fc291fa8e46e
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Fri Jan 27 18:15:18 2012 -0600

    Renames IFrameSource to IFrameCaptureSource

commit 0af96ddd3c2c0aaa68eab9c860af6fde5ea761a9
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Fri Jan 27 17:32:08 2012 -0600

    The entire existing sets of automated tests for MG

    On Windows, the Tests solution contains a version of the tests which can
    be run against XNA as well as a version that can be run against
    MonoGame.  These are standard NUnit test assemblies, and should be run
    as normal with NUnit.

    For Mac and Linux, the state of NUnit is trickier.  Mono/MonoDevelop
    ship with quite an old version, so a custom runner is used.  So, rather
    than using NUnit or MonoDevelop's built-in runner, a custom runner is
    provided that executes the tests using the version of NUnit in
    ThirdParty/Libs.  After the tests have completed, the default browser is
    invoked to view the HTML version of the results.

    GameTest
    - Collects various tests that make assertions about the contract of the
      Game class in XNA vs the current contract in MonoGame.

    GameTest+Properties
    - Makes basic assertions about the Game class's properties.
    - Tests for default values, read-only or read-write status, availability
      during the lifetime of the Game, etc.

    GameTest+Methods
    - Makes basic assumptions about the Game class's methods.

    CommandLineInterface
    - Wraps the core logic for invoking NUnit into an opaque wrapper that
      can be easily invoked from different platforms.
    - Currently writes NUnit results in an abbreviated format to stdout, the
      standard NUnit xml format as test_results.xml, and an xsl-transformed
      test_results.html for easy viewing.

    Components/
    - A collection (to be extended) of reusable GameComponent and
      DrawableGameComponent implementations that make it easy to compose new
      tests quickly without having to write excessive boilerplate code.

    Visual/BasicVisualTests
    - Tests the most rudimentary functions of drawing (clearing the screen,
      rendering a bit of text, ordering draws)

    Visual/IntermediateVisualTests
    - Tests functionality like the Draw2D sample.  In fact, it is currently
      a port of that sample.

    Resources/
    - Houses the xsl used by CommandLineInterface, as well as sample data
      and a Makefile for easy development (well, easy on Mac, anyway).

    Assets/
    - Houses fonts, textures and other assets used in the creation of
      automated visual tests.
    - Also hold reference images that represent known-good renderings of the
      output of visual tests for comparison with the current rendering.

commit bceaa7b692344501b88977f1af84008ab643c54a
Author: Christopher Chambers <chris@peanutcode.com>
Date:   Fri Jan 27 17:10:40 2012 -0600

    Initial commit