|
20 | 20 | from pytest import fixture |
21 | 21 |
|
22 | 22 | from immanuel import charts |
23 | | -from immanuel.const import calc, chart, names |
| 23 | +from immanuel.classes import wrap |
| 24 | +from immanuel.const import calc, chart, dignities, names |
24 | 25 | from immanuel.setup import settings |
25 | 26 | from immanuel.tools import convert |
26 | 27 |
|
@@ -95,6 +96,167 @@ def test_subject(dob, lat, lon, native, julian_date): |
95 | 96 | assert ambiguous_native.date_time_ambiguous == True |
96 | 97 |
|
97 | 98 |
|
| 99 | +def test_wrapped_data(native): |
| 100 | + settings.objects.append(chart.PRE_NATAL_LUNAR_ECLIPSE) |
| 101 | + natal_chart = charts.Natal(native) |
| 102 | + |
| 103 | + # Angle |
| 104 | + longitude = natal_chart.objects[chart.SUN].longitude |
| 105 | + assert longitude.raw == 280.6237802656368 |
| 106 | + assert longitude.formatted == '280°37\'26"' |
| 107 | + assert longitude.direction == '+' |
| 108 | + assert longitude.degrees == 280 |
| 109 | + assert longitude.minutes == 37 |
| 110 | + assert longitude.seconds == 26 |
| 111 | + |
| 112 | + # Aspect |
| 113 | + aspect = natal_chart.aspects[chart.SUN][chart.MOON] |
| 114 | + assert aspect.active == chart.MOON |
| 115 | + assert aspect.passive == chart.SUN |
| 116 | + assert aspect.type == names.ASPECTS[calc.SEXTILE] |
| 117 | + assert aspect.aspect == calc.SEXTILE |
| 118 | + assert aspect.orb == settings.planet_orbs[calc.SEXTILE] |
| 119 | + assert type(aspect.distance) is wrap.Angle # Tested separately, just ensure type |
| 120 | + assert type(aspect.difference) is wrap.Angle # Tested separately, just ensure type |
| 121 | + |
| 122 | + # AspectCondition |
| 123 | + assert aspect.condition.associate == True |
| 124 | + assert aspect.condition.dissociate == False |
| 125 | + assert aspect.condition.formatted == names.ASPECT_CONDITIONS[calc.ASSOCIATE] |
| 126 | + |
| 127 | + # AspectMovement |
| 128 | + assert aspect.movement.applicative == False |
| 129 | + assert aspect.movement.exact == False |
| 130 | + assert aspect.movement.separative == True |
| 131 | + assert aspect.movement.formatted == names.ASPECT_MOVEMENTS[calc.SEPARATIVE] |
| 132 | + |
| 133 | + # Coordinates |
| 134 | + assert type(natal_chart.native.coordinates.latitude) is wrap.Angle # Tested separately, just ensure type |
| 135 | + assert type(natal_chart.native.coordinates.longitude) is wrap.Angle # Tested separately, just ensure type |
| 136 | + |
| 137 | + # DateTime |
| 138 | + date_time = natal_chart.native.date_time |
| 139 | + assert type(date_time.datetime) is datetime |
| 140 | + assert date_time.timezone == 'PST' |
| 141 | + assert date_time.ambiguous == False |
| 142 | + assert date_time.julian == 2451545.25 |
| 143 | + assert date_time.deltat == 0.0007387629899254968 |
| 144 | + assert date_time.sidereal_time == '16:54:13' |
| 145 | + |
| 146 | + # MoonPhase |
| 147 | + moon_phase = natal_chart.moon_phase |
| 148 | + assert moon_phase.new_moon == False |
| 149 | + assert moon_phase.waxing_crescent == False |
| 150 | + assert moon_phase.first_quarter == False |
| 151 | + assert moon_phase.waxing_gibbous == False |
| 152 | + assert moon_phase.full_moon == False |
| 153 | + assert moon_phase.disseminating == False |
| 154 | + assert moon_phase.third_quarter == True |
| 155 | + assert moon_phase.balsamic == False |
| 156 | + assert moon_phase.formatted == names.MOON_PHASES[calc.THIRD_QUARTER] |
| 157 | + |
| 158 | + # Object |
| 159 | + sun = natal_chart.objects[chart.SUN] |
| 160 | + assert sun.index == chart.SUN |
| 161 | + assert sun.name == names.PLANETS[chart.SUN] |
| 162 | + assert sun.distance == 0.9833259257690341 |
| 163 | + assert sun.speed == 1.0194579691359147 |
| 164 | + assert sun.out_of_bounds == False |
| 165 | + assert sun.in_sect == True |
| 166 | + assert sun.score == 3 |
| 167 | + |
| 168 | + assert type(sun.latitude) is wrap.Angle # Tested separately, just ensure type |
| 169 | + assert type(sun.longitude) is wrap.Angle # Tested separately, just ensure type |
| 170 | + assert type(sun.sign_longitude) is wrap.Angle # Tested separately, just ensure type |
| 171 | + assert type(sun.declination) is wrap.Angle # Tested separately, just ensure type |
| 172 | + |
| 173 | + # ObjectType |
| 174 | + assert sun.type.index == chart.PLANET |
| 175 | + assert sun.type.name == names.OBJECTS[chart.PLANET] |
| 176 | + |
| 177 | + # Sign |
| 178 | + assert sun.sign.number == chart.CAPRICORN |
| 179 | + assert sun.sign.name == names.SIGNS[chart.CAPRICORN] |
| 180 | + assert sun.sign.element == names.ELEMENTS[chart.EARTH] |
| 181 | + assert sun.sign.modality == names.MODALITIES[chart.CARDINAL] |
| 182 | + |
| 183 | + # Decan |
| 184 | + assert sun.decan.number == chart.DECAN2 |
| 185 | + assert sun.decan.name == names.DECANS[chart.DECAN2] |
| 186 | + |
| 187 | + # House |
| 188 | + assert sun.house.index == chart.HOUSE11 |
| 189 | + assert sun.house.number == 11 |
| 190 | + assert sun.house.name == names.HOUSES[chart.HOUSE11] |
| 191 | + |
| 192 | + # ObjectMovement |
| 193 | + assert sun.movement.direct == True |
| 194 | + assert sun.movement.stationary == False |
| 195 | + assert sun.movement.retrograde == False |
| 196 | + assert sun.movement.typical == True |
| 197 | + assert sun.movement.formatted == names.OBJECT_MOVEMENTS[calc.DIRECT] |
| 198 | + |
| 199 | + # DignityState |
| 200 | + assert sun.dignities.ruler == False |
| 201 | + assert sun.dignities.exalted == False |
| 202 | + assert sun.dignities.triplicity_ruler == False |
| 203 | + assert sun.dignities.term_ruler == False |
| 204 | + assert sun.dignities.face_ruler == False |
| 205 | + assert sun.dignities.mutual_reception_ruler == False |
| 206 | + assert sun.dignities.mutual_reception_exalted == False |
| 207 | + assert sun.dignities.mutual_reception_triplicity_ruler == True |
| 208 | + assert sun.dignities.mutual_reception_term_ruler == False |
| 209 | + assert sun.dignities.mutual_reception_face_ruler == False |
| 210 | + assert sun.dignities.detriment == False |
| 211 | + assert sun.dignities.fall == False |
| 212 | + assert sun.dignities.peregrine == False |
| 213 | + assert sun.dignities.formatted == [ |
| 214 | + names.DIGNITIES[dignities.MUTUAL_RECEPTION_TRIPLICITY_RULER], |
| 215 | + ] |
| 216 | + |
| 217 | + # EclipseType |
| 218 | + eclipse = natal_chart.objects[chart.PRE_NATAL_LUNAR_ECLIPSE] |
| 219 | + assert eclipse.eclipse_type.total == False |
| 220 | + assert eclipse.eclipse_type.annular == False |
| 221 | + assert eclipse.eclipse_type.partial == True |
| 222 | + assert eclipse.eclipse_type.annular_total == False |
| 223 | + assert eclipse.eclipse_type.penumbral == False |
| 224 | + assert eclipse.eclipse_type.formatted == names.ECLIPSE_TYPES[chart.PARTIAL] |
| 225 | + |
| 226 | + assert type(eclipse.date_time) is wrap.DateTime # Tested separately, just ensure type |
| 227 | + |
| 228 | + # Subject |
| 229 | + subject = natal_chart.native |
| 230 | + assert type(subject.date_time) is wrap.DateTime # Tested separately, just ensure type |
| 231 | + assert type(subject.coordinates) is wrap.Coordinates # Tested separately, just ensure type |
| 232 | + |
| 233 | + # Weightings |
| 234 | + weightings = natal_chart.weightings |
| 235 | + assert type(weightings.elements) is wrap.Elements # Tested separately, just ensure type |
| 236 | + assert type(weightings.modalities) is wrap.Modalities # Tested separately, just ensure type |
| 237 | + assert type(weightings.quadrants) is wrap.Quadrants # Tested separately, just ensure type |
| 238 | + |
| 239 | + # Elements |
| 240 | + elements = natal_chart.weightings.elements |
| 241 | + assert type(elements.fire) is list |
| 242 | + assert type(elements.earth) is list |
| 243 | + assert type(elements.air) is list |
| 244 | + assert type(elements.water) is list |
| 245 | + |
| 246 | + # Modalities |
| 247 | + modalities = natal_chart.weightings.modalities |
| 248 | + assert type(modalities.cardinal) is list |
| 249 | + assert type(modalities.fixed) is list |
| 250 | + assert type(modalities.mutable) is list |
| 251 | + |
| 252 | + # Quadrants |
| 253 | + quadrants = natal_chart.weightings.quadrants |
| 254 | + assert type(quadrants.first) is list |
| 255 | + assert type(quadrants.second) is list |
| 256 | + assert type(quadrants.third) is list |
| 257 | + assert type(quadrants.fourth) is list |
| 258 | + |
| 259 | + |
98 | 260 | def test_natal(native, lat, lon): |
99 | 261 | natal_chart = charts.Natal(native) |
100 | 262 |
|
|
0 commit comments