TDD

Lab 3 Test Driven Development

Aims The aim of this lab is to introduce the process of test driven development (TDD) and develop some simple tests, we will use the following steps. Project Setup Test Setup Test Driven Design of a Simple RGBA class using Version control Storing Pixels It is common to store image pixel data using a single unsigned int32_t data type. In C/C++ this is quite simple, however in python these things are a little harder as we don’t have the same data types. For our example we are going to use a single integer value called pixel to store our RGBA values but we will need to encode them using some logic.

Lab 3 An Image Class

Aims The aim of this lab is to continue our exploration of TDD in C++ by developing an Image Class Using GitHub Developing a Simple Image Class Writing Images with OpenImageIO Some simple Image Algorithms. Getting Started We are going to use GitHub for this work and I have sent you a link to create the repository in advance.

Lab 3 An Image Class

Aims The aim of this lab is to continue our exploration of TDD in C++ by developing an Image Class Configure GitHub for labs. Developing a Simple Image Class Writing Images with OpenImageIO Some simple Image Algorithms. Getting Started We are now going to create a new labs folder based on our GitHub classroom (you would have been sent an invite).

Lab 3 Test Driven Development

Aims The aim of this lab is to introduce pytest and the process of Test Driven Development, we will do this in the following way. Use uv to set up a pytest Python environment. Write unit tests with pytest. Incrementally build a Vec3 class (3D vector math) following TDD. Getting started We place all our code in a simple project folder with the tests and the class we wish to test. In this case we are building a simple example, typically we would generate a python module or package as we will see in later lectures.

Lab 4 Diffusion Limited Aggregation

Aims The aim of this lab is to continue our exploration of TDD in C++ by developing a simulation of diffusion limited aggregation Introduction to DLA simulations Understand C++ 11 Random number classes #include Creating Image Sequences Using Command Line Arguments Introduction to DLA Diffusion-limited aggregation (DLA) is the process whereby particles undergoing a random walk due to Brownian motion cluster together to form aggregates of such particles. This theory, proposed by T.A. Witten Jr. and L.M. Sander in 1981,[1] is applicable to aggregation in any system where diffusion is the primary means of transport in the system. DLA can be observed in many systems such as electrodeposition, Hele-Shaw flow, mineral deposits, and dielectric breakdown.

Lab 4 Diffusion Limited Aggregation

Aims The aim of this lab is to continue our exploration of TDD in C++ by developing a simulation of diffusion limited aggregation Introduction to DLA simulations Understand C++ 11 Random number classes #include Creating Image Sequences Using Command Line Arguments Introduction to DLA Diffusion-limited aggregation (DLA) is the process whereby particles undergoing a random walk due to Brownian motion cluster together to form aggregates of such particles. This theory, proposed by T.A. Witten Jr. and L.M. Sander in 1981,[1] is applicable to aggregation in any system where diffusion is the primary means of transport in the system. DLA can be observed in many systems such as electrodeposition, Hele-Shaw flow, mineral deposits, and dielectric breakdown.

Lab 4 An Image Class

Aims The aim of this lab is to continue our exploration of TDD in python by developing an Image Class Configure GitHub for labs. Developing a Simple Image Class Understand and Use python packages and uv Develop some simple Image algorithms. Getting Started We are now going to create a new labs folder based on our GitHub classroom (you would have been sent an invite). First we are going to enable GitHub over ssh via this method

Lab 5 Test Driven Development

Aims The aim of this lab is to introduce the process of test driven development (TDD) and develop some simple tests, we will use the following steps. Project Setup Version Control Setup Test Setup Test Driven Design of a Simple RGBA class Storing Pixels It is common to store image pixel data using a single unsigned int32_t data type. In C/C++ this is quite simple, however in python these things are a little harder as we don’t have the same data types. For our example we are going to use a single integer value called pixel to store our RGBA values but we will need to encode them using some logic.

Lab 5 Introduction to Particle Systems

Aims The aim of this lab is to develop a simple particle system and write data to various file formats. We will then visualize the data using 3rd party tools

Lab 5 Introduction to Particle Systems

Aims The aim of this lab is to develop a simple particle system and write data to various file formats. We will then visualize the data using 3rd party tools