Best Python code snippet using playwright-python
generate_data_test.py
Source:generate_data_test.py
1"""2Unit tests for the generate_data module.3@author: nestep4@date: March 20, 20145"""6import datetime7import os8import data_generation.config.cfg as sbac_config9import generate_data as generate_data10import sbac_data_generation.generators.assessment as asmt_gen11import sbac_data_generation.generators.hierarchy as hier_gen12import sbac_data_generation.generators.population as pop_gen13from data_generation.util.id_gen import IDGen14from nose.tools import assert_raises15ID_GEN = IDGen()16def setup_module():17 # Verify output directory exists (some tested methods will write to disk)18 if not os.path.exists(generate_data.OUT_PATH_ROOT):19 os.makedirs(generate_data.OUT_PATH_ROOT)20def test_set_configuration_exception():21 assert_raises(ValueError, generate_data.assign_configuration_options, 'Unknown', 'North Carolina', 'NC',22 'typical_1')23def test_set_configuration_state():24 # Set the configuration25 generate_data.assign_configuration_options('regular', 'North Carolina', 'NC', 'typical_1')26 # Tests27 assert generate_data.STATES[0]['name'] == 'North Carolina'28 assert generate_data.STATES[0]['code'] == 'NC'29 assert generate_data.STATES[0]['type'] == 'typical_1'30def test_set_configuration_regular():31 # Set the configuration32 generate_data.assign_configuration_options('regular', 'North Carolina', 'NC', 'typical_1')33 # Tests34 assert len(generate_data.YEARS) == 335 assert 2015 in generate_data.YEARS36 assert 2016 in generate_data.YEARS37 assert 2017 in generate_data.YEARS38 assert len(generate_data.ASMT_YEARS) == 339 assert 2015 in generate_data.ASMT_YEARS40 assert 2016 in generate_data.ASMT_YEARS41 assert 2017 in generate_data.ASMT_YEARS42 assert len(generate_data.INTERIM_ASMT_PERIODS) == 343 assert 'Fall' in generate_data.INTERIM_ASMT_PERIODS44 assert 'Winter' in generate_data.INTERIM_ASMT_PERIODS45 assert 'Spring' in generate_data.INTERIM_ASMT_PERIODS46 assert generate_data.NUMBER_REGISTRATION_SYSTEMS == 147def test_create_assessment_object():48 asmt = generate_data.create_assessment_object('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN, generate_item_level=False)49 assert asmt.asmt_type == 'SUMMATIVE'50 assert asmt.subject == 'ELA'51def test_create_assessment_object_summative():52 asmt = generate_data.create_assessment_object('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN, generate_item_level=False)53 assert asmt.period_year == 201554 assert asmt.period == 'Spring 2015'55 assert asmt.effective_date == datetime.date(2015, 5, 15)56 assert asmt.from_date == datetime.date(2015, 5, 15)57 assert asmt.to_date == datetime.date(9999, 12, 31)58def test_create_assessment_object_interim_fall():59 asmt = generate_data.create_assessment_object('INTERIM COMPREHENSIVE', 'Fall', 2015, 'ELA', ID_GEN,60 generate_item_level=False)61 assert asmt.period_year == 201562 assert asmt.period == 'Fall 2014'63 assert asmt.effective_date == datetime.date(2014, 9, 15)64 assert asmt.from_date == datetime.date(2014, 9, 15)65 assert asmt.to_date == datetime.date(9999, 12, 31)66def test_create_assessment_object_interim_winter():67 asmt = generate_data.create_assessment_object('INTERIM COMPREHENSIVE', 'Winter', 2015, 'ELA', ID_GEN,68 generate_item_level=False)69 assert asmt.period_year == 201570 assert asmt.period == 'Winter 2014'71 assert asmt.effective_date == datetime.date(2014, 12, 15)72 assert asmt.from_date == datetime.date(2014, 12, 15)73 assert asmt.to_date == datetime.date(9999, 12, 31)74def test_create_assessment_object_interim_spring():75 asmt = generate_data.create_assessment_object('INTERIM COMPREHENSIVE', 'Spring', 2015, 'ELA', ID_GEN,76 generate_item_level=False)77 assert asmt.period_year == 201578 assert asmt.period == 'Spring 2015'79 assert asmt.effective_date == datetime.date(2015, 3, 15)80 assert asmt.from_date == datetime.date(2015, 3, 15)81 assert asmt.to_date == datetime.date(9999, 12, 31)82def test_create_assessment_object_item_data():83 asmt = generate_data.create_assessment_object('INTERIM COMPREHENSIVE', 'Spring', 2015, 'ELA', ID_GEN,84 generate_item_level=True)85 assert len(asmt.item_bank) == sbac_config.ASMT_ITEM_BANK_SIZE86def test_create_assessment_object_no_item_data():87 asmt = generate_data.create_assessment_object('INTERIM COMPREHENSIVE', 'Spring', 2015, 'ELA', ID_GEN,88 generate_item_level=False)89 assert len(asmt.item_bank) == 090def test_create_assessment_outcome_object_item_data():91 # Create objects92 asmt = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)93 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)94 district = hier_gen.generate_district('Small Average', state, ID_GEN)95 school = hier_gen.generate_school('Elementary School', district, ID_GEN)96 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)97 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)98 outcomes = {}99 # Create outcomes100 generate_data.create_assessment_outcome_object(student, asmt, inst_hier, ID_GEN, outcomes, skip_rate=0,101 retake_rate=0, delete_rate=0, update_rate=0,102 generate_item_level=True)103 # Tests104 assert len(outcomes) == 1105 assert len(outcomes[asmt.guid_sr][0].item_level_data) == sbac_config.ITEMS_PER_ASMT106def test_create_assessment_outcome_object_skipped():107 # Create objects108 asmt = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)109 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)110 district = hier_gen.generate_district('Small Average', state, ID_GEN)111 school = hier_gen.generate_school('Elementary School', district, ID_GEN)112 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)113 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)114 outcomes = {}115 # Create outcomes116 generate_data.create_assessment_outcome_object(student, asmt, inst_hier, ID_GEN, outcomes, skip_rate=1,117 retake_rate=0, delete_rate=0, update_rate=0,118 generate_item_level=False)119 # Tests120 assert len(outcomes) == 0121def test_create_assessment_outcome_object_one_active_result():122 # Create objects123 asmt = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)124 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)125 district = hier_gen.generate_district('Small Average', state, ID_GEN)126 school = hier_gen.generate_school('Elementary School', district, ID_GEN)127 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)128 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)129 outcomes = {}130 # Create outcomes131 generate_data.create_assessment_outcome_object(student, asmt, inst_hier, ID_GEN, outcomes, skip_rate=0,132 retake_rate=0, delete_rate=0, update_rate=0)133 # Tests134 assert len(outcomes) == 1135 assert outcomes[asmt.guid_sr][0].result_status == 'C'136 assert outcomes[asmt.guid_sr][0].date_taken == datetime.date(2015, 5, 15)137def test_create_assessment_outcome_object_retake_results():138 # Create objects139 asmt = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)140 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)141 district = hier_gen.generate_district('Small Average', state, ID_GEN)142 school = hier_gen.generate_school('Elementary School', district, ID_GEN)143 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)144 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)145 outcomes = {}146 # Create outcomes147 generate_data.create_assessment_outcome_object(student, asmt, inst_hier, ID_GEN, outcomes, skip_rate=0,148 retake_rate=1, delete_rate=0, update_rate=0)149 # Tests150 assert len(outcomes) == 1151 assert outcomes[asmt.guid_sr][0].result_status == 'I'152 assert outcomes[asmt.guid_sr][0].date_taken == datetime.date(2015, 5, 15)153 assert outcomes[asmt.guid_sr][1].result_status == 'C'154 assert outcomes[asmt.guid_sr][1].date_taken == datetime.date(2015, 5, 20)155def test_create_assessment_outcome_object_one_deleted_result():156 # Create objects157 asmt = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)158 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)159 district = hier_gen.generate_district('Small Average', state, ID_GEN)160 school = hier_gen.generate_school('Elementary School', district, ID_GEN)161 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)162 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)163 outcomes = {}164 # Create outcomes165 generate_data.create_assessment_outcome_object(student, asmt, inst_hier, ID_GEN, outcomes, skip_rate=0,166 retake_rate=0, delete_rate=1, update_rate=0)167 # Tests168 assert len(outcomes) == 1169 assert outcomes[asmt.guid_sr][0].result_status == 'D'170 assert outcomes[asmt.guid_sr][0].date_taken == datetime.date(2015, 5, 15)171def test_create_assessment_outcome_object_update_no_second_delete_results():172 # Create objects173 asmt = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)174 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)175 district = hier_gen.generate_district('Small Average', state, ID_GEN)176 school = hier_gen.generate_school('Elementary School', district, ID_GEN)177 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)178 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)179 outcomes = {}180 # Create outcomes181 generate_data.create_assessment_outcome_object(student, asmt, inst_hier, ID_GEN, outcomes, skip_rate=0,182 retake_rate=0, delete_rate=0, update_rate=1)183 # Tests184 assert len(outcomes) == 1185 assert outcomes[asmt.guid_sr][0].result_status == 'D'186 assert outcomes[asmt.guid_sr][0].date_taken == datetime.date(2015, 5, 15)187 assert outcomes[asmt.guid_sr][1].result_status == 'C'188 assert outcomes[asmt.guid_sr][1].date_taken == datetime.date(2015, 5, 15)189def test_create_assessment_outcome_object_update_second_delete_results():190 # Create objects191 asmt = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)192 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)193 district = hier_gen.generate_district('Small Average', state, ID_GEN)194 school = hier_gen.generate_school('Elementary School', district, ID_GEN)195 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)196 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)197 outcomes = {}198 # Create outcomes199 generate_data.create_assessment_outcome_object(student, asmt, inst_hier, ID_GEN, outcomes, skip_rate=0,200 retake_rate=0, delete_rate=1, update_rate=1)201 # Tests202 assert len(outcomes) == 1203 assert outcomes[asmt.guid_sr][0].result_status == 'D'204 assert outcomes[asmt.guid_sr][0].date_taken == datetime.date(2015, 5, 15)205 assert outcomes[asmt.guid_sr][1].result_status == 'D'206 assert outcomes[asmt.guid_sr][1].date_taken == datetime.date(2015, 5, 15)207def test_create_assessment_outcome_objects_no_interims_skipped():208 # Create objects209 asmt_summ = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)210 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)211 district = hier_gen.generate_district('Small Average', state, ID_GEN)212 school = hier_gen.generate_school('Elementary School', district, ID_GEN)213 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)214 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)215 outcomes = {}216 # Create outcomes217 generate_data.create_assessment_outcome_objects(student, asmt_summ, [], inst_hier, ID_GEN, outcomes,218 skip_rate=1, retake_rate=0, delete_rate=0, update_rate=0,219 generate_item_level=False)220 # Tests221 assert len(outcomes) == 0222def test_create_assessment_outcome_objects_no_interims_one_active_result():223 # Create objects224 asmt_summ = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)225 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)226 district = hier_gen.generate_district('Small Average', state, ID_GEN)227 school = hier_gen.generate_school('Elementary School', district, ID_GEN)228 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)229 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)230 outcomes = {}231 # Create outcomes232 generate_data.create_assessment_outcome_objects(student, asmt_summ, [], inst_hier, ID_GEN, outcomes,233 skip_rate=0, retake_rate=0, delete_rate=0, update_rate=0,234 generate_item_level=False)235 # Tests236 assert len(outcomes) == 1237 assert outcomes[asmt_summ.guid_sr][0].result_status == 'C'238 assert outcomes[asmt_summ.guid_sr][0].date_taken == datetime.date(2015, 5, 15)239def test_create_assessment_outcome_objects_no_interims_retake_results():240 # Create objects241 asmt_summ = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)242 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)243 district = hier_gen.generate_district('Small Average', state, ID_GEN)244 school = hier_gen.generate_school('Elementary School', district, ID_GEN)245 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)246 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)247 outcomes = {}248 # Create outcomes249 generate_data.create_assessment_outcome_objects(student, asmt_summ, [], inst_hier, ID_GEN, outcomes,250 skip_rate=0, retake_rate=1, delete_rate=0, update_rate=0,251 generate_item_level=False)252 # Tests253 assert len(outcomes) == 1254 assert outcomes[asmt_summ.guid_sr][0].result_status == 'I'255 assert outcomes[asmt_summ.guid_sr][0].date_taken == datetime.date(2015, 5, 15)256 assert outcomes[asmt_summ.guid_sr][1].result_status == 'C'257 assert outcomes[asmt_summ.guid_sr][1].date_taken == datetime.date(2015, 5, 20)258def test_create_assessment_outcome_objects_no_interim_one_deleted_result():259 # Create objects260 asmt_summ = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)261 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)262 district = hier_gen.generate_district('Small Average', state, ID_GEN)263 school = hier_gen.generate_school('Elementary School', district, ID_GEN)264 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)265 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)266 outcomes = {}267 # Create outcomes268 generate_data.create_assessment_outcome_objects(student, asmt_summ, [], inst_hier, ID_GEN, outcomes,269 skip_rate=0, retake_rate=0, delete_rate=1, update_rate=0,270 generate_item_level=False)271 # Tests272 assert len(outcomes) == 1273 assert outcomes[asmt_summ.guid_sr][0].result_status == 'D'274 assert outcomes[asmt_summ.guid_sr][0].date_taken == datetime.date(2015, 5, 15)275def test_create_assessment_outcome_objects_no_interim_update_no_second_delete_results():276 # Create objects277 asmt_summ = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)278 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)279 district = hier_gen.generate_district('Small Average', state, ID_GEN)280 school = hier_gen.generate_school('Elementary School', district, ID_GEN)281 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)282 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)283 outcomes = {}284 # Create outcomes285 generate_data.create_assessment_outcome_objects(student, asmt_summ, [], inst_hier, ID_GEN, outcomes,286 skip_rate=0, retake_rate=0, delete_rate=0, update_rate=1,287 generate_item_level=False)288 # Tests289 assert len(outcomes) == 1290 assert outcomes[asmt_summ.guid_sr][0].result_status == 'D'291 assert outcomes[asmt_summ.guid_sr][0].date_taken == datetime.date(2015, 5, 15)292 assert outcomes[asmt_summ.guid_sr][1].result_status == 'C'293 assert outcomes[asmt_summ.guid_sr][1].date_taken == datetime.date(2015, 5, 15)294def test_create_assessment_outcome_objects_no_interim_update_second_delete_results():295 # Create objects296 asmt_summ = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)297 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)298 district = hier_gen.generate_district('Small Average', state, ID_GEN)299 school = hier_gen.generate_school('Elementary School', district, ID_GEN)300 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)301 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)302 outcomes = {}303 # Create outcomes304 generate_data.create_assessment_outcome_objects(student, asmt_summ, [], inst_hier, ID_GEN, outcomes,305 skip_rate=0, retake_rate=0, delete_rate=1, update_rate=1,306 generate_item_level=False)307 # Tests308 assert len(outcomes) == 1309 assert outcomes[asmt_summ.guid_sr][0].result_status == 'D'310 assert outcomes[asmt_summ.guid_sr][0].date_taken == datetime.date(2015, 5, 15)311 assert outcomes[asmt_summ.guid_sr][1].result_status == 'D'312 assert outcomes[asmt_summ.guid_sr][1].date_taken == datetime.date(2015, 5, 15)313def test_create_assessment_outcome_objects_interims_skipped():314 # Create objects315 asmt_summ = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)316 interim_asmts = [asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Fall', 2015, 'ELA', ID_GEN),317 asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Winter', 2015, 'ELA', ID_GEN),318 asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Spring', 2015, 'ELA', ID_GEN)]319 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)320 district = hier_gen.generate_district('Small Average', state, ID_GEN)321 school = hier_gen.generate_school('Elementary School', district, ID_GEN)322 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)323 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)324 outcomes = {}325 # Create outcomes326 generate_data.create_assessment_outcome_objects(student, asmt_summ, interim_asmts, inst_hier, ID_GEN,327 outcomes, skip_rate=1, retake_rate=0, delete_rate=0, update_rate=0,328 generate_item_level=False)329 # Tests330 assert len(outcomes) == 0331def test_create_assessment_outcome_objects_interims_one_active_result():332 # Create objects333 asmt_summ = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)334 interim_asmts = [asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Fall', 2015, 'ELA', ID_GEN),335 asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Winter', 2015, 'ELA', ID_GEN),336 asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Spring', 2015, 'ELA', ID_GEN)]337 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)338 district = hier_gen.generate_district('Small Average', state, ID_GEN)339 school = hier_gen.generate_school('Elementary School', district, ID_GEN)340 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)341 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)342 outcomes = {}343 # Create outcomes344 generate_data.create_assessment_outcome_objects(student, asmt_summ, interim_asmts, inst_hier, ID_GEN,345 outcomes, skip_rate=0, retake_rate=0, delete_rate=0, update_rate=0,346 generate_item_level=False)347 # Tests348 assert len(outcomes) == 4349 assert outcomes[asmt_summ.guid_sr][0].assessment.asmt_type == 'SUMMATIVE'350 assert outcomes[asmt_summ.guid_sr][0].result_status == 'C'351 assert outcomes[asmt_summ.guid_sr][0].date_taken == datetime.date(2015, 5, 15)352 assert outcomes[interim_asmts[0].guid_sr][0].assessment.asmt_type == 'INTERIM COMPREHENSIVE'353 assert outcomes[interim_asmts[0].guid_sr][0].result_status == 'C'354 assert outcomes[interim_asmts[0].guid_sr][0].date_taken == datetime.date(2014, 9, 15)355 assert outcomes[interim_asmts[1].guid_sr][0].assessment.asmt_type == 'INTERIM COMPREHENSIVE'356 assert outcomes[interim_asmts[1].guid_sr][0].result_status == 'C'357 assert outcomes[interim_asmts[1].guid_sr][0].date_taken == datetime.date(2014, 12, 15)358 assert outcomes[interim_asmts[2].guid_sr][0].assessment.asmt_type == 'INTERIM COMPREHENSIVE'359 assert outcomes[interim_asmts[2].guid_sr][0].result_status == 'C'360 assert outcomes[interim_asmts[2].guid_sr][0].date_taken == datetime.date(2015, 3, 15)361def test_create_assessment_outcome_objects_interims_retake_results():362 # Create objects363 asmt_summ = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)364 interim_asmts = [asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Fall', 2015, 'ELA', ID_GEN),365 asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Winter', 2015, 'ELA', ID_GEN),366 asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Spring', 2015, 'ELA', ID_GEN)]367 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)368 district = hier_gen.generate_district('Small Average', state, ID_GEN)369 school = hier_gen.generate_school('Elementary School', district, ID_GEN)370 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)371 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)372 outcomes = {}373 # Create outcomes374 generate_data.create_assessment_outcome_objects(student, asmt_summ, interim_asmts, inst_hier, ID_GEN,375 outcomes, skip_rate=0, retake_rate=1, delete_rate=0, update_rate=0,376 generate_item_level=False)377 # Tests378 assert len(outcomes) == 4379 assert outcomes[asmt_summ.guid_sr][0].assessment.asmt_type == 'SUMMATIVE'380 assert outcomes[asmt_summ.guid_sr][0].result_status == 'I'381 assert outcomes[asmt_summ.guid_sr][0].date_taken == datetime.date(2015, 5, 15)382 assert outcomes[asmt_summ.guid_sr][1].assessment.asmt_type == 'SUMMATIVE'383 assert outcomes[asmt_summ.guid_sr][1].result_status == 'C'384 assert outcomes[asmt_summ.guid_sr][1].date_taken == datetime.date(2015, 5, 20)385 assert outcomes[interim_asmts[0].guid_sr][0].assessment.asmt_type == 'INTERIM COMPREHENSIVE'386 assert outcomes[interim_asmts[0].guid_sr][0].result_status == 'I'387 assert outcomes[interim_asmts[0].guid_sr][0].date_taken == datetime.date(2014, 9, 15)388 assert outcomes[interim_asmts[0].guid_sr][1].assessment.asmt_type == 'INTERIM COMPREHENSIVE'389 assert outcomes[interim_asmts[0].guid_sr][1].result_status == 'C'390 assert outcomes[interim_asmts[0].guid_sr][1].date_taken == datetime.date(2014, 9, 20)391 assert outcomes[interim_asmts[1].guid_sr][0].assessment.asmt_type == 'INTERIM COMPREHENSIVE'392 assert outcomes[interim_asmts[1].guid_sr][0].result_status == 'I'393 assert outcomes[interim_asmts[1].guid_sr][0].date_taken == datetime.date(2014, 12, 15)394 assert outcomes[interim_asmts[1].guid_sr][1].assessment.asmt_type == 'INTERIM COMPREHENSIVE'395 assert outcomes[interim_asmts[1].guid_sr][1].result_status == 'C'396 assert outcomes[interim_asmts[1].guid_sr][1].date_taken == datetime.date(2014, 12, 20)397 assert outcomes[interim_asmts[2].guid_sr][0].assessment.asmt_type == 'INTERIM COMPREHENSIVE'398 assert outcomes[interim_asmts[2].guid_sr][0].result_status == 'I'399 assert outcomes[interim_asmts[2].guid_sr][0].date_taken == datetime.date(2015, 3, 15)400 assert outcomes[interim_asmts[2].guid_sr][1].assessment.asmt_type == 'INTERIM COMPREHENSIVE'401 assert outcomes[interim_asmts[2].guid_sr][1].result_status == 'C'402 assert outcomes[interim_asmts[2].guid_sr][1].date_taken == datetime.date(2015, 3, 20)403def test_create_assessment_outcome_objects_interim_one_deleted_result():404 # Create objects405 asmt_summ = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)406 interim_asmts = [asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Fall', 2015, 'ELA', ID_GEN),407 asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Winter', 2015, 'ELA', ID_GEN),408 asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Spring', 2015, 'ELA', ID_GEN)]409 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)410 district = hier_gen.generate_district('Small Average', state, ID_GEN)411 school = hier_gen.generate_school('Elementary School', district, ID_GEN)412 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)413 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)414 outcomes = {}415 # Create outcomes416 generate_data.create_assessment_outcome_objects(student, asmt_summ, interim_asmts, inst_hier, ID_GEN,417 outcomes, skip_rate=0, retake_rate=0, delete_rate=1, update_rate=0)418 # Tests419 assert len(outcomes) == 4420 assert outcomes[asmt_summ.guid_sr][0].assessment.asmt_type == 'SUMMATIVE'421 assert outcomes[asmt_summ.guid_sr][0].result_status == 'D'422 assert outcomes[asmt_summ.guid_sr][0].date_taken == datetime.date(2015, 5, 15)423 assert outcomes[interim_asmts[0].guid_sr][0].assessment.asmt_type == 'INTERIM COMPREHENSIVE'424 assert outcomes[interim_asmts[0].guid_sr][0].result_status == 'D'425 assert outcomes[interim_asmts[0].guid_sr][0].date_taken == datetime.date(2014, 9, 15)426 assert outcomes[interim_asmts[1].guid_sr][0].assessment.asmt_type == 'INTERIM COMPREHENSIVE'427 assert outcomes[interim_asmts[1].guid_sr][0].result_status == 'D'428 assert outcomes[interim_asmts[1].guid_sr][0].date_taken == datetime.date(2014, 12, 15)429 assert outcomes[interim_asmts[2].guid_sr][0].assessment.asmt_type == 'INTERIM COMPREHENSIVE'430 assert outcomes[interim_asmts[2].guid_sr][0].result_status == 'D'431 assert outcomes[interim_asmts[2].guid_sr][0].date_taken == datetime.date(2015, 3, 15)432def test_create_assessment_outcome_objects_interim_update_no_second_delete_results():433 # Create objects434 asmt_summ = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)435 interim_asmts = [asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Fall', 2015, 'ELA', ID_GEN),436 asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Winter', 2015, 'ELA', ID_GEN),437 asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Spring', 2015, 'ELA', ID_GEN)]438 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)439 district = hier_gen.generate_district('Small Average', state, ID_GEN)440 school = hier_gen.generate_school('Elementary School', district, ID_GEN)441 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)442 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)443 outcomes = {}444 # Create outcomes445 generate_data.create_assessment_outcome_objects(student, asmt_summ, interim_asmts, inst_hier, ID_GEN,446 outcomes, skip_rate=0, retake_rate=0, delete_rate=0, update_rate=1,447 generate_item_level=False)448 # Tests449 assert len(outcomes) == 4450 assert outcomes[asmt_summ.guid_sr][0].assessment.asmt_type == 'SUMMATIVE'451 assert outcomes[asmt_summ.guid_sr][0].result_status == 'D'452 assert outcomes[asmt_summ.guid_sr][0].date_taken == datetime.date(2015, 5, 15)453 assert outcomes[asmt_summ.guid_sr][1].assessment.asmt_type == 'SUMMATIVE'454 assert outcomes[asmt_summ.guid_sr][1].result_status == 'C'455 assert outcomes[asmt_summ.guid_sr][1].date_taken == datetime.date(2015, 5, 15)456 assert outcomes[interim_asmts[0].guid_sr][0].assessment.asmt_type == 'INTERIM COMPREHENSIVE'457 assert outcomes[interim_asmts[0].guid_sr][0].result_status == 'D'458 assert outcomes[interim_asmts[0].guid_sr][0].date_taken == datetime.date(2014, 9, 15)459 assert outcomes[interim_asmts[0].guid_sr][1].assessment.asmt_type == 'INTERIM COMPREHENSIVE'460 assert outcomes[interim_asmts[0].guid_sr][1].result_status == 'C'461 assert outcomes[interim_asmts[0].guid_sr][1].date_taken == datetime.date(2014, 9, 15)462 assert outcomes[interim_asmts[1].guid_sr][0].assessment.asmt_type == 'INTERIM COMPREHENSIVE'463 assert outcomes[interim_asmts[1].guid_sr][0].result_status == 'D'464 assert outcomes[interim_asmts[1].guid_sr][0].date_taken == datetime.date(2014, 12, 15)465 assert outcomes[interim_asmts[1].guid_sr][1].assessment.asmt_type == 'INTERIM COMPREHENSIVE'466 assert outcomes[interim_asmts[1].guid_sr][1].result_status == 'C'467 assert outcomes[interim_asmts[1].guid_sr][1].date_taken == datetime.date(2014, 12, 15)468 assert outcomes[interim_asmts[2].guid_sr][0].assessment.asmt_type == 'INTERIM COMPREHENSIVE'469 assert outcomes[interim_asmts[2].guid_sr][0].result_status == 'D'470 assert outcomes[interim_asmts[2].guid_sr][0].date_taken == datetime.date(2015, 3, 15)471 assert outcomes[interim_asmts[2].guid_sr][1].assessment.asmt_type == 'INTERIM COMPREHENSIVE'472 assert outcomes[interim_asmts[2].guid_sr][1].result_status == 'C'473 assert outcomes[interim_asmts[2].guid_sr][1].date_taken == datetime.date(2015, 3, 15)474def test_create_assessment_outcome_objects_interim_update_second_delete_results():475 # Create objects476 asmt_summ = asmt_gen.generate_assessment('SUMMATIVE', 'Spring', 2015, 'ELA', ID_GEN)477 interim_asmts = [asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Fall', 2015, 'ELA', ID_GEN),478 asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Winter', 2015, 'ELA', ID_GEN),479 asmt_gen.generate_assessment('INTERIM COMPREHENSIVE', 'Spring', 2015, 'ELA', ID_GEN)]480 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)481 district = hier_gen.generate_district('Small Average', state, ID_GEN)482 school = hier_gen.generate_school('Elementary School', district, ID_GEN)483 student = pop_gen.generate_student(school, 3, ID_GEN, 2015)484 inst_hier = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)485 outcomes = {}486 # Create outcomes487 generate_data.create_assessment_outcome_objects(student, asmt_summ, interim_asmts, inst_hier, ID_GEN,488 outcomes, skip_rate=0, retake_rate=0, delete_rate=1, update_rate=1,489 generate_item_level=False)490 # Tests491 assert len(outcomes) == 4492 assert outcomes[asmt_summ.guid_sr][0].assessment.asmt_type == 'SUMMATIVE'493 assert outcomes[asmt_summ.guid_sr][0].result_status == 'D'494 assert outcomes[asmt_summ.guid_sr][0].date_taken == datetime.date(2015, 5, 15)495 assert outcomes[asmt_summ.guid_sr][1].assessment.asmt_type == 'SUMMATIVE'496 assert outcomes[asmt_summ.guid_sr][1].result_status == 'D'497 assert outcomes[asmt_summ.guid_sr][1].date_taken == datetime.date(2015, 5, 15)498 assert outcomes[interim_asmts[0].guid_sr][0].assessment.asmt_type == 'INTERIM COMPREHENSIVE'499 assert outcomes[interim_asmts[0].guid_sr][0].result_status == 'D'500 assert outcomes[interim_asmts[0].guid_sr][0].date_taken == datetime.date(2014, 9, 15)501 assert outcomes[interim_asmts[0].guid_sr][1].assessment.asmt_type == 'INTERIM COMPREHENSIVE'502 assert outcomes[interim_asmts[0].guid_sr][1].result_status == 'D'503 assert outcomes[interim_asmts[0].guid_sr][1].date_taken == datetime.date(2014, 9, 15)504 assert outcomes[interim_asmts[1].guid_sr][0].assessment.asmt_type == 'INTERIM COMPREHENSIVE'505 assert outcomes[interim_asmts[1].guid_sr][0].result_status == 'D'506 assert outcomes[interim_asmts[1].guid_sr][0].date_taken == datetime.date(2014, 12, 15)507 assert outcomes[interim_asmts[1].guid_sr][1].assessment.asmt_type == 'INTERIM COMPREHENSIVE'508 assert outcomes[interim_asmts[1].guid_sr][1].result_status == 'D'509 assert outcomes[interim_asmts[1].guid_sr][1].date_taken == datetime.date(2014, 12, 15)510 assert outcomes[interim_asmts[2].guid_sr][0].assessment.asmt_type == 'INTERIM COMPREHENSIVE'511 assert outcomes[interim_asmts[2].guid_sr][0].result_status == 'D'512 assert outcomes[interim_asmts[2].guid_sr][0].date_taken == datetime.date(2015, 3, 15)513 assert outcomes[interim_asmts[2].guid_sr][1].assessment.asmt_type == 'INTERIM COMPREHENSIVE'514 assert outcomes[interim_asmts[2].guid_sr][1].result_status == 'D'...
texture_builtins.py
Source:texture_builtins.py
1#!/usr/bin/python2import sys3import StringIO4# Bitfield constants for the 'variant' argument to generate_sigs5Proj = 16Offset = 27Single = 48def vec_type(g, size):9 if size == 1:10 if g == "i":11 return "int"12 elif g == "u":13 return "uint"14 return "float"15 return g + "vec" + str(size)16# Get the sampler dimension - i.e. sampler3D gives 317def get_sampler_dim(sampler_type):18 if sampler_type[0].isdigit():19 sampler_dim = int(sampler_type[0])20 elif sampler_type.startswith("Cube"):21 sampler_dim = 322 elif sampler_type == "ExternalOES":23 sampler_dim = 224 elif sampler_type == "Buffer":25 sampler_dim = 126 else:27 assert False ("coord_dim: invalid sampler_type: " + sampler_type)28 return sampler_dim29# Get the coordinate dimension for a given sampler type.30# Array samplers also get +1 here since the layer is really an extra coordinate31def get_coord_dim(sampler_type):32 coord_dim = get_sampler_dim(sampler_type)33 if sampler_type.find("Array") != -1:34 coord_dim += 135 return coord_dim36# Get the number of extra vector components (i.e. shadow comparitor)37def get_extra_dim(sampler_type, use_proj, unused_fields):38 extra_dim = unused_fields39 if sampler_type.find("Shadow") != -1:40 extra_dim += 141 if use_proj:42 extra_dim += 143 return extra_dim44def get_txs_dim(sampler_type):45 if sampler_type.startswith("Cube"):46 return 247 return get_coord_dim(sampler_type)48def generate_sigs(g, tex_inst, sampler_type, variant = 0, unused_fields = 0):49 coord_dim = get_coord_dim(sampler_type)50 extra_dim = get_extra_dim(sampler_type, variant & Proj, unused_fields)51 sampler_dim = get_sampler_dim(sampler_type)52 if variant & Single:53 return_type = "float"54 elif tex_inst == "txs":55 return_type = vec_type("i", get_txs_dim(sampler_type))56 else:57 return_type = g + "vec4"58 # Print parameters59 print " (signature", return_type60 print " (parameters"61 print " (declare (in) " + g + "sampler" + sampler_type + " sampler)",62 if tex_inst != "txs":63 print "\n (declare (in) " + vec_type("i" if tex_inst == "txf" else "", coord_dim + extra_dim) + " P)",64 if tex_inst == "txl":65 print "\n (declare (in) float lod)",66 elif ((tex_inst == "txf" or tex_inst == "txs") and "Buffer" not in sampler_type and "Rect" not in sampler_type):67 print "\n (declare (in) int lod)",68 elif tex_inst == "txd":69 grad_type = vec_type("", sampler_dim)70 print "\n (declare (in) " + grad_type + " dPdx)",71 print "\n (declare (in) " + grad_type + " dPdy)",72 if variant & Offset:73 print "\n (declare (const_in) " + vec_type("i", sampler_dim) + " offset)",74 if tex_inst == "txb":75 print "\n (declare (in) float bias)",76 print ")\n ((return (" + tex_inst, return_type, "(var_ref sampler)",77 if tex_inst != "txs":78 # Coordinate79 if extra_dim > 0:80 print "(swiz " + "xyzw"[:coord_dim] + " (var_ref P))",81 else:82 print "(var_ref P)",83 if variant & Offset:84 print "(var_ref offset)",85 else:86 print "0",87 if tex_inst != "txf" and tex_inst != "txs":88 # Projective divisor89 if variant & Proj:90 print "(swiz " + "xyzw"[coord_dim + extra_dim-1] + " (var_ref P))",91 else:92 print "1",93 # Shadow comparitor94 if sampler_type == "2DArrayShadow" or sampler_type == "CubeShadow": # a special case:95 print "(swiz w (var_ref P))", # ...array layer is z; shadow is w96 elif sampler_type.endswith("Shadow"):97 print "(swiz z (var_ref P))",98 else:99 print "()",100 # Bias/explicit LOD/gradient:101 if tex_inst == "txb":102 print "(var_ref bias)",103 elif tex_inst == "txs" or tex_inst == "txf":104 if "Rect" not in sampler_type and "Buffer" not in sampler_type:105 print "(var_ref lod)",106 else:107 print "(constant int (0))"108 elif tex_inst == "txl":109 print "(var_ref lod)",110 elif tex_inst == "txd":111 print "((var_ref dPdx) (var_ref dPdy))",112 print "))))\n"113def generate_fiu_sigs(tex_inst, sampler_type, variant = 0, unused_fields = 0):114 generate_sigs("", tex_inst, sampler_type, variant, unused_fields)115 generate_sigs("i", tex_inst, sampler_type, variant, unused_fields)116 generate_sigs("u", tex_inst, sampler_type, variant, unused_fields)117def start_function(name):118 sys.stdout = StringIO.StringIO()119 print "((function " + name120def end_function(fs, name):121 print "))"122 fs[name] = sys.stdout.getvalue();123 sys.stdout.close()124# Generate all the functions and store them in the supplied dictionary.125# This is better than writing them to actual files since they should never be126# edited; it'd also be easy to confuse them with the many hand-generated files.127#128# Takes a dictionary as an argument.129def generate_texture_functions(fs):130 start_function("textureSize")131 generate_fiu_sigs("txs", "1D")132 generate_fiu_sigs("txs", "2D")133 generate_fiu_sigs("txs", "3D")134 generate_fiu_sigs("txs", "Cube")135 generate_fiu_sigs("txs", "1DArray")136 generate_fiu_sigs("txs", "2DArray")137 generate_sigs("", "txs", "1DShadow")138 generate_sigs("", "txs", "2DShadow")139 generate_sigs("", "txs", "CubeShadow")140 generate_sigs("", "txs", "1DArrayShadow")141 generate_sigs("", "txs", "2DArrayShadow")142 generate_fiu_sigs("txs", "2DRect")143 generate_sigs("", "txs", "2DRectShadow")144 generate_fiu_sigs("txs", "Buffer")145 end_function(fs, "textureSize")146 start_function("texture")147 generate_fiu_sigs("tex", "1D")148 generate_fiu_sigs("tex", "2D")149 generate_fiu_sigs("tex", "3D")150 generate_fiu_sigs("tex", "Cube")151 generate_fiu_sigs("tex", "1DArray")152 generate_fiu_sigs("tex", "2DArray")153 generate_sigs("", "tex", "1DShadow", Single, 1);154 generate_sigs("", "tex", "2DShadow", Single);155 generate_sigs("", "tex", "CubeShadow", Single);156 generate_sigs("", "tex", "1DArrayShadow", Single);157 generate_sigs("", "tex", "2DArrayShadow", Single);158 generate_fiu_sigs("tex", "2DRect")159 generate_sigs("", "tex", "2DRectShadow", Single);160 generate_fiu_sigs("txb", "1D")161 generate_fiu_sigs("txb", "2D")162 generate_fiu_sigs("txb", "3D")163 generate_fiu_sigs("txb", "Cube")164 generate_fiu_sigs("txb", "1DArray")165 generate_fiu_sigs("txb", "2DArray")166 generate_sigs("", "txb", "1DShadow", Single, 1);167 generate_sigs("", "txb", "2DShadow", Single);168 generate_sigs("", "txb", "CubeShadow", Single);169 generate_sigs("", "txb", "1DArrayShadow", Single);170 generate_sigs("", "txb", "2DArrayShadow", Single);171 end_function(fs, "texture")172 start_function("textureProj")173 generate_fiu_sigs("tex", "1D", Proj)174 generate_fiu_sigs("tex", "1D", Proj, 2)175 generate_fiu_sigs("tex", "2D", Proj)176 generate_fiu_sigs("tex", "2D", Proj, 1)177 generate_fiu_sigs("tex", "3D", Proj)178 generate_sigs("", "tex", "1DShadow", Proj | Single, 1);179 generate_sigs("", "tex", "2DShadow", Proj | Single);180 generate_fiu_sigs("tex", "2DRect", Proj)181 generate_fiu_sigs("tex", "2DRect", Proj, 1)182 generate_sigs("", "tex", "2DRectShadow", Proj | Single);183 generate_fiu_sigs("txb", "1D", Proj)184 generate_fiu_sigs("txb", "1D", Proj, 2)185 generate_fiu_sigs("txb", "2D", Proj)186 generate_fiu_sigs("txb", "2D", Proj, 1)187 generate_fiu_sigs("txb", "3D", Proj)188 generate_sigs("", "txb", "1DShadow", Proj | Single, 1);189 generate_sigs("", "txb", "2DShadow", Proj | Single);190 end_function(fs, "textureProj")191 start_function("textureLod")192 generate_fiu_sigs("txl", "1D")193 generate_fiu_sigs("txl", "2D")194 generate_fiu_sigs("txl", "3D")195 generate_fiu_sigs("txl", "Cube")196 generate_fiu_sigs("txl", "1DArray")197 generate_fiu_sigs("txl", "2DArray")198 generate_sigs("", "txl", "1DShadow", Single, 1);199 generate_sigs("", "txl", "2DShadow", Single);200 generate_sigs("", "txl", "1DArrayShadow", Single);201 end_function(fs, "textureLod")202 start_function("textureLodOffset")203 generate_fiu_sigs("txl", "1D", Offset)204 generate_fiu_sigs("txl", "2D", Offset)205 generate_fiu_sigs("txl", "3D", Offset)206 generate_fiu_sigs("txl", "1DArray", Offset)207 generate_fiu_sigs("txl", "2DArray", Offset)208 generate_sigs("", "txl", "1DShadow", Offset | Single, 1);209 generate_sigs("", "txl", "2DShadow", Offset | Single);210 generate_sigs("", "txl", "1DArrayShadow", Offset | Single);211 end_function(fs, "textureLodOffset")212 start_function("textureOffset")213 generate_fiu_sigs("tex", "1D", Offset)214 generate_fiu_sigs("tex", "2D", Offset)215 generate_fiu_sigs("tex", "3D", Offset)216 generate_fiu_sigs("tex", "2DRect", Offset)217 generate_sigs("", "tex", "2DRectShadow", Offset | Single);218 generate_fiu_sigs("tex", "1DArray", Offset)219 generate_fiu_sigs("tex", "2DArray", Offset)220 generate_sigs("", "tex", "1DShadow", Offset | Single, 1);221 generate_sigs("", "tex", "2DShadow", Offset | Single);222 generate_sigs("", "tex", "1DArrayShadow", Offset | Single);223 generate_fiu_sigs("txb", "1D", Offset)224 generate_fiu_sigs("txb", "2D", Offset)225 generate_fiu_sigs("txb", "3D", Offset)226 generate_fiu_sigs("txb", "1DArray", Offset)227 generate_fiu_sigs("txb", "2DArray", Offset)228 generate_sigs("", "txb", "1DShadow", Offset | Single, 1);229 generate_sigs("", "txb", "2DShadow", Offset | Single);230 generate_sigs("", "txb", "1DArrayShadow", Offset | Single);231 end_function(fs, "textureOffset")232 start_function("texelFetch")233 generate_fiu_sigs("txf", "1D")234 generate_fiu_sigs("txf", "2D")235 generate_fiu_sigs("txf", "3D")236 generate_fiu_sigs("txf", "2DRect")237 generate_fiu_sigs("txf", "1DArray")238 generate_fiu_sigs("txf", "2DArray")239 generate_fiu_sigs("txf", "Buffer")240 end_function(fs, "texelFetch")241 start_function("texelFetchOffset")242 generate_fiu_sigs("txf", "1D", Offset)243 generate_fiu_sigs("txf", "2D", Offset)244 generate_fiu_sigs("txf", "3D", Offset)245 generate_fiu_sigs("txf", "2DRect", Offset)246 generate_fiu_sigs("txf", "1DArray", Offset)247 generate_fiu_sigs("txf", "2DArray", Offset)248 end_function(fs, "texelFetchOffset")249 start_function("textureProjOffset")250 generate_fiu_sigs("tex", "1D", Proj | Offset)251 generate_fiu_sigs("tex", "1D", Proj | Offset, 2)252 generate_fiu_sigs("tex", "2D", Proj | Offset)253 generate_fiu_sigs("tex", "2D", Proj | Offset, 1)254 generate_fiu_sigs("tex", "3D", Proj | Offset)255 generate_fiu_sigs("tex", "2DRect", Proj | Offset)256 generate_fiu_sigs("tex", "2DRect", Proj | Offset, 1)257 generate_sigs("", "tex", "2DRectShadow", Proj | Offset | Single);258 generate_sigs("", "tex", "1DShadow", Proj | Offset | Single, 1);259 generate_sigs("", "tex", "2DShadow", Proj | Offset | Single);260 generate_fiu_sigs("txb", "1D", Proj | Offset)261 generate_fiu_sigs("txb", "1D", Proj | Offset, 2)262 generate_fiu_sigs("txb", "2D", Proj | Offset)263 generate_fiu_sigs("txb", "2D", Proj | Offset, 1)264 generate_fiu_sigs("txb", "3D", Proj | Offset)265 generate_sigs("", "txb", "1DShadow", Proj | Offset | Single, 1);266 generate_sigs("", "txb", "2DShadow", Proj | Offset | Single);267 end_function(fs, "textureProjOffset")268 start_function("textureProjLod")269 generate_fiu_sigs("txl", "1D", Proj)270 generate_fiu_sigs("txl", "1D", Proj, 2)271 generate_fiu_sigs("txl", "2D", Proj)272 generate_fiu_sigs("txl", "2D", Proj, 1)273 generate_fiu_sigs("txl", "3D", Proj)274 generate_sigs("", "txl", "1DShadow", Proj | Single, 1);275 generate_sigs("", "txl", "2DShadow", Proj | Single);276 end_function(fs, "textureProjLod")277 start_function("textureProjLodOffset")278 generate_fiu_sigs("txl", "1D", Proj | Offset)279 generate_fiu_sigs("txl", "1D", Proj | Offset, 2)280 generate_fiu_sigs("txl", "2D", Proj | Offset)281 generate_fiu_sigs("txl", "2D", Proj | Offset, 1)282 generate_fiu_sigs("txl", "3D", Proj | Offset)283 generate_sigs("", "txl", "1DShadow", Proj | Offset | Single, 1);284 generate_sigs("", "txl", "2DShadow", Proj | Offset | Single);285 end_function(fs, "textureProjLodOffset")286 start_function("textureGrad")287 generate_fiu_sigs("txd", "1D")288 generate_fiu_sigs("txd", "2D")289 generate_fiu_sigs("txd", "3D")290 generate_fiu_sigs("txd", "Cube")291 generate_fiu_sigs("txd", "1DArray")292 generate_fiu_sigs("txd", "2DArray")293 generate_fiu_sigs("txd", "2DRect")294 generate_sigs("", "txd", "2DRectShadow", Single);295 generate_sigs("", "txd", "1DShadow", Single, 1);296 generate_sigs("", "txd", "2DShadow", Single);297 generate_sigs("", "txd", "CubeShadow", Single);298 generate_sigs("", "txd", "1DArrayShadow", Single);299 generate_sigs("", "txd", "2DArrayShadow", Single);300 end_function(fs, "textureGrad")301 start_function("textureGradOffset")302 generate_fiu_sigs("txd", "1D", Offset)303 generate_fiu_sigs("txd", "2D", Offset)304 generate_fiu_sigs("txd", "3D", Offset)305 generate_fiu_sigs("txd", "2DRect", Offset)306 generate_sigs("", "txd", "2DRectShadow", Offset | Single);307 generate_fiu_sigs("txd", "1DArray", Offset)308 generate_fiu_sigs("txd", "2DArray", Offset)309 generate_sigs("", "txd", "1DShadow", Offset | Single, 1);310 generate_sigs("", "txd", "2DShadow", Offset | Single);311 generate_sigs("", "txd", "1DArrayShadow", Offset | Single);312 generate_sigs("", "txd", "2DArrayShadow", Offset | Single);313 end_function(fs, "textureGradOffset")314 start_function("textureProjGrad")315 generate_fiu_sigs("txd", "1D", Proj)316 generate_fiu_sigs("txd", "1D", Proj, 2)317 generate_fiu_sigs("txd", "2D", Proj)318 generate_fiu_sigs("txd", "2D", Proj, 1)319 generate_fiu_sigs("txd", "3D", Proj)320 generate_fiu_sigs("txd", "2DRect", Proj)321 generate_fiu_sigs("txd", "2DRect", Proj, 1)322 generate_sigs("", "txd", "2DRectShadow", Proj | Single);323 generate_sigs("", "txd", "1DShadow", Proj | Single, 1);324 generate_sigs("", "txd", "2DShadow", Proj | Single);325 end_function(fs, "textureProjGrad")326 start_function("textureProjGradOffset")327 generate_fiu_sigs("txd", "1D", Proj | Offset)328 generate_fiu_sigs("txd", "1D", Proj | Offset, 2)329 generate_fiu_sigs("txd", "2D", Proj | Offset)330 generate_fiu_sigs("txd", "2D", Proj | Offset, 1)331 generate_fiu_sigs("txd", "3D", Proj | Offset)332 generate_fiu_sigs("txd", "2DRect", Proj | Offset)333 generate_fiu_sigs("txd", "2DRect", Proj | Offset, 1)334 generate_sigs("", "txd", "2DRectShadow", Proj | Offset | Single);335 generate_sigs("", "txd", "1DShadow", Proj | Offset | Single, 1);336 generate_sigs("", "txd", "2DShadow", Proj | Offset | Single);337 end_function(fs, "textureProjGradOffset")338 # ARB_texture_rectangle extension339 start_function("texture2DRect")340 generate_sigs("", "tex", "2DRect")341 end_function(fs, "texture2DRect")342 start_function("texture2DRectProj")343 generate_sigs("", "tex", "2DRect", Proj)344 generate_sigs("", "tex", "2DRect", Proj, 1)345 end_function(fs, "texture2DRectProj")346 start_function("shadow2DRect")347 generate_sigs("", "tex", "2DRectShadow")348 end_function(fs, "shadow2DRect")349 start_function("shadow2DRectProj")350 generate_sigs("", "tex", "2DRectShadow", Proj)351 end_function(fs, "shadow2DRectProj")352 # EXT_texture_array extension353 start_function("texture1DArray")354 generate_sigs("", "tex", "1DArray")355 generate_sigs("", "txb", "1DArray")356 end_function(fs, "texture1DArray")357 start_function("texture1DArrayLod")358 generate_sigs("", "txl", "1DArray")359 end_function(fs, "texture1DArrayLod")360 start_function("texture2DArray")361 generate_sigs("", "tex", "2DArray")362 generate_sigs("", "txb", "2DArray")363 end_function(fs, "texture2DArray")364 start_function("texture2DArrayLod")365 generate_sigs("", "txl", "2DArray")366 end_function(fs, "texture2DArrayLod")367 start_function("shadow1DArray")368 generate_sigs("", "tex", "1DArrayShadow")369 generate_sigs("", "txb", "1DArrayShadow")370 end_function(fs, "shadow1DArray")371 start_function("shadow1DArrayLod")372 generate_sigs("", "txl", "1DArrayShadow")373 end_function(fs, "shadow1DArrayLod")374 start_function("shadow2DArray")375 generate_sigs("", "tex", "2DArrayShadow")376 end_function(fs, "shadow2DArray")377 # ARB_shader_texture_lod extension378 start_function("texture1DGradARB")379 generate_fiu_sigs("txd", "1D")380 end_function(fs, "texture1DGradARB")381 start_function("texture2DGradARB")382 generate_fiu_sigs("txd", "2D")383 end_function(fs, "texture2DGradARB")384 start_function("texture3DGradARB")385 generate_fiu_sigs("txd", "3D")386 end_function(fs, "texture3DGradARB")387 start_function("textureCubeGradARB")388 generate_fiu_sigs("txd", "Cube")389 end_function(fs, "textureCubeGradARB")390 start_function("texture1DProjGradARB")391 generate_fiu_sigs("txd", "1D", True)392 generate_fiu_sigs("txd", "1D", True, 2)393 end_function(fs, "texture1DProjGradARB")394 start_function("texture2DProjGradARB")395 generate_fiu_sigs("txd", "2D", True)396 generate_fiu_sigs("txd", "2D", True, 1)397 end_function(fs, "texture2DProjGradARB")398 start_function("texture3DProjGradARB")399 generate_fiu_sigs("txd", "3D", True)400 end_function(fs, "texture3DProjGradARB")401 start_function("shadow1DGradARB")402 generate_sigs("", "txd", "1DShadow", False, 1)403 end_function(fs, "shadow1DGradARB")404 start_function("shadow1DProjGradARB")405 generate_sigs("", "txd", "1DShadow", True, 1)406 end_function(fs, "shadow1DProjGradARB")407 start_function("shadow2DGradARB")408 generate_sigs("", "txd", "2DShadow", False)409 end_function(fs, "shadow2DGradARB")410 start_function("shadow2DProjGradARB")411 generate_sigs("", "txd", "2DShadow", True)412 end_function(fs, "shadow2DProjGradARB")413 start_function("texture2DRectGradARB")414 generate_sigs("", "txd", "2DRect")415 end_function(fs, "texture2DRectGradARB")416 start_function("texture2DRectProjGradARB")417 generate_sigs("", "txd", "2DRect", True)418 generate_sigs("", "txd", "2DRect", True, 1)419 end_function(fs, "texture2DRectProjGradARB")420 start_function("shadow2DRectGradARB")421 generate_sigs("", "txd", "2DRectShadow", False)422 end_function(fs, "shadow2DRectGradARB")423 start_function("shadow2DRectProjGradARB")424 generate_sigs("", "txd", "2DRectShadow", True)425 end_function(fs, "shadow2DRectProjGradARB")426 # Deprecated (110/120 style) functions with silly names:427 start_function("texture1D")428 generate_sigs("", "tex", "1D")429 generate_sigs("", "txb", "1D")430 end_function(fs, "texture1D")431 start_function("texture1DLod")432 generate_sigs("", "txl", "1D")433 end_function(fs, "texture1DLod")434 start_function("texture1DProj")435 generate_sigs("", "tex", "1D", Proj)436 generate_sigs("", "tex", "1D", Proj, 2)437 generate_sigs("", "txb", "1D", Proj)438 generate_sigs("", "txb", "1D", Proj, 2)439 end_function(fs, "texture1DProj")440 start_function("texture1DProjLod")441 generate_sigs("", "txl", "1D", Proj)442 generate_sigs("", "txl", "1D", Proj, 2)443 end_function(fs, "texture1DProjLod")444 start_function("texture2D")445 generate_sigs("", "tex", "2D")446 generate_sigs("", "txb", "2D")447 # OES_EGL_image_external448 generate_sigs("", "tex", "ExternalOES")449 end_function(fs, "texture2D")450 start_function("texture2DLod")451 generate_sigs("", "txl", "2D")452 end_function(fs, "texture2DLod")453 start_function("texture2DProj")454 generate_sigs("", "tex", "2D", Proj)455 generate_sigs("", "tex", "2D", Proj, 1)456 generate_sigs("", "txb", "2D", Proj)457 generate_sigs("", "txb", "2D", Proj, 1)458 # OES_EGL_image_external459 generate_sigs("", "tex", "ExternalOES", Proj)460 generate_sigs("", "tex", "ExternalOES", Proj, 1)461 end_function(fs, "texture2DProj")462 start_function("texture2DProjLod")463 generate_sigs("", "txl", "2D", Proj)464 generate_sigs("", "txl", "2D", Proj, 1)465 end_function(fs, "texture2DProjLod")466 start_function("texture3D")467 generate_sigs("", "tex", "3D")468 generate_sigs("", "txb", "3D")469 end_function(fs, "texture3D")470 start_function("texture3DLod")471 generate_sigs("", "txl", "3D")472 end_function(fs, "texture3DLod")473 start_function("texture3DProj")474 generate_sigs("", "tex", "3D", Proj)475 generate_sigs("", "txb", "3D", Proj)476 end_function(fs, "texture3DProj")477 start_function("texture3DProjLod")478 generate_sigs("", "txl", "3D", Proj)479 end_function(fs, "texture3DProjLod")480 start_function("textureCube")481 generate_sigs("", "tex", "Cube")482 generate_sigs("", "txb", "Cube")483 end_function(fs, "textureCube")484 start_function("textureCubeLod")485 generate_sigs("", "txl", "Cube")486 end_function(fs, "textureCubeLod")487 start_function("shadow1D")488 generate_sigs("", "tex", "1DShadow", False, 1)489 generate_sigs("", "txb", "1DShadow", False, 1)490 end_function(fs, "shadow1D")491 start_function("shadow1DLod")492 generate_sigs("", "txl", "1DShadow", False, 1)493 end_function(fs, "shadow1DLod")494 start_function("shadow1DProj")495 generate_sigs("", "tex", "1DShadow", Proj, 1)496 generate_sigs("", "txb", "1DShadow", Proj, 1)497 end_function(fs, "shadow1DProj")498 start_function("shadow1DProjLod")499 generate_sigs("", "txl", "1DShadow", Proj, 1)500 end_function(fs, "shadow1DProjLod")501 start_function("shadow2D")502 generate_sigs("", "tex", "2DShadow")503 generate_sigs("", "txb", "2DShadow")504 end_function(fs, "shadow2D")505 start_function("shadow2DLod")506 generate_sigs("", "txl", "2DShadow")507 end_function(fs, "shadow2DLod")508 start_function("shadow2DProj")509 generate_sigs("", "tex", "2DShadow", Proj)510 generate_sigs("", "txb", "2DShadow", Proj)511 end_function(fs, "shadow2DProj")512 start_function("shadow2DProjLod")513 generate_sigs("", "txl", "2DShadow", Proj)514 end_function(fs, "shadow2DProjLod")515 sys.stdout = sys.__stdout__516 return fs517# If you actually run this script, it'll print out all the functions.518if __name__ == "__main__":519 fs = {}520 generate_texture_functions(fs);521 for k, v in fs.iteritems():...
population_test.py
Source:population_test.py
1"""2Unit tests for the sbac_data_generation.generators.population module.3@author: nestep4@date: March 20, 20145"""6import data_generation.config.cfg as sbac_config7import sbac_data_generation.generators.hierarchy as hier_gen8import sbac_data_generation.generators.population as pop_gen9from data_generation.util.id_gen import IDGen10from nose.tools import assert_is_instance, assert_regexp_matches11from sbac_data_generation.model.student import SBACStudent12from sbac_data_generation.model.teachingstaff import SBACTeachingStaff13ID_GEN = IDGen()14GUID_REGEX = '[a-f0-9]{8}(-[a-f0-9]{4}){3}-[a-f0-9]{12}'15SR_GUID_REGEX = '[a-f0-9]{30}'16EXT_GUID_REGEX = GUID_REGEX + 'ext'17def test_generate_staff():18 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)19 district = hier_gen.generate_district('Big Average', state, ID_GEN)20 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)21 staff = pop_gen.generate_teaching_staff_member(school, ID_GEN)22 # Tests23 assert_is_instance(staff, SBACTeachingStaff)24 assert_regexp_matches(staff.guid_sr, SR_GUID_REGEX)25def test_generate_student():26 # Create objects27 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)28 district = hier_gen.generate_district('Big Average', state, ID_GEN)29 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)30 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)31 # Tests32 assert_is_instance(student, SBACStudent)33 assert_regexp_matches(student.guid_sr, SR_GUID_REGEX)34 assert_regexp_matches(student.external_ssid, EXT_GUID_REGEX)35 assert_regexp_matches(student.external_ssid_sr, SR_GUID_REGEX)36 assert student.school_entry_date.year == 200337 assert student.school_entry_date.month in [8, 9]38def test_advance_student_advanced():39 # Create objects40 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)41 district = hier_gen.generate_district('Big Average', state, ID_GEN)42 midl_school = hier_gen.generate_school('Middle School', district, ID_GEN, interim_asmt_rate=1)43 student = pop_gen.generate_student(midl_school, 6, ID_GEN, state, 2015)44 schools_by_grade = {grade: [midl_school] for grade in midl_school.grades}45 # Test46 assert pop_gen.advance_student(student, schools_by_grade, hold_back_rate=0)47def test_advance_student_held_back():48 # Create objects49 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)50 district = hier_gen.generate_district('Big Average', state, ID_GEN)51 midl_school = hier_gen.generate_school('Middle School', district, ID_GEN, interim_asmt_rate=1)52 student = pop_gen.generate_student(midl_school, 6, ID_GEN, state, 2015)53 schools_by_grade = {grade: [midl_school] for grade in midl_school.grades}54 # Test55 assert pop_gen.advance_student(student, schools_by_grade, hold_back_rate=1, drop_out_rate=0)56def test_advance_student_drop_out():57 # Create objects58 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)59 district = hier_gen.generate_district('Big Average', state, ID_GEN)60 high_school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)61 student = pop_gen.generate_student(high_school, 11, ID_GEN, state, 2015)62 schools_by_grade = {grade: [high_school] for grade in high_school.grades}63 # Test64 assert not pop_gen.advance_student(student, schools_by_grade, hold_back_rate=1, drop_out_rate=1)65def test_repopulate_school_grade_empty():66 # Create objects67 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)68 district = hier_gen.generate_district('Big Average', state, ID_GEN)69 elem_school = hier_gen.generate_school('Elementary School', district, ID_GEN)70 elem_school.config['students']['min'], elem_school.config['students']['max'] = 100, 10071 elem_school.config['students']['avg'] = 10072 students = []73 pop_gen.repopulate_school_grade(elem_school, 3, students, ID_GEN, state, 2015, additional_student_choice=[0])74 # Test75 assert len(students) == 10076def test_repopulate_school_grade_empty_with_additional():77 # Create objects78 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)79 district = hier_gen.generate_district('Big Average', state, ID_GEN)80 elem_school = hier_gen.generate_school('Elementary School', district, ID_GEN)81 elem_school.config['students']['min'], elem_school.config['students']['max'] = 100, 10082 elem_school.config['students']['avg'] = 10083 students = []84 pop_gen.repopulate_school_grade(elem_school, 3, students, ID_GEN, state, 2015, additional_student_choice=[3])85 # Test86 assert len(students) == 10387def test_repopulate_school_grade_full_no_additional():88 # Create objects89 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)90 district = hier_gen.generate_district('Big Average', state, ID_GEN)91 elem_school = hier_gen.generate_school('Elementary School', district, ID_GEN)92 elem_school.config['students']['min'], elem_school.config['students']['max'] = 100, 10093 elem_school.config['students']['avg'] = 10094 students = []95 for _ in range(100):96 students.append(pop_gen.generate_student(elem_school, 4, ID_GEN, state, 2015))97 pop_gen.repopulate_school_grade(elem_school, 4, students, ID_GEN, state, 2015, additional_student_choice=[0])98 # Test99 assert len(students) == 100100def test_repopulate_school_grade_full_additional():101 # Create objects102 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)103 district = hier_gen.generate_district('Big Average', state, ID_GEN)104 elem_school = hier_gen.generate_school('Elementary School', district, ID_GEN)105 elem_school.config['students']['min'], elem_school.config['students']['max'] = 100, 100106 elem_school.config['students']['avg'] = 100107 students = []108 for _ in range(100):109 students.append(pop_gen.generate_student(elem_school, 4, ID_GEN, state, 2015))110 pop_gen.repopulate_school_grade(elem_school, 4, students, ID_GEN, state, 2015, additional_student_choice=[2])111 # Test112 assert len(students) == 102113def test_repopulate_school_grade_almost_full_additional():114 # Create objects115 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)116 district = hier_gen.generate_district('Big Average', state, ID_GEN)117 elem_school = hier_gen.generate_school('Elementary School', district, ID_GEN)118 elem_school.config['students']['min'], elem_school.config['students']['max'] = 100, 100119 elem_school.config['students']['avg'] = 100120 students = []121 for _ in range(99):122 students.append(pop_gen.generate_student(elem_school, 4, ID_GEN, state, 2015))123 pop_gen.repopulate_school_grade(elem_school, 4, students, ID_GEN, state, 2015, additional_student_choice=[2])124 # Test125 assert len(students) == 102126def test_generate_derived_demographic_no_ethnicities():127 # Create objects128 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)129 district = hier_gen.generate_district('Big Average', state, ID_GEN)130 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)131 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)132 student.eth_amer_ind = False133 student.eth_asian = False134 student.eth_black = False135 student.eth_hispanic = False136 student.eth_multi = False137 student.eth_none = False138 student.eth_pacific = False139 student.eth_white = False140 # Test141 assert pop_gen._generate_derived_demographic(student) == -1142def test_generate_derived_demographic_amer_ind():143 # Create objects144 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)145 district = hier_gen.generate_district('Big Average', state, ID_GEN)146 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)147 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)148 student.eth_amer_ind = True149 student.eth_asian = False150 student.eth_black = False151 student.eth_hispanic = False152 student.eth_multi = False153 student.eth_none = False154 student.eth_pacific = False155 student.eth_white = False156 # Test157 assert pop_gen._generate_derived_demographic(student) == 4158def test_generate_derived_demographic_asian():159 # Create objects160 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)161 district = hier_gen.generate_district('Big Average', state, ID_GEN)162 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)163 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)164 student.eth_amer_ind = False165 student.eth_asian = True166 student.eth_black = False167 student.eth_hispanic = False168 student.eth_multi = False169 student.eth_none = False170 student.eth_pacific = False171 student.eth_white = False172 # Test173 assert pop_gen._generate_derived_demographic(student) == 2174def test_generate_derived_demographic_black():175 # Create objects176 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)177 district = hier_gen.generate_district('Big Average', state, ID_GEN)178 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)179 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)180 student.eth_amer_ind = False181 student.eth_asian = False182 student.eth_black = True183 student.eth_hispanic = False184 student.eth_multi = False185 student.eth_none = False186 student.eth_pacific = False187 student.eth_white = False188 # Test189 assert pop_gen._generate_derived_demographic(student) == 1190def test_generate_derived_demographic_hispanic():191 # Create objects192 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)193 district = hier_gen.generate_district('Big Average', state, ID_GEN)194 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)195 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)196 student.eth_amer_ind = False197 student.eth_asian = False198 student.eth_black = False199 student.eth_hispanic = True200 student.eth_multi = False201 student.eth_none = False202 student.eth_pacific = False203 student.eth_white = False204 # Test205 assert pop_gen._generate_derived_demographic(student) == 3206def test_generate_derived_demographic_multi():207 # Create objects208 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)209 district = hier_gen.generate_district('Big Average', state, ID_GEN)210 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)211 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)212 student.eth_amer_ind = False213 student.eth_asian = False214 student.eth_black = True215 student.eth_hispanic = False216 student.eth_multi = True217 student.eth_none = False218 student.eth_pacific = True219 student.eth_white = False220 # Test221 assert pop_gen._generate_derived_demographic(student) == 7222def test_generate_derived_demographic_multi_hispanic():223 # Create objects224 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)225 district = hier_gen.generate_district('Big Average', state, ID_GEN)226 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)227 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)228 student.eth_amer_ind = False229 student.eth_asian = False230 student.eth_black = False231 student.eth_hispanic = True232 student.eth_multi = True233 student.eth_none = False234 student.eth_pacific = True235 student.eth_white = False236 # Test237 assert pop_gen._generate_derived_demographic(student) == 3238def test_generate_derived_demographic_none():239 # Create objects240 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)241 district = hier_gen.generate_district('Big Average', state, ID_GEN)242 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)243 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)244 student.eth_amer_ind = False245 student.eth_asian = False246 student.eth_black = False247 student.eth_hispanic = False248 student.eth_multi = False249 student.eth_none = True250 student.eth_pacific = False251 student.eth_white = False252 # Test253 assert pop_gen._generate_derived_demographic(student) == 0254def test_generate_derived_demographic_pacific():255 # Create objects256 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)257 district = hier_gen.generate_district('Big Average', state, ID_GEN)258 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)259 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)260 student.eth_amer_ind = False261 student.eth_asian = False262 student.eth_black = False263 student.eth_hispanic = False264 student.eth_multi = False265 student.eth_none = False266 student.eth_pacific = True267 student.eth_white = False268 # Test269 assert pop_gen._generate_derived_demographic(student) == 5270def test_generate_derived_demographic_white():271 # Create objects272 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)273 district = hier_gen.generate_district('Big Average', state, ID_GEN)274 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)275 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)276 student.eth_amer_ind = False277 student.eth_asian = False278 student.eth_black = False279 student.eth_hispanic = False280 student.eth_multi = False281 student.eth_none = False282 student.eth_pacific = False283 student.eth_white = True284 # Test285 assert pop_gen._generate_derived_demographic(student) == 6286def test_set_lang_items_not_lep():287 # Create objects288 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)289 district = hier_gen.generate_district('Big Average', state, ID_GEN)290 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)291 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)292 student.prg_lep = False293 student.lang_code = None294 student.lang_prof_level = None295 student.lang_title_3_prg = None296 student.prg_lep_entry_date = None297 student.prg_lep_exit_date = None298 pop_gen._set_lang_items(student)299 # Tests300 assert student.lang_code is None301 assert student.lang_prof_level is None302 assert student.lang_title_3_prg is None303 assert student.prg_lep_entry_date is None304 assert student.prg_lep_exit_date is None305def test_set_lang_items_lep():306 # Create objects307 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)308 district = hier_gen.generate_district('Big Average', state, ID_GEN)309 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)310 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)311 student.prg_lep = True312 student.lang_code = None313 student.lang_prof_level = None314 student.lang_title_3_prg = None315 student.prg_lep_entry_date = None316 student.prg_lep_exit_date = None317 pop_gen._set_lang_items(student, lep_proficiency_levels_exit=[])318 # Tests319 assert student.lang_code in sbac_config.LEP_LANGUAGE_CODES320 assert student.lang_prof_level in sbac_config.LEP_PROFICIENCY_LEVELS321 assert student.lang_title_3_prg in sbac_config.LEP_TITLE_3_PROGRAMS322def test_set_lang_items_lep_no_entry_date():323 # Create objects324 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)325 district = hier_gen.generate_district('Big Average', state, ID_GEN)326 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)327 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)328 student.prg_lep = True329 student.lang_code = None330 student.lang_prof_level = None331 student.lang_title_3_prg = None332 student.prg_lep_entry_date = None333 student.prg_lep_exit_date = None334 pop_gen._set_lang_items(student, lep_has_entry_date_rate=0)335 # Tests336 assert student.prg_lep_entry_date is None337def test_set_lang_items_lep_entry_date_not_exited():338 # Create objects339 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)340 district = hier_gen.generate_district('Big Average', state, ID_GEN)341 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)342 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)343 student.prg_lep = True344 student.lang_code = None345 student.lang_prof_level = None346 student.lang_title_3_prg = None347 student.prg_lep_entry_date = None348 student.prg_lep_exit_date = None349 pop_gen._set_lang_items(student, lep_has_entry_date_rate=1, lep_proficiency_levels_exit=[])350 # Tests351 assert student.lang_title_3_prg in sbac_config.LEP_TITLE_3_PROGRAMS352 assert student.prg_lep_entry_date is not None353 assert student.prg_lep_exit_date is None354def test_set_lang_items_lep_entry_date_exited():355 # Create objects356 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)357 district = hier_gen.generate_district('Big Average', state, ID_GEN)358 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)359 student = pop_gen.generate_student(school, 11, ID_GEN, state, 2015)360 student.prg_lep = True361 student.lang_code = None362 student.lang_prof_level = None363 student.lang_title_3_prg = None364 student.prg_lep_entry_date = None365 student.prg_lep_exit_date = None366 pop_gen._set_lang_items(student, lep_has_entry_date_rate=1, lep_proficiency_levels=['good'],367 lep_proficiency_levels_exit=['good'])368 # Tests369 assert student.lang_title_3_prg is None370 assert student.prg_lep_entry_date is not None...
hierarchy_test.py
Source:hierarchy_test.py
1"""2Unit tests for the sbac_data_generation.generators.hierarchy module.3@author: nestep4@date: March 20, 20145"""6import datetime7import sbac_data_generation.generators.hierarchy as hier_gen8from data_generation.util.id_gen import IDGen9from nose.tools import assert_is_instance, assert_raises, assert_regexp_matches10from sbac_data_generation.model.district import SBACDistrict11from sbac_data_generation.model.group import SBACgroup12from sbac_data_generation.model.school import SBACSchool13from sbac_data_generation.model.state import SBACState14ID_GEN = IDGen()15GUID_REGEX = '[a-f0-9]{8}(-[a-f0-9]{4}){3}-[a-f0-9]{12}'16SR_GUID_REGEX = '[a-f0-9]{30}'17def test_generate_state():18 # Create object19 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)20 # Tests21 assert_is_instance(state, SBACState)22 assert state.name == 'Example State'23 assert state.code == 'ES'24 assert_regexp_matches(state.guid_sr, SR_GUID_REGEX)25def test_generate_state_invalid_type():26 assert_raises(LookupError, hier_gen.generate_state, 'unknown', 'Example State', 'ES', ID_GEN)27def test_generate_district():28 # Create objects29 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)30 district = hier_gen.generate_district('Big Average', state, ID_GEN)31 # Tests32 assert_is_instance(district, SBACDistrict)33 assert district.state == state34 assert_regexp_matches(district.guid_sr, SR_GUID_REGEX)35def test_generate_district_invalid_type():36 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)37 assert_raises(LookupError, hier_gen.generate_district, 'unknown', state, ID_GEN)38def test_generate_school():39 # Create objects40 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)41 district = hier_gen.generate_district('Big Average', state, ID_GEN)42 school = hier_gen.generate_school('High School', district, ID_GEN)43 # Tests44 assert_is_instance(school, SBACSchool)45 assert school.district == district46 assert_regexp_matches(school.guid_sr, SR_GUID_REGEX)47def test_generate_school_invalid_type():48 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)49 district = hier_gen.generate_district('Big Average', state, ID_GEN)50 assert_raises(LookupError, hier_gen.generate_school, 'unknown', district, ID_GEN)51def test_generate_group():52 # Create objects53 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)54 district = hier_gen.generate_district('Big Average', state, ID_GEN)55 school = hier_gen.generate_school('High School', district, ID_GEN)56 group = hier_gen.generate_group('section_based', school, ID_GEN)57 # Tests58 assert_is_instance(group, SBACgroup)59 assert group.school == school60 assert_regexp_matches(group.guid_sr, SR_GUID_REGEX)61 assert group.type == 'section_based'62def test_generate_group_invalid_type():63 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)64 district = hier_gen.generate_district('Big Average', state, ID_GEN)65 school = hier_gen.generate_school('High School', district, ID_GEN)66 assert_raises(LookupError, hier_gen.generate_group, 'unknown', school, ID_GEN)67def test_generate_school_no_interims():68 # Create objects69 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)70 district = hier_gen.generate_district('Big Average', state, ID_GEN)71 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=0)72 # Test73 assert not school.takes_interim_asmts74def test_generate_school_interims():75 # Create objects76 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)77 district = hier_gen.generate_district('Big Average', state, ID_GEN)78 school = hier_gen.generate_school('High School', district, ID_GEN, interim_asmt_rate=1)79 # Test80 assert school.takes_interim_asmts81def test_generate_registration_system():82 rs = hier_gen.generate_registration_system(2015, '2014-02-15', ID_GEN)83 assert_regexp_matches(rs.guid, GUID_REGEX)84 assert_regexp_matches(rs.sys_guid, GUID_REGEX)85 assert rs.academic_year == 201586 assert rs.extract_date == '2014-02-15'87 assert rs.callback_url == 'SateTestReg.gov/StuReg/CallBack'88def test_generate_institution_hierarchy():89 # Create objects90 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)91 district = hier_gen.generate_district('Big Average', state, ID_GEN)92 school = hier_gen.generate_school('High School', district, ID_GEN)93 ih = hier_gen.generate_institution_hierarchy(state, district, school, ID_GEN)94 # Tests95 assert_is_instance(ih.rec_id, int)96 assert_regexp_matches(ih.guid, GUID_REGEX)97 assert ih.state == state98 assert ih.district == district99 assert ih.school == school100 assert ih.from_date == datetime.date(2012, 9, 1)101 assert ih.to_date == datetime.date(9999, 12, 31)102def test_sort_schools_by_grade():103 # Create objects104 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)105 district = hier_gen.generate_district('Big Average', state, ID_GEN)106 elem_school_1 = hier_gen.generate_school('Elementary School', district, ID_GEN)107 elem_school_2 = hier_gen.generate_school('Elementary School', district, ID_GEN)108 elem_school_3 = hier_gen.generate_school('Elementary School', district, ID_GEN)109 midl_school_1 = hier_gen.generate_school('Middle School', district, ID_GEN)110 midl_school_2 = hier_gen.generate_school('Middle School', district, ID_GEN)111 high_school = hier_gen.generate_school('High School', district, ID_GEN)112 schools_by_grade = hier_gen.sort_schools_by_grade([elem_school_1, elem_school_2, elem_school_3, midl_school_1,113 midl_school_2, high_school])114 # Tests115 assert len(schools_by_grade.keys()) == 7116 assert len(schools_by_grade[3]) == 3117 assert len(schools_by_grade[4]) == 3118 assert len(schools_by_grade[5]) == 3119 assert len(schools_by_grade[6]) == 2120 assert len(schools_by_grade[7]) == 2121 assert len(schools_by_grade[8]) == 2122 assert len(schools_by_grade[11]) == 1123def test_set_up_schools_with_grades():124 # Create objects125 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)126 district = hier_gen.generate_district('Big Average', state, ID_GEN)127 elem_school_1 = hier_gen.generate_school('Elementary School', district, ID_GEN)128 elem_school_2 = hier_gen.generate_school('Elementary School', district, ID_GEN)129 elem_school_3 = hier_gen.generate_school('Elementary School', district, ID_GEN)130 midl_school_1 = hier_gen.generate_school('Middle School', district, ID_GEN)131 midl_school_2 = hier_gen.generate_school('Middle School', district, ID_GEN)132 high_school = hier_gen.generate_school('High School', district, ID_GEN)133 schools_with_grades = hier_gen.set_up_schools_with_grades([elem_school_1, elem_school_2, elem_school_3,134 midl_school_1, midl_school_2, high_school],135 {3, 4, 5, 6, 7, 8, 11})136 # Tests137 assert len(schools_with_grades) == 6138 assert len(schools_with_grades[elem_school_1]) == 3139 assert len(schools_with_grades[elem_school_2]) == 3140 assert len(schools_with_grades[elem_school_3]) == 3141 assert len(schools_with_grades[midl_school_1]) == 3142 assert len(schools_with_grades[midl_school_2]) == 3143 assert len(schools_with_grades[high_school]) == 1144def test_set_up_schools_with_groupings():145 # Create objects146 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)147 district = hier_gen.generate_district('Big Average', state, ID_GEN)148 elem_school_1 = hier_gen.generate_school('Elementary School', district, ID_GEN)149 elem_school_2 = hier_gen.generate_school('Elementary School', district, ID_GEN)150 midl_school_1 = hier_gen.generate_school('Middle School', district, ID_GEN)151 midl_school_2 = hier_gen.generate_school('Middle School', district, ID_GEN)152 high_school = hier_gen.generate_school('High School', district, ID_GEN)153 schools_with_groupings = hier_gen.set_up_schools_with_groupings([elem_school_1, elem_school_2,154 midl_school_1, midl_school_2, high_school],155 {3, 4, 5, 6, 7, 8, 11})156 # Tests157 assert len(schools_with_groupings) == 5158 assert len(schools_with_groupings[elem_school_1]) == 3159 assert len(schools_with_groupings[elem_school_2]) == 3160 assert len(schools_with_groupings[midl_school_1]) == 3161 assert len(schools_with_groupings[midl_school_2]) == 3162 assert len(schools_with_groupings[high_school]) == 1163def test_populate_schools_with_groupings():164 # Create objects165 state = hier_gen.generate_state('devel', 'Example State', 'ES', ID_GEN)166 district = hier_gen.generate_district('Big Average', state, ID_GEN)167 elem_school_1 = hier_gen.generate_school('Elementary School', district, ID_GEN)168 elem_school_2 = hier_gen.generate_school('Elementary School', district, ID_GEN)169 midl_school_1 = hier_gen.generate_school('Middle School', district, ID_GEN)170 high_school = hier_gen.generate_school('High School', district, ID_GEN)171 schools_with_groupings = hier_gen.set_up_schools_with_groupings([elem_school_1, elem_school_2,172 midl_school_1, high_school],173 {3, 4, 5, 6, 7, 8, 11})174 pop_school_with_groupings = hier_gen.populate_schools_with_groupings(schools_with_groupings, ID_GEN)175 # Tests176 assert len(schools_with_groupings) == 4177 assert len(schools_with_groupings[elem_school_1]) == 3178 assert len(schools_with_groupings[elem_school_2]) == 3179 assert len(schools_with_groupings[midl_school_1]) == 3...
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!