Best Python code snippet using localstack_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...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!