def test_constraints(tmpdir): # Setup employees = load_tabular_demo() fixed_company_department_constraint = FixedCombinations( column_names=['company', 'department']) age_gt_age_when_joined_constraint = Inequality( low_column_name='age_when_joined', high_column_name='age') age_range_constraint = ScalarRange('age', 29, 50) constraints = [ fixed_company_department_constraint, age_gt_age_when_joined_constraint, age_range_constraint ] # Run gc = GaussianCopula(constraints=constraints, min_value=None, max_value=None) gc.fit(employees) gc.save(tmpdir / 'test.pkl') gc = gc.load(tmpdir / 'test.pkl') sampled = gc.sample(10) # Assert assert all(age_gt_age_when_joined_constraint.is_valid(sampled)) assert all(age_range_constraint.is_valid(sampled)) assert all(fixed_company_department_constraint.is_valid(sampled))
def test_constraints(tmpdir): employees = load_tabular_demo() unique_company_department_constraint = UniqueCombinations( columns=['company', 'department'], handling_strategy='transform') age_gt_age_when_joined_constraint = GreaterThan( low='age_when_joined', high='age', handling_strategy='reject_sampling') years_in_the_company_constraint = ColumnFormula( column='years_in_the_company', formula=years_in_the_company, handling_strategy='transform') constraints = [ unique_company_department_constraint, age_gt_age_when_joined_constraint, years_in_the_company_constraint ] gc = GaussianCopula(constraints=constraints) gc.fit(employees) gc.save(tmpdir / 'test.pkl') gc = gc.load(tmpdir / 'test.pkl') gc.sample(10)