Design by Contract (DbC)

[]inline[]
[]float[] []square_root[][]([][]float[] []x[][])[]
[]PSTADE_PRECONDITION[][] ([]
[]assert[][]([][]x[][] >= [][]0[][]);[]
[] )[]
[]{[]

[]float[] []result[][] = [][]std[][]::[][]sqrt[][]([][]x[][]);[]

[]PSTADE_BLOCK_INVARIANT[][] ([]
[]assert[][](([][]result[][] * [][]result[][]) == [][]x[][]);[]
[] )[]

[]return[] []result[][];[]
[]}[]


[]struct[] []date[]
[]{[]
[]date[][]([][]int[] []day[][], [][]int[] []hour[][]) :[]
[]m_day[][]([][]day[][]), [][]m_hour[][]([][]hour[][])[]
[] {[]
[] }[]

[]void[] []set_day[][]([][]int[] []day[][])[]
[]PSTADE_PUBLIC_PRECONDITION[][] ([]
[]assert[][]([][]1[][] <= [][]day[][] && [][]day[][] <= [][]31[][]);[]
[] )[]
[] {[]
[]m_day[][] = [][]day[][];[]
[] }[]

[]private[][]:[]
[]PSTADE_INVARIANT[]
[] {[]
[]assert[][]([][]1[][] <= [][]m_day[][] && [][]m_day[][] <= [][]31[][]);[]
[]assert[][]([][]0[][] <= [][]m_hour[][] && [][]m_hour[][] < [][]24[][]);[]
[] }[]

[]int[] []m_day[][], [][]m_hour[][];[]
[]};[]