check plausibility of job/ machine numbers of JobShopProblem
contributes to #3
This commit is contained in:
parent
58047569f8
commit
ba91f321e2
|
@ -1,5 +1,6 @@
|
|||
from typing import List, Tuple, Sequence, Optional, Union
|
||||
import arpeggio
|
||||
from itertools import chain
|
||||
|
||||
__all__ = ["jobshop1_parser", "jobshop2_parser"]
|
||||
|
||||
|
@ -42,6 +43,12 @@ class ParseError(Exception):
|
|||
class JobShopProblem:
|
||||
|
||||
def __init__(self, jobs: int, machines: int, problem_data: List[List[Tuple[int, int]]], name: str = 'unnamed', description: str = '') -> None:
|
||||
# check plausibility of input
|
||||
if len(problem_data) != jobs:
|
||||
raise ParseError("Given number of jobs for problem \"{}\" differs from actual job data.".format(name))
|
||||
if max([machine for (duration, machine) in chain.from_iterable(problem_data)]) > machines-1:
|
||||
raise ParseError("Higher machine number found in problem data than specified at problem head")
|
||||
|
||||
self.description = description
|
||||
self.name = name
|
||||
self.problem_data = problem_data
|
||||
|
|
Loading…
Reference in a new issue