syncing master

This commit is contained in:
Senad Uka
2017-11-21 17:11:29 +01:00
parent 0eee92660a
commit b4e45199b7
47 changed files with 5666 additions and 263 deletions

View File

@@ -367,7 +367,6 @@ class CalculatorTest(unittest.TestCase):
)
self.site.power_stations = [power_station_1, power_station_2]
assert_array_equal(self.subject.compute_bom(), expected)
def test_documentation_bom(self):
@@ -426,7 +425,7 @@ class CalculatorTest(unittest.TestCase):
('512661', 2),
('512662', 4),
('512663', 2),
('512676', 0),
('523923', 0),
('512910', 1),
('513007', 50),
('513299', 0),
@@ -440,8 +439,6 @@ class CalculatorTest(unittest.TestCase):
('513832', 0),
('513833', 670),
('513836', 0),
('513841', 196),
('513842', 196),
('513843', 262),
('513844', 214),
('514056', 1000),
@@ -455,9 +452,9 @@ class CalculatorTest(unittest.TestCase):
('514440', 0),
('514477', 2),
('514478', 0),
('514685', 0),
('514686', 1),
('514687', 0),
('523924', 0),
('523921', 1),
('523922', 0),
('514697', 1),
('514698', 1),
('514865', 50),
@@ -480,19 +477,19 @@ class CalculatorTest(unittest.TestCase):
('520306', 0),
('521031', 2),
('521363', 0),
('521794', 0),
('521795', 0),
('521797', 0),
('521798', 0),
('522020', 0),
('805615', 2),
('521794', 196),
('521795', 196),
('anchors', 262),
('ballast', 6786),
('modules', 1726)
]
assert_array_equal(sorted(self.subject.documentation_bom()), expected)
assert_array_equal(sorted(self.subject.documentation_bom()), sorted(expected))
# Performance Tests

View File

