X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FTests%2FCube.hs;h=46b2530ab82053fae93fcf68de6e839ed8cf6304;hb=b36cb982a689fa31b1d0c4e3e9994f36cc4b26b2;hp=6d0f864439fca067fd9bf90555c048ebd97b8d14;hpb=ecb77f944fcba8c8cfe60ca782bc5d9c8ab68cf9;p=spline3.git diff --git a/src/Tests/Cube.hs b/src/Tests/Cube.hs index 6d0f864..46b2530 100644 --- a/src/Tests/Cube.hs +++ b/src/Tests/Cube.hs @@ -16,231 +16,23 @@ import Tetrahedron (b0, b1, b2, b3, c, fv, -- Quickcheck tests. --- | Since the grid size is necessarily positive, all tetrahedrons +-- | Since the grid size is necessarily positive, all tetrahedra -- (which comprise cubes of positive volume) must have positive volume -- as well. prop_all_volumes_positive :: Cube -> Bool prop_all_volumes_positive cube = null nonpositive_volumes where - ts = tetrahedrons cube + ts = tetrahedra cube volumes = map volume ts nonpositive_volumes = filter (<= 0) volumes -- | In fact, since all of the tetrahedra are identical, we should -- already know their volumes. There's 24 tetrahedra to a cube, so -- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron0_volumes_exact :: Cube -> Bool -prop_tetrahedron0_volumes_exact cube = - volume (tetrahedron0 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron1_volumes_exact :: Cube -> Bool -prop_tetrahedron1_volumes_exact cube = - volume (tetrahedron1 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron2_volumes_exact :: Cube -> Bool -prop_tetrahedron2_volumes_exact cube = - volume (tetrahedron2 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron3_volumes_exact :: Cube -> Bool -prop_tetrahedron3_volumes_exact cube = - volume (tetrahedron3 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron4_volumes_exact :: Cube -> Bool -prop_tetrahedron4_volumes_exact cube = - volume (tetrahedron4 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron5_volumes_exact :: Cube -> Bool -prop_tetrahedron5_volumes_exact cube = - volume (tetrahedron5 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron6_volumes_exact :: Cube -> Bool -prop_tetrahedron6_volumes_exact cube = - volume (tetrahedron6 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron7_volumes_exact :: Cube -> Bool -prop_tetrahedron7_volumes_exact cube = - volume (tetrahedron7 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron8_volumes_exact :: Cube -> Bool -prop_tetrahedron8_volumes_exact cube = - volume (tetrahedron8 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron9_volumes_exact :: Cube -> Bool -prop_tetrahedron9_volumes_exact cube = - volume (tetrahedron9 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron10_volumes_exact :: Cube -> Bool -prop_tetrahedron10_volumes_exact cube = - volume (tetrahedron10 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron11_volumes_exact :: Cube -> Bool -prop_tetrahedron11_volumes_exact cube = - volume (tetrahedron11 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron12_volumes_exact :: Cube -> Bool -prop_tetrahedron12_volumes_exact cube = - volume (tetrahedron12 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron13_volumes_exact :: Cube -> Bool -prop_tetrahedron13_volumes_exact cube = - volume (tetrahedron13 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron14_volumes_exact :: Cube -> Bool -prop_tetrahedron14_volumes_exact cube = - volume (tetrahedron14 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron15_volumes_exact :: Cube -> Bool -prop_tetrahedron15_volumes_exact cube = - volume (tetrahedron15 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron16_volumes_exact :: Cube -> Bool -prop_tetrahedron16_volumes_exact cube = - volume (tetrahedron16 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron17_volumes_exact :: Cube -> Bool -prop_tetrahedron17_volumes_exact cube = - volume (tetrahedron17 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron18_volumes_exact :: Cube -> Bool -prop_tetrahedron18_volumes_exact cube = - volume (tetrahedron18 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron19_volumes_exact :: Cube -> Bool -prop_tetrahedron19_volumes_exact cube = - volume (tetrahedron19 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron20_volumes_exact :: Cube -> Bool -prop_tetrahedron20_volumes_exact cube = - volume (tetrahedron20 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron21_volumes_exact :: Cube -> Bool -prop_tetrahedron21_volumes_exact cube = - volume (tetrahedron21 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron22_volumes_exact :: Cube -> Bool -prop_tetrahedron22_volumes_exact cube = - volume (tetrahedron22 cube) ~~= (1/24)*(delta^(3::Int)) - where - delta = h cube - --- | In fact, since all of the tetrahedra are identical, we should --- already know their volumes. There's 24 tetrahedra to a cube, so --- we'd expect the volume of each one to be (1/24)*h^3. -prop_tetrahedron23_volumes_exact :: Cube -> Bool -prop_tetrahedron23_volumes_exact cube = - volume (tetrahedron23 cube) ~~= (1/24)*(delta^(3::Int)) +prop_all_volumes_exact :: Cube -> Bool +prop_all_volumes_exact cube = + and [volume t ~~= (1/24)*(delta^(3::Int)) | t <- tetrahedra cube] where delta = h cube @@ -248,8 +40,8 @@ prop_tetrahedron23_volumes_exact cube = prop_v0_all_equal :: Cube -> Bool prop_v0_all_equal cube = (v0 t0) == (v0 t1) where - t0 = head (tetrahedrons cube) -- Doesn't matter which two we choose. - t1 = head $ tail (tetrahedrons cube) + t0 = head (tetrahedra cube) -- Doesn't matter which two we choose. + t1 = head $ tail (tetrahedra cube) -- | This pretty much repeats the prop_all_volumes_positive property,