refactor: move canon lens tests into new test directory
This commit does some restructuring to make common utils available for future similar test for other brandsmain
parent
56f9979a4b
commit
47d518bc65
@ -1,390 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
import re
|
|
||||||
|
|
||||||
import system_tests
|
|
||||||
|
|
||||||
|
|
||||||
# List of all supported lenses, duplicated from canonCsLensType in src/canonmn_int.cpp,
|
|
||||||
# to ensure that lenses do not get removed accidentially.
|
|
||||||
# Lenses should never be removed from this list to guarantee backwards-compatibility.
|
|
||||||
lenses = '''
|
|
||||||
{ 1, "Canon EF 50mm f/1.8" },
|
|
||||||
{ 2, "Canon EF 28mm f/2.8" },
|
|
||||||
{ 3, "Canon EF 135mm f/2.8 Soft" },
|
|
||||||
{ 4, "Canon EF 35-105mm f/3.5-4.5" }, // 0
|
|
||||||
{ 4, "Sigma UC Zoom 35-135mm f/4-5.6" }, // 1
|
|
||||||
{ 5, "Canon EF 35-70mm f/3.5-4.5" },
|
|
||||||
{ 6, "Canon EF 28-70mm f/3.5-4.5" }, // 0
|
|
||||||
{ 6, "Sigma 18-50mm f/3.5-5.6 DC" }, // 1
|
|
||||||
{ 6, "Sigma 18-125mm f/3.5-5.6 DC IF ASP" }, // 2
|
|
||||||
{ 6, "Tokina AF193-2 19-35mm f/3.5-4.5" }, // 3
|
|
||||||
{ 6, "Sigma 28-80mm f/3.5-5.6 II Macro" }, // 4
|
|
||||||
{ 7, "Canon EF 100-300mm f/5.6L" },
|
|
||||||
{ 8, "Canon EF 100-300mm f/5.6" }, // 0
|
|
||||||
{ 8, "Sigma 70-300mm f/4-5.6 [APO] DG Macro" }, // 1
|
|
||||||
{ 8, "Tokina AT-X 242 AF 24-200mm f/3.5-5.6" }, // 2
|
|
||||||
{ 9, "Canon EF 70-210mm f/4" }, // 0
|
|
||||||
{ 9, "Sigma 55-200mm f/4-5.6 DC" }, // 1
|
|
||||||
{ 10, "Canon EF 50mm f/2.5 Macro" }, // 0
|
|
||||||
{ 10, "Sigma 50mm f/2.8 EX" }, // 1
|
|
||||||
{ 10, "Sigma 28mm f/1.8" }, // 2
|
|
||||||
{ 10, "Sigma 105mm f/2.8 Macro EX" }, // 3
|
|
||||||
{ 10, "Sigma 70mm f/2.8 EX DG Macro EF" }, // 4
|
|
||||||
{ 11, "Canon EF 35mm f/2" },
|
|
||||||
{ 13, "Canon EF 15mm f/2.8 Fisheye" },
|
|
||||||
{ 14, "Canon EF 50-200mm f/3.5-4.5L" },
|
|
||||||
{ 15, "Canon EF 50-200mm f/3.5-4.5" },
|
|
||||||
{ 16, "Canon EF 35-135mm f/3.5-4.5" },
|
|
||||||
{ 17, "Canon EF 35-70mm f/3.5-4.5A" },
|
|
||||||
{ 18, "Canon EF 28-70mm f/3.5-4.5" },
|
|
||||||
{ 20, "Canon EF 100-200mm f/4.5A" },
|
|
||||||
{ 21, "Canon EF 80-200mm f/2.8L" },
|
|
||||||
{ 22, "Canon EF 20-35mm f/2.8L" }, // 0
|
|
||||||
{ 22, "Tokina AT-X 280 AF PRO 28-80mm f/2.8 Aspherical" }, // 1
|
|
||||||
{ 23, "Canon EF 35-105mm f/3.5-4.5" },
|
|
||||||
{ 24, "Canon EF 35-80mm f/4-5.6 Power Zoom" },
|
|
||||||
{ 25, "Canon EF 35-80mm f/4-5.6 Power Zoom" },
|
|
||||||
{ 26, "Canon EF 100mm f/2.8 Macro" }, // 0
|
|
||||||
{ 26, "Cosina 100mm f/3.5 Macro AF" }, // 1
|
|
||||||
{ 26, "Tamron SP AF 90mm f/2.8 Di Macro" }, // 2
|
|
||||||
{ 26, "Tamron SP AF 180mm f/3.5 Di Macro" }, // 3
|
|
||||||
{ 26, "Carl Zeiss Planar T* 50mm f/1.4" }, // 4
|
|
||||||
{ 27, "Canon EF 35-80mm f/4-5.6" },
|
|
||||||
{ 28, "Canon EF 80-200mm f/4.5-5.6" }, // 0
|
|
||||||
{ 28, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF" }, // 1
|
|
||||||
{ 28, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro" }, // 2
|
|
||||||
{ 28, "Tamron AF 70-300mm f/4-5.6 Di LD 1:2 Macro" }, // 3
|
|
||||||
{ 28, "Tamron AF Aspherical 28-200mm f/3.8-5.6" }, // 4
|
|
||||||
{ 29, "Canon EF 50mm f/1.8 II" },
|
|
||||||
{ 30, "Canon EF 35-105mm f/4.5-5.6" },
|
|
||||||
{ 31, "Canon EF 75-300mm f/4-5.6" }, // 0
|
|
||||||
{ 31, "Tamron SP AF 300mm f/2.8 LD IF" }, // 1
|
|
||||||
{ 32, "Canon EF 24mm f/2.8" }, // 0
|
|
||||||
{ 32, "Sigma 15mm f/2.8 EX Fisheye" }, // 1
|
|
||||||
{ 33, "Voigtlander Ultron 40mm f/2 SLII Aspherical" }, // 0
|
|
||||||
{ 33, "Voigtlander Color Skopar 20mm f/3.5 SLII Aspherical" }, // 1
|
|
||||||
{ 33, "Voigtlander APO-Lanthar 90mm f/3.5 SLII Close Focus" }, // 2
|
|
||||||
{ 33, "Carl Zeiss Distagon 15mm T* f/2.8 ZE" }, // 3
|
|
||||||
{ 33, "Carl Zeiss Distagon 18mm T* f/3.5 ZE" }, // 4
|
|
||||||
{ 33, "Carl Zeiss Distagon 21mm T* f/2.8 ZE" }, // 5
|
|
||||||
{ 33, "Carl Zeiss Distagon 25mm T* f/2 ZE" }, // 6
|
|
||||||
{ 33, "Carl Zeiss Distagon 28mm T* f/2 ZE" }, // 7
|
|
||||||
{ 33, "Carl Zeiss Distagon 35mm T* f/2 ZE" }, // 8
|
|
||||||
{ 33, "Carl Zeiss Distagon 35mm T* f/1.4 ZE" }, // 9
|
|
||||||
{ 33, "Carl Zeiss Planar 50mm T* f/1.4 ZE" }, // 10
|
|
||||||
{ 33, "Carl Zeiss Makro-Planar T* 50mm f/2 ZE" }, // 11
|
|
||||||
{ 33, "Carl Zeiss Makro-Planar T* 100mm f/2 ZE" }, // 12
|
|
||||||
{ 33, "Carl Zeiss Apo-Sonnar T* 135mm f/2 ZE" }, // 13
|
|
||||||
{ 35, "Canon EF 35-80mm f/4-5.6" },
|
|
||||||
{ 36, "Canon EF 38-76mm f/4.5-5.6" },
|
|
||||||
{ 37, "Canon EF 35-80mm f/4-5.6" }, // 0
|
|
||||||
{ 37, "Tamron 70-200mm f/2.8 Di LD IF Macro" }, // 1
|
|
||||||
{ 37, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro Model A20" }, // 2
|
|
||||||
{ 37, "Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical [IF]" }, // 3
|
|
||||||
{ 37, "Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical [IF] Macro" }, // 4
|
|
||||||
{ 38, "Canon EF 80-200mm f/4.5-5.6" },
|
|
||||||
{ 39, "Canon EF 75-300mm f/4-5.6" },
|
|
||||||
{ 40, "Canon EF 28-80mm f/3.5-5.6" },
|
|
||||||
{ 41, "Canon EF 28-90mm f/4-5.6" },
|
|
||||||
{ 42, "Canon EF 28-200mm f/3.5-5.6" }, // 0
|
|
||||||
{ 42, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro Model A20" }, // 1
|
|
||||||
{ 43, "Canon EF 28-105mm f/4-5.6" },
|
|
||||||
{ 44, "Canon EF 90-300mm f/4.5-5.6" },
|
|
||||||
{ 45, "Canon EF-S 18-55mm f/3.5-5.6" },
|
|
||||||
{ 46, "Canon EF 28-90mm f/4-5.6" },
|
|
||||||
{ 47, "Zeiss Milvus 35mm f/2" }, // 0
|
|
||||||
{ 47, "Zeiss Milvus 50mm f/2 Makro" }, // 1
|
|
||||||
{ 48, "Canon EF-S 18-55mm f/3.5-5.6 IS" },
|
|
||||||
{ 49, "Canon EF-S 55-250mm f/4-5.6 IS" },
|
|
||||||
{ 50, "Canon EF-S 18-200mm f/3.5-5.6 IS" },
|
|
||||||
{ 51, "Canon EF-S 18-135mm f/3.5-5.6 IS" },
|
|
||||||
{ 52, "Canon EF-S 18-55mm f/3.5-5.6 IS II" },
|
|
||||||
{ 53, "Canon EF-S 18-55mm f/3.5-5.6 III" },
|
|
||||||
{ 54, "Canon EF-S 55-250mm f/4-5.6 IS II" },
|
|
||||||
{ 60, "Irix 11mm f/4" },
|
|
||||||
{ 82, "Canon TS-E 135mm f/4L Macro" },
|
|
||||||
{ 94, "Canon TS-E 17mm f/4L" },
|
|
||||||
{ 95, "Canon TS-E 24mm f/3.5L II" },
|
|
||||||
{ 124, "Canon MP-E 65mm f/2.8 1-5x Macro Photo" },
|
|
||||||
{ 125, "Canon TS-E 24mm f/3.5L" },
|
|
||||||
{ 126, "Canon TS-E 45mm f/2.8" },
|
|
||||||
{ 127, "Canon TS-E 90mm f/2.8" },
|
|
||||||
{ 129, "Canon EF 300mm f/2.8L" },
|
|
||||||
{ 130, "Canon EF 50mm f/1.0L" },
|
|
||||||
{ 131, "Canon EF 28-80mm f/2.8-4L" }, // 0
|
|
||||||
{ 131, "Sigma 8mm f/3.5 EX DG Circular Fisheye" }, // 1
|
|
||||||
{ 131, "Sigma 17-35mm f/2.8-4 EX DG Aspherical HSM" }, // 2
|
|
||||||
{ 131, "Sigma 17-70mm f/2.8-4.5 DC Macro" }, // 3
|
|
||||||
{ 131, "Sigma APO 50-150mm f/2.8 EX DC HSM" }, // 4
|
|
||||||
{ 131, "Sigma APO 120-300mm f/2.8 EX DG HSM" }, // 5
|
|
||||||
{ 131, "Sigma 70-200mm f/2.8 APO EX HSM" }, // 6
|
|
||||||
{ 132, "Canon EF 1200mm f/5.6L" },
|
|
||||||
{ 134, "Canon EF 600mm f/4L IS" },
|
|
||||||
{ 135, "Canon EF 200mm f/1.8L" },
|
|
||||||
{ 136, "Canon EF 300mm f/2.8L" }, // 0
|
|
||||||
{ 136, "Tamron SP 15-30mm f/2.8 Di VC USD A012" }, // 1
|
|
||||||
{ 137, "Canon EF 85mm f/1.2L" }, // 0
|
|
||||||
{ 137, "Sigma 18-50mm f/2.8-4.5 DC OS HSM" }, // 1
|
|
||||||
{ 137, "Sigma 50-200mm f/4-5.6 DC OS HSM" }, // 2
|
|
||||||
{ 137, "Sigma 18-250mm f/3.5-6.3 DC OS HSM" }, // 3
|
|
||||||
{ 137, "Sigma 24-70mm f/2.8 IF EX DG HSM" }, // 4
|
|
||||||
{ 137, "Sigma 18-125mm f/3.8-5.6 DC OS HSM" }, // 5
|
|
||||||
{ 137, "Sigma 17-70mm f/2.8-4 DC Macro OS HSM | C" }, // 6
|
|
||||||
{ 137, "Sigma 17-50mm f/2.8 OS HSM" }, // 7
|
|
||||||
{ 137, "Sigma 18-200mm f/3.5-6.3 DC OS HSM [II]" }, // 8
|
|
||||||
{ 137, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD" }, // 9
|
|
||||||
{ 137, "Sigma 8-16mm f/4.5-5.6 DC HSM" }, // 10
|
|
||||||
{ 137, "Tamron SP 60mm f/2 Macro Di II" }, // 11
|
|
||||||
{ 137, "Sigma 10-20mm f/3.5 EX DC HSM" }, // 12
|
|
||||||
{ 137, "Sigma 18-35mm f/1.8 DC HSM | A" }, // 13
|
|
||||||
{ 137, "Sigma 12-24mm f/4.5-5.6 DG HSM II" }, // 14
|
|
||||||
{ 138, "Canon EF 28-80mm f/2.8-4L" },
|
|
||||||
{ 139, "Canon EF 400mm f/2.8L" },
|
|
||||||
{ 140, "Canon EF 500mm f/4.5L" },
|
|
||||||
{ 141, "Canon EF 500mm f/4.5L" },
|
|
||||||
{ 142, "Canon EF 300mm f/2.8L IS" },
|
|
||||||
{ 143, "Canon EF 500mm f/4L IS" }, // 0
|
|
||||||
{ 143, "Sigma 17-70mm f/2.8-4 DC Macro OS HSM" }, // 1
|
|
||||||
{ 143, "Sigma 24-105mm f/4 DG OS HSM | A" }, // 2
|
|
||||||
{ 144, "Canon EF 35-135mm f/4-5.6 USM" },
|
|
||||||
{ 145, "Canon EF 100-300mm f/4.5-5.6 USM" },
|
|
||||||
{ 146, "Canon EF 70-210mm f/3.5-4.5 USM" },
|
|
||||||
{ 147, "Canon EF 35-135mm f/4-5.6 USM" },
|
|
||||||
{ 148, "Canon EF 28-80mm f/3.5-5.6 USM" },
|
|
||||||
{ 149, "Canon EF 100mm f/2 USM" },
|
|
||||||
{ 150, "Canon EF 14mm f/2.8L" }, // 0
|
|
||||||
{ 150, "Sigma 20mm EX f/1.8" }, // 1
|
|
||||||
{ 150, "Sigma 30mm f/1.4 DC HSM" }, // 2
|
|
||||||
{ 150, "Sigma 24mm f/1.8 DG Macro EX" }, // 3
|
|
||||||
{ 150, "Sigma 28mm f/1.8 DG Macro EX" }, // 4
|
|
||||||
{ 150, "Sigma 18-35mm f/1.8 DC HSM | A" }, // 5
|
|
||||||
{ 151, "Canon EF 200mm f/2.8L" },
|
|
||||||
{ 152, "Canon EF 300mm f/4L IS" }, // 0
|
|
||||||
{ 152, "Sigma 12-24mm f/4.5-5.6 EX DG ASPHERICAL HSM" }, // 1
|
|
||||||
{ 152, "Sigma 14mm f/2.8 EX Aspherical HSM" }, // 2
|
|
||||||
{ 152, "Sigma 10-20mm f/4-5.6" }, // 3
|
|
||||||
{ 152, "Sigma 100-300mm f/4" }, // 4
|
|
||||||
{ 153, "Canon EF 35-350mm f/3.5-5.6L" }, // 0
|
|
||||||
{ 153, "Sigma 50-500mm f/4-6.3 APO HSM EX" }, // 1
|
|
||||||
{ 153, "Tamron AF 28-300mm f/3.5-6.3 XR LD Aspherical [IF] Macro" }, // 2
|
|
||||||
{ 153, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro Model A14" }, // 3
|
|
||||||
{ 153, "Tamron 18-250mm f/3.5-6.3 Di II LD Aspherical [IF] Macro" }, // 4
|
|
||||||
{ 154, "Canon EF 20mm f/2.8 USM" }, // 0
|
|
||||||
{ 154, "Zeiss Milvus 21mm f/2.8" }, // 1
|
|
||||||
{ 155, "Canon EF 85mm f/1.8 USM" }, // 0
|
|
||||||
{ 155, "Sigma 14mm f/1.8 DG HSM | A" }, // 1
|
|
||||||
{ 156, "Canon EF 28-105mm f/3.5-4.5 USM" }, // 0
|
|
||||||
{ 156, "Tamron SP 70-300mm f/4-5.6 Di VC USD" }, // 1
|
|
||||||
{ 156, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF" }, // 2
|
|
||||||
{ 160, "Canon EF 20-35mm f/3.5-4.5 USM" }, // 0
|
|
||||||
{ 160, "Tamron AF 19-35mm f/3.5-4.5" }, // 1
|
|
||||||
{ 160, "Tokina AT-X 124 AF 12-24mm f/4 DX" }, // 2
|
|
||||||
{ 160, "Tokina AT-X 107 AF DX Fish-eye 10-17mm f/3.5-4.5" }, // 3
|
|
||||||
{ 160, "Tokina AT-X 116 PRO DX AF 11-16mm f/2.8" }, // 4
|
|
||||||
{ 160, "Tokina AT-X 11-20 F2.8 PRO DX Aspherical 11-20mm f/2.8" }, // 5
|
|
||||||
{ 161, "Canon EF 28-70mm f/2.8L" }, // 0
|
|
||||||
{ 161, "Sigma 24-70mm EX f/2.8" }, // 1
|
|
||||||
{ 161, "Sigma 24-60mm f/2.8 EX DG" }, // 2
|
|
||||||
{ 161, "Tamron AF 17-50mm f/2.8 Di-II LD Aspherical" }, // 3
|
|
||||||
{ 161, "Tamron 90mm f/2.8" }, // 4
|
|
||||||
{ 161, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF" }, // 5
|
|
||||||
{ 161, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro" }, // 6
|
|
||||||
{ 162, "Canon EF 200mm f/2.8L" },
|
|
||||||
{ 163, "Canon EF 300mm f/4L" },
|
|
||||||
{ 164, "Canon EF 400mm f/5.6L" },
|
|
||||||
{ 165, "Canon EF 70-200mm f/2.8L" },
|
|
||||||
{ 166, "Canon EF 70-200mm f/2.8L + 1.4x" },
|
|
||||||
{ 167, "Canon EF 70-200mm f/2.8L + 2x" },
|
|
||||||
{ 168, "Canon EF 28mm f/1.8 USM" }, // 0
|
|
||||||
{ 168, "Sigma 50-100mm f/1.8 DC HSM | A" }, // 1
|
|
||||||
{ 169, "Canon EF 17-35mm f/2.8L" }, // 0
|
|
||||||
{ 169, "Sigma 18-200mm f/3.5-6.3 DC OS" }, // 1
|
|
||||||
{ 169, "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical" }, // 2
|
|
||||||
{ 169, "Sigma 18-50mm f/2.8 Macro" }, // 3
|
|
||||||
{ 169, "Sigma 50mm f/1.4 EX DG HSM" }, // 4
|
|
||||||
{ 169, "Sigma 85mm f/1.4 EX DG HSM" }, // 5
|
|
||||||
{ 169, "Sigma 30mm f/1.4 EX DC HSM" }, // 6
|
|
||||||
{ 169, "Sigma 35mm f/1.4 DG HSM" }, // 7
|
|
||||||
{ 170, "Canon EF 200mm f/2.8L II" },
|
|
||||||
{ 171, "Canon EF 300mm f/4L" },
|
|
||||||
{ 172, "Canon EF 400mm f/5.6L" }, // 0
|
|
||||||
{ 172, "Sigma 150-600mm f/5-6.3 DG OS HSM | S" }, // 1
|
|
||||||
{ 172, "Sigma 150-500mm f/5-6.3 APO DG OS HSM + 1.4x" }, // 2
|
|
||||||
{ 173, "Canon EF 180mm Macro f/3.5L" }, // 0
|
|
||||||
{ 173, "Sigma APO Macro 150mm f/3.5 EX DG IF HSM" }, // 1
|
|
||||||
{ 173, "Sigma 150-500mm f/5-6.3 APO DG OS HSM + 2x" }, // 2
|
|
||||||
{ 174, "Canon EF 135mm f/2L" }, // 0
|
|
||||||
{ 174, "Sigma 70-200mm f/2.8 EX DG APO OS HSM" }, // 1
|
|
||||||
{ 174, "Sigma 50-500mm f/4.5-6.3 APO DG OS HSM" }, // 2
|
|
||||||
{ 174, "Sigma 150-500mm f/5-6.3 APO DG OS HSM" }, // 3
|
|
||||||
{ 174, "Zeiss Milvus 100mm f/2 Makro" }, // 4
|
|
||||||
{ 174, "Sigma 120-300mm f/2.8 EX APO DG OS HSM" }, // 5
|
|
||||||
{ 175, "Canon EF 400mm f/2.8L" },
|
|
||||||
{ 176, "Canon EF 24-85mm f/3.5-4.5 USM" },
|
|
||||||
{ 177, "Canon EF 300mm f/4L IS" },
|
|
||||||
{ 178, "Canon EF 28-135mm f/3.5-5.6 IS" },
|
|
||||||
{ 179, "Canon EF 24mm f/1.4L" },
|
|
||||||
{ 180, "Canon EF 35mm f/1.4L" }, // 0
|
|
||||||
{ 180, "Sigma 50mm f/1.4 DG HSM | A" }, // 1
|
|
||||||
{ 180, "Sigma 24mm f/1.4 DG HSM | A" }, // 2
|
|
||||||
{ 180, "Sigma 20mm f/1.4 DG HSM | A" }, // 3
|
|
||||||
{ 180, "Zeiss Milvus 85mm f/1.4" }, // 4
|
|
||||||
{ 180, "Zeiss Otus 28mm f/1.4 ZE" }, // 5
|
|
||||||
{ 181, "Canon EF 100-400mm f/4.5-5.6L IS + 1.4x" }, // 0
|
|
||||||
{ 181, "Sigma 150-600mm f/5-6.3 DG OS HSM | S + 1.4x" }, // 1
|
|
||||||
{ 182, "Canon EF 100-400mm f/4.5-5.6L IS + 2x" }, // 0
|
|
||||||
{ 182, "Sigma 150-600mm f/5-6.3 DG OS HSM | S + 2x" }, // 1
|
|
||||||
{ 183, "Canon EF 100-400mm f/4.5-5.6L IS" }, // 0
|
|
||||||
{ 183, "Sigma 150mm f/2.8 EX DG OS HSM APO Macro" }, // 1
|
|
||||||
{ 183, "Sigma 105mm f/2.8 EX DG OS HSM Macro" }, // 2
|
|
||||||
{ 183, "Sigma 180mm f/2.8 EX DG OS HSM APO Macro" }, // 3
|
|
||||||
{ 183, "Sigma 150-600mm f/5-6.3 DG OS HSM | C" }, // 4
|
|
||||||
{ 184, "Canon EF 400mm f/2.8L + 2x" },
|
|
||||||
{ 185, "Canon EF 600mm f/4L IS" },
|
|
||||||
{ 186, "Canon EF 70-200mm f/4L" },
|
|
||||||
{ 187, "Canon EF 70-200mm f/4L + 1.4x" },
|
|
||||||
{ 188, "Canon EF 70-200mm f/4L + 2x" },
|
|
||||||
{ 189, "Canon EF 70-200mm f/4L + 2.8x" },
|
|
||||||
{ 190, "Canon EF 100mm f/2.8 Macro USM" },
|
|
||||||
{ 191, "Canon EF 400mm f/4 DO IS" },
|
|
||||||
{ 193, "Canon EF 35-80mm f/4-5.6 USM" },
|
|
||||||
{ 194, "Canon EF 80-200mm f/4.5-5.6 USM" },
|
|
||||||
{ 195, "Canon EF 35-105mm f/4.5-5.6 USM" },
|
|
||||||
{ 196, "Canon EF 75-300mm f/4-5.6 USM" },
|
|
||||||
{ 197, "Canon EF 75-300mm f/4-5.6 IS USM" }, // 0
|
|
||||||
{ 197, "Sigma 18-300mm f/3.5-6.3 DC Macro HSM" }, // 1
|
|
||||||
{ 198, "Canon EF 50mm f/1.4 USM" }, // 0
|
|
||||||
{ 198, "Zeiss Otus 55mm f/1.4 ZE" }, // 1
|
|
||||||
{ 198, "Zeiss Otus 85mm f/1.4 ZE" }, // 2
|
|
||||||
{ 199, "Canon EF 28-80mm f/3.5-5.6 USM" },
|
|
||||||
{ 200, "Canon EF 75-300mm f/4-5.6 USM" },
|
|
||||||
{ 201, "Canon EF 28-80mm f/3.5-5.6 USM" },
|
|
||||||
{ 202, "Canon EF 28-80mm f/3.5-5.6 USM IV" },
|
|
||||||
{ 208, "Canon EF 22-55mm f/4-5.6 USM" },
|
|
||||||
{ 209, "Canon EF 55-200mm f/4.5-5.6" },
|
|
||||||
{ 210, "Canon EF 28-90mm f/4-5.6 USM" },
|
|
||||||
{ 211, "Canon EF 28-200mm f/3.5-5.6 USM" },
|
|
||||||
{ 212, "Canon EF 28-105mm f/4-5.6 USM" },
|
|
||||||
{ 213, "Canon EF 90-300mm f/4.5-5.6 USM" }, // 0
|
|
||||||
{ 213, "Tamron SP 150-600mm f/5-6.3 Di VC USD" }, // 1
|
|
||||||
{ 213, "Tamron 16-300mm f/3.5-6.3 Di II VC PZD Macro" }, // 2
|
|
||||||
{ 213, "Tamron SP 35mm f/1.8 Di VC USD" }, // 3
|
|
||||||
{ 213, "Tamron SP 45mm f/1.8 Di VC USD" }, // 4
|
|
||||||
{ 213, "Tamron SP 70-300mm f/4-5.6 Di VC USD" }, // 5
|
|
||||||
{ 214, "Canon EF-S 18-55mm f/3.5-5.6 USM" },
|
|
||||||
{ 215, "Canon EF 55-200mm f/4.5-5.6 II USM" },
|
|
||||||
{ 217, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD" },
|
|
||||||
{ 224, "Canon EF 70-200mm f/2.8L IS" },
|
|
||||||
{ 225, "Canon EF 70-200mm f/2.8L IS + 1.4x" },
|
|
||||||
{ 226, "Canon EF 70-200mm f/2.8L IS + 2x" },
|
|
||||||
{ 227, "Canon EF 70-200mm f/2.8L IS + 2.8x" },
|
|
||||||
{ 228, "Canon EF 28-105mm f/3.5-4.5 USM" },
|
|
||||||
{ 229, "Canon EF 16-35mm f/2.8L" },
|
|
||||||
{ 230, "Canon EF 24-70mm f/2.8L" },
|
|
||||||
{ 231, "Canon EF 17-40mm f/4L" },
|
|
||||||
{ 232, "Canon EF 70-300mm f/4.5-5.6 DO IS USM" },
|
|
||||||
{ 233, "Canon EF 28-300mm f/3.5-5.6L IS" },
|
|
||||||
{ 234, "Canon EF-S 17-85mm f/4-5.6 IS USM" }, // 0
|
|
||||||
{ 234, "Tokina AT-X 12-28 PRO DX 12-28mm f/4" }, // 1
|
|
||||||
{ 235, "Canon EF-S 10-22mm f/3.5-4.5 USM" },
|
|
||||||
{ 236, "Canon EF-S 60mm f/2.8 Macro USM" },
|
|
||||||
{ 237, "Canon EF 24-105mm f/4L IS" },
|
|
||||||
{ 238, "Canon EF 70-300mm f/4-5.6 IS USM" },
|
|
||||||
{ 239, "Canon EF 85mm f/1.2L II" },
|
|
||||||
{ 240, "Canon EF-S 17-55mm f/2.8 IS USM" },
|
|
||||||
{ 241, "Canon EF 50mm f/1.2L" },
|
|
||||||
{ 242, "Canon EF 70-200mm f/4L IS" },
|
|
||||||
{ 243, "Canon EF 70-200mm f/4L IS + 1.4x" },
|
|
||||||
{ 244, "Canon EF 70-200mm f/4L IS + 2x" },
|
|
||||||
{ 245, "Canon EF 70-200mm f/4L IS + 2.8x" },
|
|
||||||
{ 246, "Canon EF 16-35mm f/2.8L II" },
|
|
||||||
{ 247, "Canon EF 14mm f/2.8L II USM" },
|
|
||||||
{ 248, "Canon EF 200mm f/2L IS" }, // 0
|
|
||||||
{ 248, "Sigma 24-35mm f/2 DG HSM | A" }, // 1
|
|
||||||
{ 249, "Canon EF 800mm f/5.6L IS" },
|
|
||||||
{ 250, "Canon EF 24mm f/1.4L II" }, // 0
|
|
||||||
{ 250, "Sigma 20mm f/1.4 DG HSM | A" }, // 1
|
|
||||||
{ 251, "Canon EF 70-200mm f/2.8L IS II USM" },
|
|
||||||
{ 252, "Canon EF 70-200mm f/2.8L IS II USM + 1.4x" },
|
|
||||||
{ 253, "Canon EF 70-200mm f/2.8L IS II USM + 2x" },
|
|
||||||
{ 254, "Canon EF 100mm f/2.8L Macro IS USM" }, // 0
|
|
||||||
{ 254, "Tamron SP 90mm f/2.8 Di VC USD Macro 1:1" }, // 1
|
|
||||||
{ 255, "Sigma 24-105mm f/4 DG OS HSM | A" }, // 0
|
|
||||||
{ 255, "Sigma 180mm f/2.8 EX DG OS HSM APO Macro" }, // 1
|
|
||||||
{ 368, "Sigma 18-35mm f/1.8 DC HSM | A" },
|
|
||||||
{ 488, "Canon EF-S 15-85mm f/3.5-5.6 IS USM" },
|
|
||||||
{ 489, "Canon EF 70-300mm f/4-5.6L IS USM" },
|
|
||||||
{ 490, "Canon EF 8-15mm f/4L Fisheye USM" },
|
|
||||||
{ 491, "Canon EF 300mm f/2.8L IS II USM" }, // 0
|
|
||||||
{ 491, "Tamron SP 24-70mm f/2.8 Di VC USD G2" }, // 1
|
|
||||||
{ 492, "Canon EF 400mm f/2.8L IS II USM" },
|
|
||||||
{ 493, "Canon EF 500mm f/4L IS II USM" }, // 0
|
|
||||||
{ 493, "Canon EF 24-105mm f/4L IS USM" }, // 1
|
|
||||||
{ 494, "Canon EF 600mm f/4L IS II USM" },
|
|
||||||
{ 495, "Canon EF 24-70mm f/2.8L II USM" },
|
|
||||||
{ 496, "Canon EF 200-400mm f/4L IS USM" },
|
|
||||||
{ 499, "Canon EF 200-400mm f/4L IS USM + 1.4x" },
|
|
||||||
{ 502, "Canon EF 28mm f/2.8 IS USM" },
|
|
||||||
{ 503, "Canon EF 24mm f/2.8 IS USM" },
|
|
||||||
{ 504, "Canon EF 24-70mm f/4L IS USM" },
|
|
||||||
{ 505, "Canon EF 35mm f/2 IS USM" },
|
|
||||||
{ 506, "Canon EF 400mm f/4 DO IS II USM" },
|
|
||||||
{ 507, "Canon EF 16-35mm f/4L IS USM" },
|
|
||||||
{ 508, "Canon EF 11-24mm f/4L USM" },
|
|
||||||
{ 624, "Sigma 14mm f/1.8 DG HSM | A" }, // 0
|
|
||||||
{ 624, "Sigma 150-600mm f/5-6.3 DG OS HSM | C" }, // 1
|
|
||||||
{ 624, "Sigma 150-600mm f/5-6.3 DG OS HSM | C + 1.4x" }, // 2
|
|
||||||
{ 747, "Canon EF 100-400mm f/4.5-5.6L IS II USM" }, // 0
|
|
||||||
{ 747, "Tamron SP 150-600mm f/5-6.3 Di VC USD G2" }, // 1
|
|
||||||
{ 748, "Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x" },
|
|
||||||
{ 750, "Canon EF 35mm f/1.4L II USM" },
|
|
||||||
{ 751, "Canon EF 16-35mm f/2.8L III USM" },
|
|
||||||
{ 752, "Canon EF 24-105mm f/4L IS II USM" },
|
|
||||||
{ 4142,"Canon EF-S 18-135mm f/3.5-5.6 IS STM" },
|
|
||||||
{ 4143,"Canon EF-M 18-55mm f/3.5-5.6 IS STM" }, // 0
|
|
||||||
{ 4143,"Tamron 18-200mm f/3.5-6.3 Di III VC" }, // 1
|
|
||||||
{ 4144,"Canon EF 40mm f/2.8 STM" },
|
|
||||||
{ 4145,"Canon EF-M 22mm f/2 STM" },
|
|
||||||
{ 4146,"Canon EF-S 18-55mm f/3.5-5.6 IS STM" },
|
|
||||||
{ 4147,"Canon EF-M 11-22mm f/4-5.6 IS STM" },
|
|
||||||
{ 4148,"Canon EF-S 55-250mm f/4-5.6 IS STM" },
|
|
||||||
{ 4149,"Canon EF-M 55-200mm f/4.5-6.3 IS STM" },
|
|
||||||
{ 4150,"Canon EF-S 10-18mm f/4.5-5.6 IS STM" },
|
|
||||||
{ 4152,"Canon EF 24-105mm f/3.5-5.6 IS STM" },
|
|
||||||
{ 4153,"Canon EF-M 15-45mm f/3.5-6.3 IS STM" },
|
|
||||||
{ 4154,"Canon EF-S 24mm f/2.8 STM" },
|
|
||||||
{ 4155,"Canon EF-M 28mm f/3.5 Macro IS STM" },
|
|
||||||
{ 4156,"Canon EF 50mm f/1.8 STM" },
|
|
||||||
{ 4157,"Canon EF-M 18-150mm f/3.5-6.3 IS STM" },
|
|
||||||
{ 4158,"Canon EF-S 18-55mm f/4-5.6 IS STM" },
|
|
||||||
{ 4160,"Canon EF-S 35mm f/2.8 Macro IS STM" },
|
|
||||||
{36910,"Canon EF 70-300mm f/4-5.6 IS II USM" },
|
|
||||||
{36912,"Canon EF-S 18-135mm f/3.5-5.6 IS USM" },
|
|
||||||
'''
|
|
||||||
|
|
||||||
apertures = '1.0', '1.1', '1.2', '1.4', '1.6', '1.8', '2', '2.2', '2.5', '2.8', '3.2', '3.5', '4', '4.5', '5', '5.6', '6.3', '7.1', '8', '9', '10', '11', '13', '14', '16', '18', '20', '22', '25', '29', '32', '36', '40', '45'
|
|
||||||
fractions = {0: 0, 1: 12, 2: 20}
|
|
||||||
aperture_map = {value: (index // 3) * 32 + fractions[index % 3] for index, value in enumerate(apertures)}
|
|
||||||
aperture_map['3.8'] = '32000' # aperture value cannot be represented in metadata, ignore it by using invalid value
|
|
||||||
|
|
||||||
for lens_match in re.finditer('(?P<lens_id>[0-9]+),.*"(?P<lens_description>.*)"', lenses):
|
|
||||||
lens = lens_match.group('lens_description')
|
|
||||||
|
|
||||||
metadata_match = re.search('((?P<focal_length_min>[0-9]+)-)?(?P<focal_length_max>[0-9]+)mm.*f/(?P<aperture>[0-9]+(\\.[0-9]+)?)[^+]*(\\+ (?P<tc>[0-9.]+)x)?', lens)
|
|
||||||
if not metadata_match:
|
|
||||||
raise ValueError('Invalid lens format: ' + lens)
|
|
||||||
tc = float(metadata_match.group('tc') or 1)
|
|
||||||
|
|
||||||
testname = lens_match.group('lens_id') + '_' + lens
|
|
||||||
globals()[testname] = system_tests.CaseMeta('canon_lenses.' + testname, tuple(), {
|
|
||||||
'filename': '$data_path/template.exv',
|
|
||||||
'commands': ['$exiv2 -M"set Exif.CanonCs.LensType $lens_id" -M"set Exif.CanonCs.Lens $focal_length_max $focal_length_min 1" -M"set Exif.CanonCs.MaxAperture $aperture" $filename && $exiv2 -pa -K Exif.CanonCs.LensType $filename'],
|
|
||||||
'stderr': [''],
|
|
||||||
'stdout': ['Exif.CanonCs.LensType Short 1 $lens_description\n'],
|
|
||||||
'retval': [0],
|
|
||||||
**lens_match.groupdict(),
|
|
||||||
'aperture': aperture_map[metadata_match.group('aperture')],
|
|
||||||
'focal_length_min': int(int(metadata_match.group('focal_length_min') or metadata_match.group('focal_length_max')) * tc),
|
|
||||||
'focal_length_max': int(int(metadata_match.group('focal_length_max')) * tc),
|
|
||||||
})
|
|
@ -0,0 +1,81 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import re
|
||||||
|
import os
|
||||||
|
import system_tests
|
||||||
|
from lens_tests.utils import extract_lenses_from_cpp
|
||||||
|
|
||||||
|
# get directory of the current file
|
||||||
|
file_dir = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
# to get the canon maker note cpp file that contains list of all supported lenses
|
||||||
|
canon_lens_file = os.path.abspath(os.path.join(file_dir, "./../../src/canonmn_int.cpp"))
|
||||||
|
# tell the below function what the start of the lens array looks like
|
||||||
|
startpattern = "constexpr TagDetails canonCsLensType[] = {"
|
||||||
|
# use utils function to extract all lenses
|
||||||
|
lenses = extract_lenses_from_cpp(canon_lens_file, startpattern)
|
||||||
|
|
||||||
|
apertures = (
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"1.2",
|
||||||
|
"1.4",
|
||||||
|
"1.6",
|
||||||
|
"1.8",
|
||||||
|
"2",
|
||||||
|
"2.2",
|
||||||
|
"2.5",
|
||||||
|
"2.8",
|
||||||
|
"3.2",
|
||||||
|
"3.5",
|
||||||
|
"4",
|
||||||
|
"4.5",
|
||||||
|
"5",
|
||||||
|
"5.6",
|
||||||
|
"6.3",
|
||||||
|
"7.1",
|
||||||
|
"8",
|
||||||
|
"9",
|
||||||
|
"10",
|
||||||
|
"11",
|
||||||
|
"13",
|
||||||
|
"14",
|
||||||
|
"16",
|
||||||
|
"18",
|
||||||
|
"20",
|
||||||
|
"22",
|
||||||
|
"25",
|
||||||
|
"29",
|
||||||
|
"32",
|
||||||
|
"36",
|
||||||
|
"40",
|
||||||
|
"45",
|
||||||
|
)
|
||||||
|
|
||||||
|
fractions = {0: 0, 1: 12, 2: 20}
|
||||||
|
aperture_map = {value: (index // 3) * 32 + fractions[index % 3] for index, value in enumerate(apertures)}
|
||||||
|
aperture_map["3.8"] = "32000" # aperture value cannot be represented in metadata, ignore it by using invalid value
|
||||||
|
|
||||||
|
for (lens_id, lens_desc, meta) in lenses[:5]:
|
||||||
|
|
||||||
|
tc = float(meta["tc"] or 1)
|
||||||
|
|
||||||
|
testname = lens_id + "_" + lens_desc
|
||||||
|
|
||||||
|
globals()[testname] = system_tests.CaseMeta(
|
||||||
|
"canon_lenses." + testname,
|
||||||
|
tuple(),
|
||||||
|
{
|
||||||
|
"filename": "$data_path/template.exv",
|
||||||
|
"commands": [
|
||||||
|
'$exiv2 -M"set Exif.CanonCs.LensType $lens_id" -M"set Exif.CanonCs.Lens $focal_length_max $focal_length_min 1" -M"set Exif.CanonCs.MaxAperture $aperture_max" $filename && $exiv2 -pa -K Exif.CanonCs.LensType $filename'
|
||||||
|
],
|
||||||
|
"stderr": [""],
|
||||||
|
"stdout": ["Exif.CanonCs.LensType Short 1 $lens_description\n"],
|
||||||
|
"retval": [0],
|
||||||
|
"lens_id": lens_id,
|
||||||
|
"lens_description": lens_desc,
|
||||||
|
"aperture_max": aperture_map[meta["aperture_min"] or meta["aperture_max"]],
|
||||||
|
"focal_length_min": int(int(meta["focal_length_min"] or meta["focal_length_max"]) * tc),
|
||||||
|
"focal_length_max": int(int(meta["focal_length_max"]) * tc),
|
||||||
|
},
|
||||||
|
)
|
@ -0,0 +1,95 @@
|
|||||||
|
import re
|
||||||
|
import os
|
||||||
|
import logging
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
LENS_ENTRY_DEFAULT_RE = re.compile('^\{\s*(?P<lens_id>[0-9]+),\s*"(?P<lens_description>.*)"')
|
||||||
|
|
||||||
|
LENS_META_DEFAULT_RE = re.compile(
|
||||||
|
(
|
||||||
|
# anything at the start
|
||||||
|
".*?"
|
||||||
|
# maybe min focal length and hyhpen, surely max focal length e.g.: 24-70mm
|
||||||
|
"(?:(?P<focal_length_min>[0-9]+)-)?(?P<focal_length_max>[0-9]+)mm"
|
||||||
|
# anything inbetween
|
||||||
|
".*?"
|
||||||
|
# maybe short focal length max aperture and hyhpen, surely maxaperture e.g.: f/4.5-5.6
|
||||||
|
"f\/(?:(?P<aperture_min>[0-9]+(?:\.[0-9]+)?)-)?(?P<aperture_max>[0-9]+(?:\.[0-9])?)"
|
||||||
|
# check if there is a teleconverter pattern e.g. + 1.4x
|
||||||
|
"(?:.*?\+.*?(?P<tc>[0-9.]+x))?"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def parse_lens_entry(text, pattern=LENS_ENTRY_DEFAULT_RE):
|
||||||
|
"""get the ID, and description from a lens entry field
|
||||||
|
Expexted input format:
|
||||||
|
{ 748, "Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x" }
|
||||||
|
We return a dict of:
|
||||||
|
lens_id = 748
|
||||||
|
lens_description = "Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x"
|
||||||
|
"""
|
||||||
|
result = pattern.match(text)
|
||||||
|
return result.groups() if result else None
|
||||||
|
|
||||||
|
|
||||||
|
def extract_meta(text, pattern=LENS_META_DEFAULT_RE):
|
||||||
|
"""
|
||||||
|
Extract metadata from lens description.
|
||||||
|
Input expected in the form of e.g. "Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x"
|
||||||
|
We return a dict of:
|
||||||
|
focal_length_min = 100
|
||||||
|
focal_length_max = 400
|
||||||
|
aperture_min = 4.5
|
||||||
|
aperture_max = 5.6
|
||||||
|
tc = 1.4
|
||||||
|
"""
|
||||||
|
result = pattern.match(text)
|
||||||
|
|
||||||
|
return result.groupdict() if result else None
|
||||||
|
|
||||||
|
|
||||||
|
def extract_lenses_from_cpp(filename, start_pattern):
|
||||||
|
"""
|
||||||
|
Extract lens information from the lens descritpions array in a maker note cpp file
|
||||||
|
filename: path to cpp file
|
||||||
|
start_pattern: start_pattern == line.strip() should return True for
|
||||||
|
the starting line of the array containing the lenses.
|
||||||
|
returns: a list of lens entries containing a tuple of the form:
|
||||||
|
(lens ID, lens description, metadata dictionary)
|
||||||
|
for content of metadata see extract_meta() function.
|
||||||
|
"""
|
||||||
|
lenses = []
|
||||||
|
with open(filename, "r") as f:
|
||||||
|
in_lens_array = False
|
||||||
|
|
||||||
|
for line in f.readlines():
|
||||||
|
stripped = line.strip()
|
||||||
|
|
||||||
|
if stripped == start_pattern:
|
||||||
|
in_lens_array = True
|
||||||
|
continue
|
||||||
|
|
||||||
|
if stripped == "};":
|
||||||
|
in_lens_array = False
|
||||||
|
continue
|
||||||
|
|
||||||
|
if in_lens_array:
|
||||||
|
lens_entry = parse_lens_entry(stripped)
|
||||||
|
if not lens_entry:
|
||||||
|
log.error(f"Failure parsing lens entry: {stripped}.")
|
||||||
|
continue
|
||||||
|
|
||||||
|
if lens_entry[1] == "n/a":
|
||||||
|
continue
|
||||||
|
|
||||||
|
meta = extract_meta(lens_entry[1])
|
||||||
|
if not meta:
|
||||||
|
log.error(f"Failure extracing metadata from lens description: {lens_entry[1]}.")
|
||||||
|
continue
|
||||||
|
|
||||||
|
lenses.append((*lens_entry, meta))
|
||||||
|
return lenses
|
||||||
|
|
Loading…
Reference in New Issue