@@ -147,7 +147,7 @@ class EbomCalculatorTest(unittest.TestCase):
whip_tray: 19,
ac_switch: 3,
ac_splice_box: 2,
ethernet_plug: 7.2,
ethernet_plug: 12.600000000000001,
mounting_back_plate: 23,
sunshade_bolt: 4,
sunshade_washer: 4,
@@ -616,6 +616,56 @@ class EbomCalculatorTest(unittest.TestCase):
assert_dictionary_equal(self.subject.compute_ebom(), expected_output)
def test_computes_ebom_with_power_monitor_DELTA_brand(self):
self.user_values.inverter_brands.return_value = [{'inverter_brand_id':2}]
self.user_values.power_monitors.return_value = [{
'monitor_id': 'foo',
'power_source': ('Switch Gear/External', None)
}]
self.user_values.system_type.return_value = SystemType.singleTilt
self.user_values.module_type.return_value = ModuleType.Cell96
expected_output = {
monitor_power_plug: 1,
stump: 0,
cable_support: 0,
cable_support_lid: 0,
rear_skirt: 0,
monitor_controller_480_v:1,
}
assert_dictionary_equal(self.subject.compute_ebom(), expected_output)
def test_computes_ebom_with_power_monitor_SMA_brand(self):
self.user_values.inverter_brands.return_value = [{'inverter_brand_id':1}]
self.user_values.power_monitors.return_value = [{
'monitor_id': 'foo',
'power_source': ('Switch Gear/External', None)
}]
self.user_values.system_type.return_value = SystemType.singleTilt
self.user_values.module_type.return_value = ModuleType.Cell96
expected_output = {
monitor_power_plug: 1,
stump: 0,
cable_support: 0,
cable_support_lid: 0,
rear_skirt: 0,
monitor_controller_480_v:1,
flat_washer: 4,
channel_nut: 4,
hex_nut_three_eighths_16: 2,
front_legs: 1,
back_legs: 1,
inverter_link: 2,
inverter_rail: 1,
rubber_foot: 3,
hex_bolt_1_2: 9,
mounting_back_plate: 1,
}
assert_dictionary_equal(self.subject.compute_ebom(), expected_output)
def test_computes_ebom_with_aux_plugs_on_switchgear_on_pseries_single_tilt(self):
self.user_values.power_stations.return_value = [
{
@@ -1051,3 +1101,58 @@ class EbomCalculatorTest(unittest.TestCase):
self.subject = EbomCalculator(self.user_values, 171, 98, 104)
assert_dictionary_equal(self.subject.compute_ebom(), expected_output_240_pseries)
def test_computes_ebom_with_power_monitor_DELTA_brand(self):
self.user_values.inverter_brands.return_value = [{'inverter_brand_id':2}]
self.user_values.power_monitors.return_value = [{
'monitor_id': 'foo',
'power_source': ('Switch Gear/External', None)
}]
self.user_values.system_type.return_value = SystemType.singleTilt
self.user_values.module_type.return_value = ModuleType.Cell96
expected_output = {
monitor_power_plug: 1,
stump: 0,
cable_support: 0,
cable_support_lid: 0,
rear_skirt: 0,
monitor_controller_480_v: 1,
ethernet_plug: 2,
}
assert_dictionary_equal(self.subject.compute_ebom(), expected_output)
def test_computes_ebom_with_power_monitor_SMA_brand(self):
self.user_values.inverter_brands.return_value = [{'inverter_brand_id':1}]
self.user_values.power_monitors.return_value = [{
'monitor_id': 'foo',
'power_source': ('Switch Gear/External', None)
}]
self.user_values.system_type.return_value = SystemType.singleTilt
self.user_values.module_type.return_value = ModuleType.Cell96
expected_output = {
monitor_power_plug: 1,
stump: 0,
cable_support: 0,
cable_support_lid: 0,
rear_skirt: 0,
monitor_controller_480_v:1,
flat_washer: 4,
channel_nut: 4,
hex_nut_three_eighths_16: 2,
front_legs: 1,
back_legs: 1,
inverter_link: 2,
inverter_rail: 1,
rubber_foot: 3,
hex_bolt_1_2: 9,
mounting_back_plate: 1,
}
assert_dictionary_equal(self.subject.compute_ebom(), expected_output)

View File

@@ -72,8 +72,8 @@ class MechanicalBomCalculatorWhenDualTilt128CellTest(unittest.TestCase):
expected_output = {
wire_clip: 80,
link_tray: 9,
left_deflector: 10,
right_deflector: 10,
left_deflector_1_1: 10,
right_deflector_1_1: 10,
anchor_plate: 12,
cross_tray_1_1: 3,
dual_tilt_chassis: 26,
@@ -98,8 +98,8 @@ class MechanicalBomCalculatorWhenDualTilt128CellTest(unittest.TestCase):
expected_output = {
wire_clip: 80,
link_tray: 9,
left_deflector: 10,
right_deflector: 10,
left_deflector_1_1: 10,
right_deflector_1_1: 10,
anchor_plate: 12,
cross_tray_1_1: 3,
dual_tilt_chassis: 26,

View File

@@ -73,8 +73,8 @@ class MechanicalBomCalculatorWhenDualTilt96CellTest(unittest.TestCase):
expected_output = {
wire_clip: 80,
link_tray: 9,
left_deflector: 10,
right_deflector: 10,
left_deflector_1_1: 10,
right_deflector_1_1: 10,
anchor_plate: 12,
cross_tray: 3,
dual_tilt_chassis: 26,
@@ -99,8 +99,8 @@ class MechanicalBomCalculatorWhenDualTilt96CellTest(unittest.TestCase):
expected_output = {
wire_clip: 80,
link_tray: 18,
left_deflector: 10,
right_deflector: 10,
left_deflector_1_1: 10,
right_deflector_1_1: 10,
anchor_plate: 12,
cross_tray: 3,
dual_tilt_chassis: 26,

View File

@@ -93,8 +93,8 @@ class MechanicalBomCalculatorWhenSingleTilt128CellTest(unittest.TestCase):
following_tray: 6,
link_tray: 28,
spoiler_1_1: 44,
left_deflector: 11,
right_deflector: 11,
left_deflector_1_1: 11,
right_deflector_1_1: 11,
anchor_plate: 15,
cross_tray_1_1: 5,
rubber_foot: 4.4,

View File

@@ -93,8 +93,8 @@ class MechanicalBomCalculatorWhenSingleTilt96CellTest(unittest.TestCase):
following_tray: 25,
link_tray: 28,
spoiler: 44,
left_deflector: 11,
right_deflector: 11,
left_deflector_1_1: 11,
right_deflector_1_1: 11,
anchor_plate: 15,
cross_tray: 5,
rubber_foot: 4.4,

View File

@@ -574,12 +574,12 @@
},
{
"name" : "total_513841",
"name" : "total_521794",
"value" : "someValue"
},
{
"name" : "total_513842",
"name" : "total_521795",
"value" : "someValue"
},

View File

@@ -0,0 +1,18 @@
HANDLE BLOCKNAME WIND POS SUBARRAY PSF BAL LTRAY XTRAY ANC ID XCOORD YCOORD ANGLE
'B247D *U6006 A 1 1 2.4 0 2 - 1 1 30043.319 -61598.761 2.534306
'B245F *U6006 A 2 1 2.4 0 2 - S 2 29955.165 -61602.663 2.534306
'B2441 *U6006 A 2 1 2.4 0 2 - S 3 29867.012 -61606.565 2.534306
'B2423 *U6006 A 1 1 2.4 0 2 - 1 4 29778.858 -61610.467 2.534306
'B2405 *U6006 A 3 1 2.26 0 1 - S 5 30046.068 -61660.86 2.534306
'B23E7 *U6006 A 4 1 5.94 10 1 - - 6 29957.914 -61664.762 2.534306
'B23C9 *U6006 A 4 1 5.94 10 1 - - 7 29869.76 -61668.664 2.534306
'B23AB *U6006 A 3 1 8.9 18 1 1 - 8 29781.607 -61672.566 2.534306
'B238D *U6007 A 3 1 8.9 18 1 1 - 9 30048.816 -61722.96 2.534306
'B236F *U6007 A 4 1 5.94 10 1 - - 10 29960.663 -61726.861 2.534306
'B2351 *U6007 A 4 1 5.94 10 1 - - 11 29872.509 -61730.763 2.534306
'B2333 *U6007 A 3 1 8.9 18 1 1 - 12 29784.355 -61734.665 2.534306
'B2315 *U6007 A 1 1 2.4 0 2 - 1 13 30051.565 -61785.059 2.534306
'B22F7 *U6007 A 2 1 2.4 0 2 - S 14 29963.411 -61788.961 2.534306
'B22D9 *U6007 A 2 1 2.4 0 2 - S 15 29875.258 -61792.862 2.534306
'B22B6 *U6007 A 1 1 2.4 0 2 - 1 16 29787.104 -61796.764 2.534306

View File

@@ -1,8 +1,6 @@
Part # Description Total
512200 CLIP, WIRE FORMED, CABLE MANAGEMENT, INSIDE, 352MM ^ 2 3480
513833 TRAY, LINK, HELIX ROOF 670
513841 DEFLECTOR, LH, HELIX ROOF 196
513842 DEFLECTOR, RH, HELIX ROOF 196
513843 PLATE, ANCHOR, HELIX ROOF 262
513844 TRAY, OPTIONAL BALLAST, HELIX ROOF 214
514056 BASE, CHASSIS, DUAL TILT, HELIX ROOF 1000
@@ -12,6 +10,8 @@ Part # Description Total
515928 FRONT SKIRT, HELIX ROOF 261
517871 TRAY, LEADING, HELIX ROOF, RIVETED VERSION 139
518477 WASHER, FLAT, 3/8, 1.00 OD, 18-8 SS 275
521794 DEFLECTOR, LH, HELIX ROOF V1.1 196
521795 DEFLECTOR, RH, HELIX ROOF V1.1 196
Contractor Supplied Ballast Blocks 6786
TBD Anchors 262
TBD Modules 1726
1 Part # Description Total
2 512200 CLIP, WIRE FORMED, CABLE MANAGEMENT, INSIDE, 352MM ^ 2 3480
3 513833 TRAY, LINK, HELIX ROOF 670
513841 DEFLECTOR, LH, HELIX ROOF 196
513842 DEFLECTOR, RH, HELIX ROOF 196
4 513843 PLATE, ANCHOR, HELIX ROOF 262
5 513844 TRAY, OPTIONAL BALLAST, HELIX ROOF 214
6 514056 BASE, CHASSIS, DUAL TILT, HELIX ROOF 1000
10 515928 FRONT SKIRT, HELIX ROOF 261
11 517871 TRAY, LEADING, HELIX ROOF, RIVETED VERSION 139
12 518477 WASHER, FLAT, 3/8, 1.00 OD, 18-8 SS 275
13 521794 DEFLECTOR, LH, HELIX ROOF V1.1 196
14 521795 DEFLECTOR, RH, HELIX ROOF V1.1 196
15 Contractor Supplied Ballast Blocks 6786
16 TBD Anchors 262
17 TBD Modules 1726

View File

@@ -10,13 +10,10 @@
512661 BACK LEGS, INVERTER RACK, HELIX ROOF 18
512662 LINK TO ARRAY, INVERTER RACK, HELIX ROOF 36
512663 RAIL, INVERTER RACK, HELIX ROOF 18
512676 INVERTER, SMA, STP, 20000TL-US-10 (SPR-20000m-3 XXX), AFCI, CONNECTORIZED 3
513007 BOLT, HH, 3/8-16 X 3/4, 316 SS 50
513299 COMBINER BOX, AC, 4 INPUT, NO AUX, W/ CONNECTOR 3
513303 COMBINER BOX, AC, 2 INPUT, NO AUX, W/ CONNECTOR 1
513833 TRAY, LINK, HELIX ROOF 670
513841 DEFLECTOR, LH, HELIX ROOF 196
513842 DEFLECTOR, RH, HELIX ROOF 196
513843 PLATE, ANCHOR, HELIX ROOF 262
513844 TRAY, OPTIONAL BALLAST, HELIX ROOF 214
514056 BASE, CHASSIS, DUAL TILT, HELIX ROOF 1000
@@ -30,9 +27,6 @@
514440 HARNESS, DC COMBINATION, W/ FUSE, 4 STRING, MALES TO FEMALE, HELIX 15
514477 HARNESS, AC, INNER, 72", HELIX ROOFTOP 8
514478 HARNESS, AC, OUTER, 108", HELIX ROOFTOP 6
514685 INVERTER, SMA, STP, 24000TL-US-10 (SPR-24000m-3 XXX), AFCI, CONNECTORIZED 9
514686 INVERTER, SMA, STP, 12000TL-US-10 (SPR-12000m-3 XXX), AFCI, CONNECTORIZED 1
514687 INVERTER, SMA, STP, 15000TL-US-10 (SPR-15000m-3 XXX), AFCI, CONNECTORIZED 1
514697 COMM CABLE, INVERTER DAISY CHAIN, 118", HELIX ROOF 10
514865 BOLT, HH, 3/8-16 X 1/2, 18-8 SS 300
515059 ASSY, WHIP TRAY W/FUSE CLIPS, INVERTER, HELIX 14
@@ -42,6 +36,12 @@
518058 CONNECTOR, ETHERNET, PLUG, RJ-45, WEATHERPROOF, SHIELDED 8
518331 MOUNTING BACK PLATE, INVERTER/PANEL BOARD, HELIX ROOF/TRACKER 18
518477 WASHER, FLAT, 3/8, 1.00 OD, 18-8 SS 275
521794 DEFLECTOR, LH, HELIX ROOF V1.1 196
521795 DEFLECTOR, RH, HELIX ROOF V1.1 196
523921 INVERTER, SMA, STP, 20000TL-US-10 (SPR-20000m-3-H), AFCI, CONNECTORIZED, UTX XL REV D DC CONNECTORS 1
523922 INVERTER, SMA, STP, 24000TL-US-10 (SPR-24000m-3-H), AFCI, CONNECTORIZED, UTX XL REV D DC CONNECTORS 1
523923 INVERTER, SMA, STP, 12000TL-US-10 (SPR-12000m-3-H), AFCI, CONNECTORIZED, UTX XL REV D DC CONNECTORS 3
523924 INVERTER, SMA, STP, 15000TL-US-10 (SPR-15000m-3-H), AFCI, CONNECTORIZED, UTX XL REV D DC CONNECTORS 9
Contractor Supplied Ballast Blocks 6786
TBD Anchors 262
TBD Modules 1726
Can't render this file because it contains an unexpected character in line 28 and column 30.

View File

@@ -27,8 +27,6 @@ Part # Description Total
513832 TRAY, FOLLOWING, HELIX ROOF 210
513833 TRAY, LINK, HELIX ROOF 1271
513836 SPOILER, SINGLE TILT, HELIX ROOF 1632
513841 DEFLECTOR, LH, HELIX ROOF 171
513842 DEFLECTOR, RH, HELIX ROOF 171
513843 PLATE, ANCHOR, HELIX ROOF 414
513844 TRAY, OPTIONAL BALLAST, HELIX ROOF 274
514265 FOOT, RECYCLED RUBBER, HELIX ROOF 230
@@ -40,9 +38,6 @@ Part # Description Total
514440 HARNESS, DC COMBINATION, W/ FUSE, 4 STRING, MALES TO FEMALE, HELIX 11
514477 HARNESS, AC, INNER, 72", HELIX ROOFTOP 12
514478 HARNESS, AC, OUTER, 108", HELIX ROOFTOP 2
514685 INVERTER, SMA, STP, 24000TL-US-10 (SPR-24000m-3 XXX), AFCI, CONNECTORIZED 6
514686 INVERTER, SMA, STP, 12000TL-US-10 (SPR-12000m-3 XXX), AFCI, CONNECTORIZED 6
514687 INVERTER, SMA, STP, 15000TL-US-10 (SPR-15000m-3 XXX), AFCI, CONNECTORIZED 3
514697 COMM CABLE, INVERTER DAISY CHAIN, 118", HELIX ROOF 8
514698 DC SWITCH BOX, HELIX 5
514865 BOLT, HH, 3/8-16 X 1/2, 18-8 SS 350
@@ -52,10 +47,15 @@ Part # Description Total
516043 AC SWITCH, CONNECTORIZED, HELIX ROOF 2
516045 AC SPLICE BOX, CONNECTORIZED, HELIX ROOF 1
517871 TRAY, LEADING, HELIX ROOF, RIVETED VERSION 210
518058 CONNECTOR, ETHERNET, PLUG, RJ-45, WEATHERPROOF, SHIELDED 11
518058 CONNECTOR, ETHERNET, PLUG, RJ-45, WEATHERPROOF, SHIELDED 15
518331 MOUNTING BACK PLATE, INVERTER/PANEL BOARD, HELIX ROOF/TRACKER 22
518477 WASHER, FLAT, 3/8, 1.00 OD, 18-8 SS 425
521031 WASHER, FLAT, M10 X 20MM OD, SS 10
521794 DEFLECTOR, LH, HELIX ROOF V1.1 171
521795 DEFLECTOR, RH, HELIX ROOF V1.1 171
523921 INVERTER, SMA, STP, 20000TL-US-10 (SPR-20000m-3-H), AFCI, CONNECTORIZED, UTX XL REV D DC CONNECTORS 6
523922 INVERTER, SMA, STP, 24000TL-US-10 (SPR-24000m-3-H), AFCI, CONNECTORIZED, UTX XL REV D DC CONNECTORS 3
523924 INVERTER, SMA, STP, 15000TL-US-10 (SPR-15000m-3-H), AFCI, CONNECTORIZED, UTX XL REV D DC CONNECTORS 6
805615 SCREW, HEXAGONAL HEAD, M10X20, SS A2 10
Contractor Supplied Ballast Blocks 10150
TBD Anchors 414
Can't render this file because it contains an unexpected character in line 10 and column 30.

View File

@@ -0,0 +1,3 @@
HANDLE BLOCKNAME WIND POS SUBARRAY PSF BAL LTRAY XTRAY ANC ID XCOORD YCOORD ANGLE
'40EC39 *U5399 A 1 1 2.4 0 2 - 1 1 0 0 0
'40EC22 *U5402 A 1 1 2.4 0 2 - 1 2 0 0 0

View File

@@ -0,0 +1,4 @@
HANDLE BLOCKNAME WIND POS SUBARRAY PSF BAL LTRAY XTRAY ANC ID XCOORD YCOORD ANGLE
'40EC39 *U5399 A 1 1 2.4 0 2 - 1 1 0 0 0
'40EC22 *U5402 A 1 1 2.4 0 2 - 1 2 0 0 0
1 HANDLE BLOCKNAME WIND POS SUBARRAY PSF BAL LTRAY XTRAY ANC ID XCOORD YCOORD ANGLE
2 '40EC39 *U5399 A 1 1 2.4 0 2 - 1 1 0 0 0
3 '40EC22 *U5402 A 1 1 2.4 0 2 - 1 2 0 0 0

289
test/fixtures/invalid_too_close.txt vendored Normal file
View File

@@ -0,0 +1,289 @@
HANDLE BLOCKNAME WIND POS SUBARRAY PSF BAL LTRAY XTRAY ANC ID XCOORD YCOORD ANGLE
'1A9103 *U5693 A 1 15 2.4 0 2 - 1 1 128094.142 122996.9 0.0
'1A90DD *U5695 A 3 15 10.77 23 1 2 - 2 128094.142 123059.06 0.0
'1A90B7 *U5695 A 3 15 2.26 0 1 - S 3 128094.142 123121.22 0.0
'1A9091 *U5695 A 3 15 2.26 0 1 - S 4 128094.142 123183.38 0.0
'1A906B *U5695 A 3 15 10.77 23 1 2 - 5 128094.142 123245.54 0.0
'1A9045 *U5693 A 1 15 2.4 0 2 - 1 6 128094.142 123307.7 0.0
'1A900B *U5693 A 1 17 2.4 0 2 - 1 7 125981.9 123804.98 0.0
'1A8FE2 *U5695 B 3 12 2.26 0 1 - S 8 126246.62 123804.98 0.0
'1A8FBC *U5693 B 1 12 9.43 19 2 1 - 9 126158.38 123556.34 0.0
'1A8F96 *U5693 B 1 12 2.4 0 2 - S 10 126158.38 123494.18 0.0
'1A8F70 *U5693 A 1 13 2.4 0 2 - 1 11 126438.62 124426.58 0.0
'1A8F4A *U5693 B 1 13 2.4 0 2 - S 12 126791.58 124177.94 0.0
'1A8ECF *U5693 B 1 14 9.43 19 2 1 - 13 127232.78 123059.06 0.0
'1A8EA9 *U5695 B 3 14 7.81 15 1 1 - 14 127232.78 123121.22 0.0
'1A8E83 *U5694 A 2 15 2.4 0 2 - S 15 128005.902 122996.9 0.0
'1A8E37 *U5682 A 4 15 7.81 15 2 1 - 16 128005.902 123059.06 0.0
'1A8E11 *U5693 B 1 14 9.43 19 2 1 - 17 127585.74 123680.66 0.0
'1A8DEB *U5694 B 2 14 7.93 15 2 - - 18 127497.5 123307.7 0.0
'1A8DC5 *U5693 B 1 13 9.43 19 2 1 - 19 126615.1 124240.1 0.0
'1A8D9F *U5693 B 1 13 2.4 0 2 - S 20 126615.1 124302.26 0.0
'1A8D79 *U5693 B 1 13 2.4 0 2 - S 21 126879.82 124115.78 0.0
'1A8D53 *U5695 A 3 12 2.26 0 1 - S 22 125981.9 124115.78 0.0
'1A8D2D *U5695 A 3 13 10.77 23 1 2 - 23 126438.62 124115.78 0.0
'1A8D07 *U5695 A 3 13 2.26 0 1 - S 24 126438.62 124364.42 0.0
'1A8CE1 *U5682 B 4 12 2.26 0 - - S 25 126246.62 123494.18 0.0
'1A8CBB *U5695 B 3 13 7.81 15 1 1 - 26 126438.62 123742.82 0.0
'1A8C95 *U5695 A 3 13 10.77 23 1 2 - 27 126438.62 123369.86 0.0
'1A8C6F *U5693 A 1 12 2.4 0 2 - 1 28 126246.62 122996.9 0.0
'1A8C49 *U5693 A 1 12 2.4 0 2 - 1 29 126334.86 122996.9 0.0
'1A8C23 *U5693 A 1 13 2.4 0 2 - 1 30 126438.62 122996.9 0.0
'1A8BFD *U5693 B 1 13 2.4 0 2 - S 31 126526.86 122996.9 0.0
'1A8BD7 *U5695 A 3 13 2.26 0 1 - S 32 126438.62 123059.06 0.0
'1A8BB1 *U5695 B 3 13 2.26 0 1 - S 33 126526.86 123059.06 0.0
'1A8B8B *U5695 B 3 13 7.81 15 1 1 - 34 126526.86 123121.22 0.0
'1A8B65 *U5695 A 3 13 10.77 23 1 2 - 35 126438.62 123121.22 0.0
'1A8B3F *U5682 B 4 13 5.58 9 2 - - 36 126879.82 123121.22 0.0
'1A8B19 *U5682 B 4 13 5.58 9 2 - - 37 126879.82 123369.86 0.0
'1A7874 *U5693 A 1 11 2.4 0 2 - 1 38 125962.34 122948.6 0.0
'1A784E *U5695 A 3 11 10.77 23 1 2 - 39 125962.34 123010.76 0.0
'1A7828 *U5695 A 3 11 2.26 0 1 - S 40 125962.34 123072.92 0.0
'1A7802 *U5694 A 2 11 2.4 0 2 - S 41 125874.1 122948.6 0.0
'1A77DC *U5695 A 3 11 10.77 23 1 2 - 42 125785.86 123010.76 0.0
'1A77B6 *U5695 A 3 11 10.77 23 1 2 - 43 125785.86 123072.92 0.0
'1A7790 *U5694 A 2 11 2.4 0 2 - S 44 125785.86 122948.6 0.0
'1A776A *U5693 A 1 11 2.4 0 2 - 1 45 125697.62 123321.56 0.0
'1A7744 *U5693 A 1 11 2.4 0 2 - 1 46 125962.34 123321.56 0.0
'1A771E *U5693 A 1 11 2.4 0 2 - 1 47 125697.62 122948.6 0.0
'1A76F8 *U5695 A 3 11 10.77 23 1 2 - 48 125697.62 123010.76 0.0
'1A76D2 *U5695 A 3 11 10.77 23 1 2 - 49 125697.62 123072.92 0.0
'1A7094 *U5682 B 4 13 5.58 9 2 - - 50 126879.82 123059.06 0.0
'1A706E *U5695 B 3 13 7.81 15 1 1 - 51 126791.58 123059.06 0.0
'1A7048 *U5695 B 3 13 7.81 15 1 1 - 52 126791.58 123121.22 0.0
'1A6FFC *U5695 B 3 13 7.81 15 1 1 - 53 126968.06 123059.06 0.0
'1A6FD6 *U5695 B 3 13 2.26 0 1 - S 54 126968.06 123121.22 0.0
'1A6F64 *U5693 B 1 13 2.4 0 2 - S 55 126791.58 122996.9 0.0
'1A6F3B *U5693 B 1 13 2.4 0 2 - S 56 126968.06 122996.9 0.0
'1A6F15 *U5695 A 3 12 10.77 23 1 2 - 57 126334.86 123059.06 0.0
'1A6EEF *U5695 A 3 12 10.77 23 1 2 - 58 126334.86 123121.22 0.0
'1A6EC9 *U5694 B 2 13 7.93 15 2 - - 59 126879.82 122996.9 0.0
'1A6EA3 *U5695 A 3 12 2.26 0 1 - S 60 126246.62 123059.06 0.0
'1A6E7D *U5695 A 3 12 10.77 23 1 2 - 61 126246.62 123121.22 0.0
'1A6D0B *U5695 A 3 17 10.77 23 1 2 - 62 127829.422 123494.18 0.0
'1A6CE5 *U5695 A 3 17 10.77 23 1 2 - 63 127409.26 123742.82 0.0
'1A6CBF *U5695 A 3 18 10.77 23 1 2 - 64 126158.38 123991.46 0.0
'1A6C99 *U5693 A 1 18 2.4 0 2 - 1 65 126070.14 123991.46 0.0
'1A6C73 *U5695 B 3 13 7.81 15 1 1 - 66 126791.58 124115.78 0.0
'1A6C27 *U5693 B 1 13 2.4 0 2 - S 67 126526.86 124364.42 0.0
'1A6BB5 *U5695 B 3 13 7.81 15 1 1 - 68 126968.06 123369.86 0.0
'1A6B8F *U5695 B 3 12 7.81 15 1 1 - 69 126334.86 123494.18 0.0
'1A696E *U5695 B 3 12 7.81 15 1 1 - 70 126334.86 123804.98 0.0
'1A67DF *U5693 A 1 17 2.4 0 2 - 1 71 128182.382 123307.7 0.0
'1A67B9 *U5693 A 1 18 2.4 0 2 - 1 72 126158.38 123432.02 0.0
'197EB9 *U5693 B 1 14 9.43 19 2 1 - 73 127585.74 123307.7 0.0
'194556 *U5682 A 4 15 7.81 15 2 1 - 74 128005.902 123121.22 0.0
'194530 *U5682 A 4 15 7.81 15 2 1 - 75 128005.902 123183.38 0.0
'19450A *U5682 A 4 15 7.81 15 2 1 - 76 128005.902 123245.54 0.0
'1944E4 *U5694 A 2 15 2.4 0 2 - S 77 128005.902 123307.7 0.0
'1947B6 *U5694 A 2 15 2.4 0 2 - S 78 127917.662 122996.9 0.0
'194790 *U5682 A 4 15 7.81 15 2 1 - 79 127917.662 123059.06 0.0
'19476A *U5682 A 4 15 7.81 15 2 1 - 80 127917.662 123121.22 0.0
'194744 *U5682 A 4 15 7.81 15 2 1 - 81 127917.662 123183.38 0.0
'19471E *U5682 A 4 15 7.81 15 2 1 - 82 127917.662 123245.54 0.0
'1946F8 *U5682 A 4 15 2.26 0 - - S 83 127917.662 123307.7 0.0
'1946D2 *U5695 B 3 15 7.81 15 1 1 - 84 127917.662 123369.86 0.0
'1946AC *U5693 B 1 15 2.4 0 2 - S 85 127917.662 123432.02 0.0
'194686 *U5693 A 1 15 2.4 0 2 - 1 86 127829.422 122996.9 0.0
'194660 *U5695 A 3 15 2.26 0 1 - S 87 127829.422 123059.06 0.0
'19463A *U5695 A 3 15 10.77 23 1 2 - 88 127829.422 123121.22 0.0
'194614 *U5695 A 3 15 10.77 23 1 2 - 89 127829.422 123183.38 0.0
'1945EE *U5695 A 3 15 2.26 0 1 - S 90 127829.422 123245.54 0.0
'1945C8 *U5695 A 3 15 10.77 23 1 2 - 91 127829.422 123307.7 0.0
'1945A2 *U5695 B 3 15 2.26 0 1 - S 92 127829.422 123369.86 0.0
'19457C *U5693 B 1 15 2.4 0 2 - S 93 127829.422 123432.02 0.0
'194828 *U5694 A 2 18 10.89 23 2 1 - 94 127144.54 123618.5 0.0
'194802 *U5693 B 1 14 9.43 19 2 1 - 95 127321.02 123742.82 0.0
'1947DC *U5693 B 1 14 9.43 19 2 1 - 96 127232.78 123742.82 0.0
'194874 *U5695 B 3 14 7.81 15 1 1 - 97 127232.78 123183.38 0.0
'19484E *U5695 B 3 14 7.81 15 1 1 - 98 127232.78 123245.54 0.0
'1948C0 *U5695 A 3 18 10.77 23 1 2 - 99 127144.54 123494.18 0.0
'19489A *U5693 A 1 17 2.4 0 2 - 1 100 127144.54 123556.34 0.0
'194932 *U5694 B 2 14 7.93 15 2 - - 101 127409.26 123307.7 0.0
'19490C *U5694 B 2 14 7.93 15 2 - - 102 127321.02 123307.7 0.0
'1948E6 *U5695 B 3 14 7.81 15 1 1 - 103 127232.78 123307.7 0.0
'194CE8 *U5695 B 3 14 7.81 15 1 1 - 104 127585.74 123369.86 0.0
'194CC2 *U5695 B 3 14 7.81 15 1 1 - 105 127585.74 123432.02 0.0
'194C9C *U5695 B 3 14 7.81 15 1 1 - 106 127585.74 123494.18 0.0
'194C76 *U5695 B 3 14 7.81 15 1 1 - 107 127585.74 123556.34 0.0
'194C50 *U5695 B 3 14 7.81 15 1 1 - 108 127585.74 123618.5 0.0
'194C2A *U5682 B 4 14 5.58 9 2 - - 109 127497.5 123369.86 0.0
'194C04 *U5682 B 4 14 5.58 9 2 - - 110 127497.5 123432.02 0.0
'194BDE *U5682 B 4 14 5.58 9 2 - - 111 127497.5 123494.18 0.0
'194BB8 *U5682 B 4 14 5.58 9 2 - - 112 127497.5 123556.34 0.0
'194B92 *U5682 B 4 14 5.58 9 2 - - 113 127497.5 123618.5 0.0
'194B6C *U5682 B 4 14 5.58 9 2 - - 114 127409.26 123369.86 0.0
'194B46 *U5682 B 4 14 5.58 9 2 - - 115 127409.26 123432.02 0.0
'194B20 *U5682 B 4 14 5.58 9 2 - - 116 127409.26 123494.18 0.0
'194AFA *U5682 B 4 14 5.58 9 2 - - 117 127409.26 123556.34 0.0
'194AD4 *U5682 B 4 14 5.58 9 2 - - 118 127409.26 123618.5 0.0
'194AAE *U5682 B 4 14 5.58 9 2 - - 119 127321.02 123369.86 0.0
'194A88 *U5682 B 4 14 5.58 9 2 - - 120 127321.02 123432.02 0.0
'194A62 *U5682 B 4 14 5.58 9 2 - - 121 127321.02 123494.18 0.0
'194A3C *U5682 B 4 14 5.58 9 2 - - 122 127321.02 123556.34 0.0
'194A16 *U5682 B 4 14 5.58 9 2 - - 123 127321.02 123618.5 0.0
'1949F0 *U5695 B 3 14 7.81 15 1 1 - 124 127232.78 123369.86 0.0
'1949CA *U5695 B 3 14 7.81 15 1 1 - 125 127232.78 123432.02 0.0
'1949A4 *U5695 B 3 14 7.81 15 1 1 - 126 127232.78 123494.18 0.0
'19497E *U5695 B 3 14 7.81 15 1 1 - 127 127232.78 123556.34 0.0
'194958 *U5695 B 3 14 7.81 15 1 1 - 128 127232.78 123618.5 0.0
'194D80 *U5694 B 2 14 7.93 15 2 - - 129 127497.5 123680.66 0.0
'194D5A *U5694 B 2 14 7.93 15 2 - - 130 127409.26 123680.66 0.0
'194D34 *U5682 B 4 14 5.58 9 2 - - 131 127321.02 123680.66 0.0
'194D0E *U5695 B 3 14 7.81 15 1 1 - 132 127232.78 123680.66 0.0
'194E8A *U5695 B 3 13 2.26 0 1 - S 133 126526.86 124115.78 0.0
'194F6E *U5695 B 3 13 7.81 15 1 1 - 134 126526.86 124177.94 0.0
'194F48 *U5682 B 4 13 2.26 0 - - S 135 126526.86 124240.1 0.0
'194F22 *U5682 B 4 13 5.58 9 2 - - 136 126526.86 124302.26 0.0
'194EFC *U5695 A 3 13 2.26 0 1 - S 137 126438.62 124177.94 0.0
'194ED6 *U5695 A 3 13 10.77 23 1 2 - 138 126438.62 124240.1 0.0
'194EB0 *U5695 A 3 13 10.77 23 1 2 - 139 126438.62 124302.26 0.0
'194FBA *U5695 A 3 12 10.77 23 1 2 - 140 125981.9 124053.62 0.0
'194F94 *U5695 B 3 13 2.26 0 1 - S 141 126526.86 123369.86 0.0
'195052 *U5695 B 3 13 2.26 0 1 - S 142 126526.86 123991.46 0.0
'19502C *U5695 B 3 13 7.81 15 1 1 - 143 126526.86 124053.62 0.0
'195006 *U5695 B 3 13 2.26 0 1 - S 144 126438.62 123991.46 0.0
'194FE0 *U5695 A 3 13 10.77 23 1 2 - 145 126438.62 124053.62 0.0
'195136 *U5695 B 3 13 2.26 0 1 - S 146 126526.86 123183.38 0.0
'195110 *U5695 B 3 13 2.26 0 1 - S 147 126526.86 123245.54 0.0
'1950EA *U5695 B 3 13 7.81 15 1 1 - 148 126526.86 123307.7 0.0
'1950C4 *U5695 A 3 13 10.77 23 1 2 - 149 126438.62 123183.38 0.0
'19509E *U5695 A 3 13 2.26 0 1 - S 150 126438.62 123245.54 0.0
'195078 *U5695 A 3 13 10.77 23 1 2 - 151 126438.62 123307.7 0.0
'19515C *U5695 B 3 13 2.26 0 1 - S 152 126438.62 123804.98 0.0
'1951A8 *U5695 B 3 13 2.26 0 1 - S 153 126526.86 123432.02 0.0
'195182 *U5695 A 3 13 2.26 0 1 - S 154 126438.62 123432.02 0.0
'195240 *U5695 B 3 13 7.81 15 1 1 - 155 126526.86 123618.5 0.0
'19521A *U5695 B 3 13 2.26 0 1 - S 156 126526.86 123680.66 0.0
'1951F4 *U5695 B 3 13 2.26 0 1 - S 157 126438.62 123618.5 0.0
'1951CE *U5695 B 3 13 7.81 15 1 1 - 158 126438.62 123680.66 0.0
'195266 *U5695 B 3 13 7.81 15 1 1 - 159 126526.86 123742.82 0.0
'1954A0 *U5695 B 3 13 7.81 15 1 1 - 160 126968.06 123183.38 0.0
'19547A *U5695 B 3 13 7.81 15 1 1 - 161 126968.06 123245.54 0.0
'195454 *U5695 B 3 13 2.26 0 1 - S 162 126968.06 123307.7 0.0
'19542E *U5682 B 4 13 5.58 9 2 - - 163 126879.82 123183.38 0.0
'195408 *U5682 B 4 13 5.58 9 2 - - 164 126879.82 123245.54 0.0
'1953E2 *U5682 B 4 13 5.58 9 2 - - 165 126879.82 123307.7 0.0
'1953BC *U5695 B 3 13 2.26 0 1 - S 166 126791.58 123183.38 0.0
'195396 *U5695 B 3 13 7.81 15 1 1 - 167 126791.58 123245.54 0.0
'195370 *U5695 B 3 13 7.81 15 1 1 - 168 126791.58 123307.7 0.0
'1954C6 *U5695 B 3 13 2.26 0 1 - S 169 126791.58 123369.86 0.0
'1955F6 *U5694 B 2 13 7.93 15 2 - - 170 126703.34 123494.18 0.0
'1955D0 *U5694 B 2 13 2.4 0 2 - S 171 126703.34 123556.34 0.0
'1955AA *U5694 B 2 13 2.4 0 2 - S 172 126615.1 123494.18 0.0
'195584 *U5694 B 2 13 7.93 15 2 - - 173 126615.1 123556.34 0.0
'19555E *U5682 B 4 13 2.26 0 - - S 174 126526.86 123494.18 0.0
'195538 *U5682 B 4 13 2.26 0 - - S 175 126526.86 123556.34 0.0
'195512 *U5695 B 3 13 7.81 15 1 1 - 176 126438.62 123494.18 0.0
'1954EC *U5695 B 3 13 7.81 15 1 1 - 177 126438.62 123556.34 0.0
'195830 *U5695 B 3 13 7.81 15 1 1 - 178 126968.06 123432.02 0.0
'19580A *U5695 B 3 13 2.26 0 1 - S 179 126968.06 123494.18 0.0
'1957E4 *U5695 B 3 13 7.81 15 1 1 - 180 126968.06 123556.34 0.0
'1957BE *U5695 B 3 13 7.81 15 1 1 - 181 126968.06 123618.5 0.0
'195798 *U5693 B 1 13 2.4 0 2 - S 182 126968.06 123680.66 0.0
'195772 *U5682 B 4 13 5.58 9 2 - - 183 126879.82 123432.02 0.0
'19574C *U5682 B 4 13 5.58 9 2 - - 184 126879.82 123494.18 0.0
'195726 *U5682 B 4 13 5.58 9 2 - - 185 126879.82 123556.34 0.0
'195700 *U5682 B 4 13 5.58 9 2 - - 186 126879.82 123618.5 0.0
'1956DA *U5694 B 2 13 2.4 0 2 - S 187 126879.82 123680.66 0.0
'1956B4 *U5695 B 3 13 7.81 15 1 1 - 188 126791.58 123432.02 0.0
'19568E *U5682 B 4 13 2.26 0 - - S 189 126791.58 123494.18 0.0
'195668 *U5682 B 4 13 5.58 9 2 - - 190 126791.58 123556.34 0.0
'195642 *U5695 B 3 13 2.26 0 1 - S 191 126791.58 123618.5 0.0
'19561C *U5693 B 1 13 9.43 19 2 1 - 192 126791.58 123680.66 0.0
'195856 *U5695 B 3 13 7.81 15 1 1 - 193 126526.86 123804.98 0.0
'195986 *U5694 B 2 13 7.93 15 2 - - 194 126703.34 123867.14 0.0
'195960 *U5694 B 2 13 7.93 15 2 - - 195 126703.34 123929.3 0.0
'19593A *U5694 B 2 13 2.4 0 2 - S 196 126615.1 123867.14 0.0
'195914 *U5694 B 2 13 2.4 0 2 - S 197 126615.1 123929.3 0.0
'1958EE *U5682 B 4 13 2.26 0 - - S 198 126526.86 123867.14 0.0
'1958C8 *U5682 B 4 13 5.58 9 2 - - 199 126526.86 123929.3 0.0
'1958A2 *U5695 B 3 13 7.81 15 1 1 - 200 126438.62 123867.14 0.0
'19587C *U5695 B 3 13 7.81 15 1 1 - 201 126438.62 123929.3 0.0
'195BC0 *U5693 B 1 13 2.4 0 2 - S 202 126968.06 123804.98 0.0
'195B9A *U5695 B 3 13 7.81 15 1 1 - 203 126968.06 123867.14 0.0
'195B74 *U5695 B 3 13 2.26 0 1 - S 204 126968.06 123929.3 0.0
'195B4E *U5695 B 3 13 7.81 15 1 1 - 205 126968.06 123991.46 0.0
'195B28 *U5693 B 1 13 2.4 0 2 - S 206 126968.06 124053.62 0.0
'195B02 *U5694 B 2 13 7.93 15 2 - - 207 126879.82 123804.98 0.0
'195ADC *U5682 B 4 13 5.58 9 2 - - 208 126879.82 123867.14 0.0
'195AB6 *U5682 B 4 13 5.58 9 2 - - 209 126879.82 123929.3 0.0
'195A90 *U5682 B 4 13 5.58 9 2 - - 210 126879.82 123991.46 0.0
'195A6A *U5682 B 4 13 5.58 9 2 - - 211 126879.82 124053.62 0.0
'195A44 *U5693 B 1 13 2.4 0 2 - S 212 126791.58 123804.98 0.0
'195A1E *U5682 B 4 13 2.26 0 - - S 213 126791.58 123867.14 0.0
'1959F8 *U5682 B 4 13 2.26 0 - - S 214 126791.58 123929.3 0.0
'1959D2 *U5695 B 3 13 7.81 15 1 1 - 215 126791.58 123991.46 0.0
'1959AC *U5695 B 3 13 2.26 0 1 - S 216 126791.58 124053.62 0.0
'195D88 *U5695 A 3 11 2.26 0 1 - S 217 125962.34 123135.08 0.0
'195D62 *U5695 A 3 11 10.77 23 1 2 - 218 125962.34 123197.24 0.0
'195D3C *U5695 A 3 11 2.26 0 1 - S 219 125962.34 123259.4 0.0
'195D16 *U5694 A 2 11 10.89 23 2 1 - 220 125874.1 123135.08 0.0
'195CF0 *U5682 A 4 11 7.81 15 2 1 - 221 125874.1 123197.24 0.0
'195CCA *U5694 A 2 11 2.4 0 2 - S 222 125874.1 123259.4 0.0
'195CA4 *U5682 A 4 11 7.81 15 2 1 - 223 125785.86 123135.08 0.0
'195C7E *U5682 A 4 11 7.81 15 2 1 - 224 125785.86 123197.24 0.0
'195C58 *U5694 A 2 11 2.4 0 2 - S 225 125785.86 123259.4 0.0
'195C32 *U5695 A 3 11 2.26 0 1 - S 226 125697.62 123135.08 0.0
'195C0C *U5695 A 3 11 10.77 23 1 2 - 227 125697.62 123197.24 0.0
'195BE6 *U5695 A 3 11 2.26 0 1 - S 228 125697.62 123259.4 0.0
'195F04 *U5695 A 3 12 2.26 0 1 - S 229 126334.86 123183.38 0.0
'195EDE *U5695 A 3 12 10.77 23 1 2 - 230 126334.86 123245.54 0.0
'195EB8 *U5695 A 3 12 10.77 23 1 2 - 231 126334.86 123307.7 0.0
'195E92 *U5695 A 3 12 2.26 0 1 - S 232 126334.86 123369.86 0.0
'195E6C *U5695 A 3 12 10.77 23 1 2 - 233 126334.86 123432.02 0.0
'195E46 *U5695 A 3 12 10.77 23 1 2 - 234 126246.62 123183.38 0.0
'195E20 *U5695 A 3 12 2.26 0 1 - S 235 126246.62 123245.54 0.0
'195DFA *U5695 A 3 12 2.26 0 1 - S 236 126246.62 123307.7 0.0
'195DD4 *U5695 A 3 12 10.77 23 1 2 - 237 126246.62 123369.86 0.0
'195DAE *U5695 A 3 12 2.26 0 1 - S 238 126246.62 123432.02 0.0
'19605A *U5695 B 3 12 2.26 0 1 - S 239 126334.86 123556.34 0.0
'196034 *U5695 B 3 12 7.81 15 1 1 - 240 126334.86 123618.5 0.0
'19600E *U5695 B 3 12 7.81 15 1 1 - 241 126334.86 123680.66 0.0
'195FE8 *U5695 B 3 12 2.26 0 1 - S 242 126334.86 123742.82 0.0
'195FC2 *U5682 B 4 12 5.58 9 2 - - 243 126246.62 123556.34 0.0
'195F9C *U5695 B 3 12 7.81 15 1 1 - 244 126246.62 123618.5 0.0
'195F76 *U5695 B 3 12 7.81 15 1 1 - 245 126246.62 123680.66 0.0
'195F50 *U5695 B 3 12 7.81 15 1 1 - 246 126246.62 123742.82 0.0
'196294 *U5695 A 3 12 10.77 23 1 2 - 247 125981.9 124177.94 0.0
'19626E *U5693 A 1 12 2.4 0 2 - 1 248 125981.9 124240.1 0.0
'196248 *U5682 A 4 18 7.81 15 2 1 - 249 126703.34 123804.98 0.0
'196222 *U5694 A 2 12 2.4 0 2 - S 250 125893.66 124177.94 0.0
'1961FC *U5694 A 2 12 10.89 23 2 1 - 251 125893.66 124240.1 0.0
'1961D6 *U5695 A 3 18 10.77 23 1 2 - 252 126615.1 123804.98 0.0
'1961B0 *U5694 A 2 12 2.4 0 2 - S 253 125805.42 124177.94 0.0
'19618A *U5694 A 2 12 2.4 0 2 - S 254 125805.42 124240.1 0.0
'196164 *U5694 A 2 18 10.89 23 2 1 - 255 126158.38 123804.98 0.0
'19613E *U5694 A 2 12 10.89 23 2 1 - 256 125717.18 124177.94 0.0
'196118 *U5694 A 2 12 2.4 0 2 - S 257 125717.18 124240.1 0.0
'1960F2 *U5693 A 1 18 2.4 0 2 - 1 258 126070.14 123804.98 0.0
'1960CC *U5693 A 1 12 2.4 0 2 - 1 259 125628.94 124177.94 0.0
'1960A6 *U5693 A 1 12 2.4 0 2 - 1 260 125628.94 124240.1 0.0
'196080 *U5693 A 1 16 2.4 0 2 - 1 261 126615.1 123432.02 0.0
'196306 *U5695 B 3 12 7.81 15 1 1 - 262 125981.9 123991.46 0.0
'1963EA *U5694 B 2 12 2.4 0 2 - S 263 126158.38 123867.14 0.0
'1963C4 *U5694 B 2 12 7.93 15 2 - - 264 126158.38 123929.3 0.0
'19639E *U5694 B 2 12 2.4 0 2 - S 265 126070.14 123867.14 0.0
'196378 *U5694 B 2 12 2.4 0 2 - S 266 126070.14 123929.3 0.0
'196352 *U5695 B 3 12 7.81 15 1 1 - 267 125981.9 123867.14 0.0
'19632C *U5695 B 3 12 2.26 0 1 - S 268 125981.9 123929.3 0.0
'1966E2 *U5695 B 3 12 7.81 15 1 1 - 269 126334.86 123867.14 0.0
'1966BC *U5695 B 3 12 2.26 0 1 - S 270 126334.86 123929.3 0.0
'196696 *U5695 B 3 12 7.81 15 1 1 - 271 126334.86 123991.46 0.0
'196670 *U5695 A 3 12 10.77 23 1 2 - 272 126334.86 124053.62 0.0
'19664A *U5695 A 3 12 2.26 0 1 - S 273 126334.86 124115.78 0.0
'196624 *U5695 A 3 12 10.77 23 1 2 - 274 126334.86 124177.94 0.0
'1965FE *U5693 A 1 12 2.4 0 2 - 1 275 126334.86 124240.1 0.0
'1965D8 *U5695 A 3 18 10.77 23 1 2 - 276 127144.54 123432.02 0.0
'1965B2 *U5682 A 4 18 7.81 15 2 1 - 277 126703.34 123991.46 0.0
'19658C *U5693 A 1 16 2.4 0 2 - 1 278 128182.382 123245.54 0.0
'196566 *U5682 B 4 12 5.58 9 2 - - 279 126246.62 123867.14 0.0
'196540 *U5682 B 4 12 2.26 0 - - S 280 126246.62 123929.3 0.0
'19651A *U5695 B 3 12 7.81 15 1 1 - 281 126246.62 123991.46 0.0
'1964F4 *U5695 A 3 12 2.26 0 1 - S 282 126246.62 124053.62 0.0
'1964CE *U5695 A 3 12 10.77 23 1 2 - 283 126246.62 124115.78 0.0
'1964A8 *U5695 A 3 12 10.77 23 1 2 - 284 126246.62 124177.94 0.0
'196482 *U5693 A 1 12 2.4 0 2 - 1 285 126246.62 124240.1 0.0
'19645C *U5693 A 1 18 2.4 0 2 - 1 286 126703.34 123432.02 0.0
'196436 *U5693 B 1 12 9.43 19 2 1 - 287 126615.1 123991.46 0.0
'196410 *U5693 A 1 17 2.4 0 2 - 1 288 127232.78 122996.9 0.0

View File

@@ -290,7 +290,7 @@ class DocGenParamsBuilderTest(unittest.TestCase):
('513832', 0),
('513833', 790),
('513836', 0),
('513841', 196),
('521794', 196),
('anchors', 262),
('ballast', 6786),
@@ -304,7 +304,7 @@ class DocGenParamsBuilderTest(unittest.TestCase):
'total_513832': 0,
'total_513833': 790,
'total_513836': 0,
'total_513841': 196,
'total_521794': 196,
'total_anchors': 262,
'total_ballast': 6786,
'total_modules': 1726

View File

@@ -67,10 +67,12 @@ class PanelPresenterTest(unittest.TestCase):
def test_get_buildings_data(self):
self.subject = ProjectPresenter(SystemType.singleTilt, ModuleType.Cell96)
buildings = [ [ Coordinate(-60,-60), Coordinate(60,-60), Coordinate(60,60), Coordinate(-60,60) ] ] # big square
expected_buildings = [[ {'x': -60, '_Coordinate__rounded_x': -60, 'y': 60, '_Coordinate__rounded_y': -60, 'rotation': 0.0},
{'x': 60, '_Coordinate__rounded_x': 60, 'y': 60, '_Coordinate__rounded_y': -60, 'rotation': 0.0},
{'x': 60, '_Coordinate__rounded_x': 60, 'y': -60, '_Coordinate__rounded_y': 60, 'rotation': 0.0},
{'x': -60, '_Coordinate__rounded_x': -60, 'y': -60, '_Coordinate__rounded_y': 60, 'rotation': 0.0}]]
expected_buildings = [[
{'x': -60, '_Coordinate__rounded_x': -60, 'y': -60, '_Coordinate__rounded_y': -60, 'rotation': 0.0},
{'x': 60, '_Coordinate__rounded_x': 60, 'y': -60, '_Coordinate__rounded_y': -60, 'rotation': 0.0},
{'x': 60, '_Coordinate__rounded_x': 60, 'y': 60, '_Coordinate__rounded_y': 60, 'rotation': 0.0},
{'x': -60, '_Coordinate__rounded_x': -60, 'y': 60, '_Coordinate__rounded_y': 60, 'rotation': 0.0}
]]
actual_buildings = self.subject.get_buildings(buildings)
assert_array_equal(actual_buildings,expected_buildings)

View File

@@ -1,3 +1,4 @@
import time
from flask.ext.testing import LiveServerTestCase
import mockredis
from splinter import Browser
@@ -65,6 +66,7 @@ class ArraySummaryDynamicTest(LiveServerTestCase):
def test_shows_subarray_summary_table_if_user_has_uploaded_data(self):
self.fill_in_site_characterization_data()
self.upload_cad_block_file('test/fixtures/input_single_tilt_csv_for_bom.csv')
time.sleep(3)
assert len(self.browser.find_by_css('.upload_field .error_message')) == 0
assert len(self.browser.find_by_css("#seismic_anchor_table")) > 0
eq_(len(self.browser.find_by_css("#seismic_anchor_table tr")), 4)
@@ -73,6 +75,7 @@ class ArraySummaryDynamicTest(LiveServerTestCase):
def test_shows_errors_if_user_tries_to_upload_select_invalid_data(self):
self.fill_in_site_characterization_data()
self.upload_cad_block_file('test/fixtures/invalid_wind_zone.csv')
time.sleep(3)
assert len(self.browser.find_by_id('error_message_txt')) > 0
assert len(self.browser.find_by_css("#seismic_anchor_table")) == 0
@@ -87,30 +90,29 @@ class ArraySummaryDynamicTest(LiveServerTestCase):
def test_indicates_that_user_has_already_uploaded_a_csv_file_after_uploading(self):
self.fill_in_site_characterization_data()
self.upload_cad_block_file('test/fixtures/input_single_tilt_csv_for_bom.csv')
time.sleep(3)
assert len(self.browser.find_by_css('.upload_field .error_message')) == 0
assert 'input_single_tilt_csv_for_bom.csv' in self.browser.html
def test_adding_seismic_anchor_updates_subarray_summary(self):
self.fill_in_site_characterization_data()
self.upload_cad_block_file('test/fixtures/input_single_tilt_csv_for_bom.csv')
time.sleep(3)
assert self.browser.is_element_visible_by_css('#arrayCanvas')
self.browser.execute_script('arrayVisualization.selectPanel(1631);')
self.browser.find_by_css('#add_seismic').click()
assert self.browser.find_by_css('#current_anchors td:nth-child(14)').text == '1'
self.browser.find_by_css('#add_seismic').click()
assert self.browser.find_by_css('#current_anchors td:nth-child(14)').text == '2'
def test_removig_seismic_anchor_updates_subarray_summary(self):
self.fill_in_site_characterization_data()
self.upload_cad_block_file('test/fixtures/input_single_tilt_csv_for_bom.csv')
time.sleep(3)
assert self.browser.is_element_visible_by_css('#arrayCanvas')
self.browser.execute_script('arrayVisualization.selectPanel(1631);')
self.browser.find_by_css('#add_seismic').click()
assert self.browser.find_by_css('#current_anchors td:nth-child(14)').text == '1'
self.browser.find_by_css('#remove_seismic').click()
assert self.browser.find_by_css('#current_anchors td:nth-child(14)').text == '0'

View File

@@ -37,8 +37,6 @@ class BomIntegrationTest(unittest.TestCase):
expected = [
["512200", "CLIP, WIRE FORMED, CABLE MANAGEMENT, INSIDE, 352MM ^ 2", "510"],
["513833", "TRAY, LINK, HELIX ROOF", "78"], # TODO: should be 74 for part perfect bom
["513841", "DEFLECTOR, LH, HELIX ROOF", "30"],
["513842", "DEFLECTOR, RH, HELIX ROOF", "30"],
["513843", "PLATE, ANCHOR, HELIX ROOF", "86"],
["513844", "TRAY, OPTIONAL BALLAST, HELIX ROOF", "35"],
["514056", "BASE, CHASSIS, DUAL TILT, HELIX ROOF", "147"],
@@ -48,6 +46,8 @@ class BomIntegrationTest(unittest.TestCase):
["515928", "FRONT SKIRT, HELIX ROOF", "126"],
["517871", "TRAY, LEADING, HELIX ROOF, RIVETED VERSION", "67"],
["518477", "WASHER, FLAT, 3/8, 1.00 OD, 18-8 SS", "100"],
["521794", "DEFLECTOR, LH, HELIX ROOF V1.1", "30"],
["521795", "DEFLECTOR, RH, HELIX ROOF V1.1", "30"],
["Contractor Supplied", "Ballast Blocks", "608"],
["TBD", "Anchors", "86"],
["TBD", "Modules", "252"]
@@ -82,8 +82,6 @@ class BomIntegrationTest(unittest.TestCase):
expected = [
['512200', 'CLIP, WIRE FORMED, CABLE MANAGEMENT, INSIDE, 352MM ^ 2', '540'],
['513833', 'TRAY, LINK, HELIX ROOF', '75'], # TODO: should be 73 for part perfect bom
['513841', 'DEFLECTOR, LH, HELIX ROOF', '20'],
['513842', 'DEFLECTOR, RH, HELIX ROOF', '20'],
['513843', 'PLATE, ANCHOR, HELIX ROOF', '114'],
['513844', 'TRAY, OPTIONAL BALLAST, HELIX ROOF', '17'],
['514056', 'BASE, CHASSIS, DUAL TILT, HELIX ROOF', '148'],
@@ -93,6 +91,8 @@ class BomIntegrationTest(unittest.TestCase):
['515928', 'FRONT SKIRT, HELIX ROOF', '130'],
['517871', 'TRAY, LEADING, HELIX ROOF, RIVETED VERSION', '69'],
['518477', 'WASHER, FLAT, 3/8, 1.00 OD, 18-8 SS', '125'],
["521794", "DEFLECTOR, LH, HELIX ROOF V1.1", "20"],
["521795", "DEFLECTOR, RH, HELIX ROOF V1.1", "20"],
['Contractor Supplied', 'Ballast Blocks', '358'],
['TBD', 'Anchors', '114'],
['TBD', 'Modules', '264']
@@ -126,8 +126,6 @@ class BomIntegrationTest(unittest.TestCase):
expected = [
['512200', 'CLIP, WIRE FORMED, CABLE MANAGEMENT, INSIDE, 352MM ^ 2', '330'],
['513833', 'TRAY, LINK, HELIX ROOF', '45'], # 45 is perfect value for this bom
['513841', 'DEFLECTOR, LH, HELIX ROOF', '36'],
['513842', 'DEFLECTOR, RH, HELIX ROOF', '36'],
['513843', 'PLATE, ANCHOR, HELIX ROOF', '67'],
['513844', 'TRAY, OPTIONAL BALLAST, HELIX ROOF', '13'],
['514056', 'BASE, CHASSIS, DUAL TILT, HELIX ROOF', '102'],
@@ -137,6 +135,8 @@ class BomIntegrationTest(unittest.TestCase):
['515928', 'FRONT SKIRT, HELIX ROOF', '88'],
['517871', 'TRAY, LEADING, HELIX ROOF, RIVETED VERSION', '53'],
['518477', 'WASHER, FLAT, 3/8, 1.00 OD, 18-8 SS', '75'],
["521794", "DEFLECTOR, LH, HELIX ROOF V1.1", "36"],
["521795", "DEFLECTOR, RH, HELIX ROOF V1.1", "36"],
['Contractor Supplied', 'Ballast Blocks', '286'],
['TBD', 'Anchors', '67'],
['TBD', 'Modules', '160'],
@@ -171,8 +171,6 @@ class BomIntegrationTest(unittest.TestCase):
expected = [
['512200', 'CLIP, WIRE FORMED, CABLE MANAGEMENT, INSIDE, 352MM ^ 2', '510'],
['513833', 'TRAY, LINK, HELIX ROOF', '73'], # TODO: should be 70 for part perfect bom
['513841', 'DEFLECTOR, LH, HELIX ROOF', '24'],
['513842', 'DEFLECTOR, RH, HELIX ROOF', '24'],
['513843', 'PLATE, ANCHOR, HELIX ROOF', '94'],
['513844', 'TRAY, OPTIONAL BALLAST, HELIX ROOF', '28'],
['514056', 'BASE, CHASSIS, DUAL TILT, HELIX ROOF', '140'],
@@ -182,6 +180,8 @@ class BomIntegrationTest(unittest.TestCase):
['515928', 'FRONT SKIRT, HELIX ROOF', '120'],
['517871', 'TRAY, LEADING, HELIX ROOF, RIVETED VERSION', '64'],
['518477', 'WASHER, FLAT, 3/8, 1.00 OD, 18-8 SS', '100'],
["521794", "DEFLECTOR, LH, HELIX ROOF V1.1", "24"],
["521795", "DEFLECTOR, RH, HELIX ROOF V1.1", "24"],
['Contractor Supplied', 'Ballast Blocks', '560'],
['TBD', 'Anchors', '94'],
['TBD', 'Modules', '244'],

View File

@@ -10,6 +10,7 @@ from helix.constants import sql_constant
from helix.constants.anchor_type import AnchorType
from helix.constants.inverter_type import InverterType
from helix.constants.system_type import SystemType
from helix.constants.module_type import ModuleType
from helix.constants.version import version
from helix.models.sql.power_stations import PowerStation
from test.integration.integration_test_helpers import *
@@ -125,29 +126,32 @@ class FullUserFlowTest(unittest.TestCase):
eq_(self.browser._response.headers['Content-Disposition'], 'attachment; filename=test_project_name_result.txt')
def test_downloading_coordinates_csv(self):
with open('test/fixtures/expected_dual_tilt_coordinates.csv', 'r', newline='') as csv_file:
csv_content = csv_file.read()
self.browser.fill('project_name', 'Test Project Name')
self.browser.fill('building_width', '450')
self.browser.fill('building_height', '35')
self.browser.fill('building_length', '500')
self.browser.fill('wind_speed', '110')
self.browser.fill('exposure_category', 'B')
self.browser.fill('ballast_block_weight', '14')
self.browser.fill('building_parapet_height', '5')
self.browser.fill('max_system_pressure', '10')
self.browser.fill('system_type', SystemType.dualTilt.value)
self.browser.fill('anchor_type', AnchorType.OMG_PowerGrip_Plus.value)
self.browser.fill('design_spectral_response', '1.5')
#with open('test/fixtures/expected_dual_tilt_big_spacing.txt', 'r', newline='') as csv_file:
with open('test/fixtures/expected_small_dual_tilt.txt', 'r', newline='') as csv_file:
csv_content = csv_file.read()
self.browser.fill('project_name', 'Test Project Name')
self.browser.fill('building_width', '450')
self.browser.fill('building_height', '35')
self.browser.fill('building_length', '500')
self.browser.fill('wind_speed', '110')
self.browser.fill('exposure_category', 'B')
self.browser.fill('ballast_block_weight', '14')
self.browser.fill('building_parapet_height', '5')
self.browser.fill('max_system_pressure', '10')
self.browser.fill('system_type', SystemType.dualTilt.value)
self.browser.fill('anchor_type', AnchorType.OMG_PowerGrip_Plus.value)
self.browser.fill('design_spectral_response', '1.5')
self.browser.fill('module_type', ModuleType.Cell96.value)
self.advance_n_times(1)
self.attach_file('test/fixtures/input_dual_tilt_coordinates.csv')
self.advance_n_times(1)
self.attach_file('test/fixtures/input_small_dual_tilt.csv')
self.advance_n_times(1)
self.browser.visit('/download/')
self.browser.click_link_by_partial_text('Download AutoCAD import file')
eq_(self.browser.html, csv_content)
eq_(self.browser._response.headers['Content-Disposition'], 'attachment; filename=test_project_name_result.txt')
self.advance_n_times(1)
self.browser.visit('/download/')
self.browser.click_link_by_partial_text('Download AutoCAD import file')
eq_(self.browser.html, csv_content)
eq_(self.browser._response.headers['Content-Disposition'], 'attachment; filename=test_project_name_result.txt')
# def test_uploading_dxf_and_downloading_csv(self):
# self.browser.fill('project_name', 'Test Project Name')

View File

@@ -1,3 +1,4 @@
import time
from flask.ext.testing import LiveServerTestCase
import mockredis
from splinter import Browser
@@ -84,6 +85,7 @@ class PowerStationConfigurationDynamicFormTestCase(LiveServerTestCase):
eq_(self.browser.find_by_name('inverter-model').first.value, str(InverterType.SMA.default_value()))
select_inverter_brand(self.browser, brand=InverterBrand.DELTA.value)
time.sleep(1)
show_standalone_inverter_form(self.browser)
eq_(len(self.browser.find_by_css('#inverter-model option')), 3)

View File

@@ -5,6 +5,7 @@ from nose.tools import eq_
from helix.validators.csv_input_validator import CsvInputValidator
from helix.constants.system_type import SystemType
from helix.constants.module_type import ModuleType
from helix.constants.file_validation_error import FileValidationError, FileValidationMessage
@@ -94,3 +95,12 @@ class CsvInputValidatorTest(unittest.TestCase):
self.user_values.system_type.return_value = SystemType.dualTilt
cad_input = "A\tB\tC\tD\tE\r\nhandle\tblock\tA\t3\t1\r\n"
self.should_have_error(self.subject.validate(cad_input), FileValidationMessage.PanelTypeTooFewCornersDualTilt, None)
def test_reports_too_close_when_finds_panel_too_close_to_another_panel(self):
self.user_values.system_type.return_value = SystemType.dualTilt
self.user_values.module_type.return_value = ModuleType.Cell96
self.user_values.module_system_constants().tolerance = 0.1
self.user_values.module_system_constants().panel_spacing = (88.24, 62.0)
with open('test/fixtures/invalid_too_close.txt', 'r', newline='') as csv_file:
cad_input = csv_file.read()
self.should_have_error(self.subject.validate(cad_input), FileValidationMessage.PanelsTooClose , None)