## 要件定義書

### 足し算モジュール

#### 機能概要
2つの数値を足し算する関数、数値のリストの合計を計算する関数、複数の数値を足し算する関数を提供する。

#### 関数仕様
1. `add(a, b)`
   - 機能: 2つの数値を足し算する
   - 引数:
     - `a (int or float)`: 1つ目の数値
     - `b (int or float)`: 2つ目の数値
   - 返り値: `int or float`: aとbの和

2. `add_list(numbers)`
   - 機能: 数値のリストの合計を計算する
   - 引数:
     - `numbers (list)`: 数値のリスト
   - 返り値: `int or float`: numbersの合計値

3. `add_multiple(*args)`
   - 機能: 複数の数値を足し算する
   - 引数:
     - `*args`: 可変長引数。任意の数の数値を受け取る
   - 返り値: `int or float`: 引数として渡された数値の合計

#### テスト
1. `add(a, b)`
   - 正常系
     - 整数同士の足し算
     - 小数同士の足し算
     - 整数と小数の足し算
   - 異常系
     - 文字列を引数に渡した場合

2. `add_list(numbers)`
   - 正常系
     - 整数のリストの合計
     - 小数のリストの合計
     - 整数と小数のリストの合計
   - 異常系
     - 文字列を含むリストを引数に渡した場合

3. `add_multiple(*args)`
   - 正常系
     - 整数の複数引数の合計
     - 小数の複数引数の合計
     - 整数と小数の複数引数の合計
   - 異常系
     - 文字列を含む複数引数を渡した場合

### 掛け算モジュール

#### 機能概要
2つの数値を掛け算する関数、数値のリストの積を計算する関数、複数の数値を掛け算する関数を提供する。

#### 関数仕様
1. `multiply(a, b)`
   - 機能: 2つの数値を掛け算する
   - 引数:
     - `a (int or float)`: 1つ目の数値
     - `b (int or float)`: 2つ目の数値
   - 返り値: `int or float`: aとbの積

2. `multiply_list(numbers)`
   - 機能: 数値のリストの積を計算する
   - 引数:
     - `numbers (list)`: 数値のリスト
   - 返り値: `int or float`: numbersの積

3. `multiply_multiple(*args)`
   - 機能: 複数の数値を掛け算する
   - 引数:
     - `*args`: 可変長引数。任意の数の数値を受け取る
   - 返り値: `int or float`: 引数として渡された数値の積

#### テスト
1. `multiply(a, b)`
   - 正常系
     - 整数同士の掛け算
     - 小数同士の掛け算
     - 整数と小数の掛け算
   - 異常系
     - 文字列を引数に渡した場合

2. `multiply_list(numbers)`
   - 正常系
     - 整数のリストの積
     - 小数のリストの積
     - 整数と小数のリストの積
   - 異常系
     - 文字列を含むリストを引数に渡した場合

3. `multiply_multiple(*args)`
   - 正常系
     - 整数の複数引数の積
     - 小数の複数引数の積
     - 整数と小数の複数引数の積
   - 異常系
     - 文字列を含む複数引数を渡した場合


上記を正確にpythonプログラムにすること
pytest形式にして