diff --git a/src/nature/insects.jl b/src/nature/insects.jl
index a513dd8801a24bc4f14ab06cea0833b037a1628a..c0fd291b6ab1c10f0421751bef6d31d5f080506e 100644
--- a/src/nature/insects.jl
+++ b/src/nature/insects.jl
@@ -43,7 +43,7 @@ function insectbiomass(pixel::Pixel, model::AgentBasedModel)::Float64
     weatherfactor = 1.0
     pesticidefactor = 1.0
 
-    ## parabolic curve of seasonal development,
+    ## parabolic curve of seasonal development (peaking on the 6th of July),
     ## based on fig. 3a in Paquette et al. (2013)
     if "season" in @param(nature.insectmodel)
         calendarday = dayofyear(model.date)
diff --git a/test/nature_tests.jl b/test/nature_tests.jl
index 33260d9079a9df323dbb3ed5283b57b87944ecac..7495004731dab9a5838facceaddd29d112ff3b9c 100644
--- a/test/nature_tests.jl
+++ b/test/nature_tests.jl
@@ -137,10 +137,38 @@ end
     @test @rand([true, true])
 end
 
-
 @testset "Insect submodel" begin
+    # create a set of pixels and dates for testing
     model = smalltestlandscape()
-
-    #TODO create a set of pixels and check if their calculated biomass
-    # meets the expected values
+    date1 = Date("2023-05-08") # day 128 (season begin)
+    date2 = Date("2023-07-06") # day 187 (insect max)
+    date3 = Date("2023-09-27") # day 270 (season end)
+    p1 = Pixel(Ps.agriculture, 1, [])
+    p2 = Pixel(Ps.agriculture, 1, [Ps.pesticide])
+    p3 = Pixel(Ps.grass, 1, [])
+    p4 = Pixel(Ps.soil, 1, [Ps.fertiliser, Ps.pesticide])
+    p5 = Pixel(Ps.forest, 1, [])
+    p6 = Pixel(Ps.water, 1, [])
+    # check whether the model calculates the same numbers I did by hand
+    model.date = date1
+    @test Ps.insectbiomass(p1, model) ≈ 4.11 atol=0.01
+    @test Ps.insectbiomass(p2, model) == 0.0
+    @test Ps.insectbiomass(p3, model) ≈ 154.11 atol=0.01
+    @test Ps.insectbiomass(p4, model) ≈ 4.11 atol=0.01
+    @test Ps.insectbiomass(p5, model) ≈ 304.11 atol=0.01
+    @test Ps.insectbiomass(p6, model) == 0.0
+    model.date = date2
+    @test Ps.insectbiomass(p1, model) == 300.0
+    @test Ps.insectbiomass(p2, model) == 150.0
+    @test Ps.insectbiomass(p3, model) == 450.0
+    @test Ps.insectbiomass(p4, model) == 300.0
+    @test Ps.insectbiomass(p5, model) == 600.0
+    @test Ps.insectbiomass(p6, model) == 0.0
+    model.date = date3
+    @test Ps.insectbiomass(p1, model) == 0.0
+    @test Ps.insectbiomass(p2, model) == 0.0
+    @test Ps.insectbiomass(p3, model) == 0.0
+    @test Ps.insectbiomass(p4, model) == 0.0
+    @test Ps.insectbiomass(p5, model) ≈ 14.43 atol=0.01
+    @test Ps.insectbiomass(p6, model) == 0.0
 end
diff --git a/test/test_parameters.toml b/test/test_parameters.toml
index f4cc679068ae61e9bfe67621a2d21b80d5b63cd0..53792a90a6c9e61beadfddd64746745c6bf31c1d 100644
--- a/test/test_parameters.toml
+++ b/test/test_parameters.toml
@@ -27,6 +27,7 @@ farmmodel = "FieldManager" # which version of the farm model to use (not yet imp
 targetspecies = ["Wolpertinger", "Wyvern"] # list of target species to simulate
 popoutfreq = "daily" # output frequency population-level data, daily/monthly/yearly/end/never
 indoutfreq = "end" # output frequency individual-level data, daily/monthly/yearly/end/never
+insectmodel = ["season", "habitat", "pesticides"] # which factors affect insect growth ("weather" is not yet implemented)
 	
 [crop]
 cropmodel = "linear" # crop growth model to use, "linear" or "aquacrop" (not yet implemented)