Release v6.0.46: fix 5 completely wrong yoga rules, Precision 83.3%→92.5%, F1 87.2%→92.2%

- Fix kaalanirdesat_puthra_yoga (36→0 FPs): PyJHora 227/228 logic
- Fix sapthasankhya_sahodara_yoga (27→0 FPs): PyJHora L12+Mars+Moon+Jupiter+no Venus
- Fix sarpasaapa_yoga (25→0 FPs): PyJHora 212-215 variants
- Fix pushkala_yoga (9→0 FPs): PyJHora BVR-26 L1+Moon+dispositor
- Fix koorma_yoga (9→0 FPs): PyJHora BVR-54 method1
- Fix bhratrumooladdhanaprapti_yoga (9→0 FPs): PyJHora BVR-136
- Update hardcoded tests to match correct PyJHora logic
This commit is contained in:
732642856
2026-06-06 21:54:59 +08:00
parent aa505ea9f7
commit fffdbda22c
3 changed files with 427 additions and 255 deletions
+382 -212
View File
@@ -1,11 +1,14 @@
{
"summary": {
"charts_tested": 60,
"comparable_rules": 72,
"skill_total": 1020,
"pyjhora_total": 1027,
"unmapped_pyjhora": 740,
"comparable_rules": 82,
"skill_total": 1041,
"pyjhora_total": 1049,
"unmapped_pyjhora": 718,
"missing_mappings": {
"bvr_105_chandra_mangala_yoga": [
"chandra_mangala_yoga"
],
"bvr_amaranantha_dhana_yoga": [
"amaranantha_dhana_yoga"
],
@@ -14,9 +17,6 @@
"andha_yoga_289",
"andha_yoga"
],
"bvr_annadana_yoga": [
"annadana_yoga"
],
"bvr_anthya_vayasi_dhana_yoga": [
"anthya_vayasi_dhana_yoga"
],
@@ -29,18 +29,9 @@
"bvr_bhandhana_yoga": [
"bhandhana_yoga"
],
"bvr_bhratrumooladdhanaprapti_yoga": [
"bhratrumooladdhanaprapti_yoga"
],
"bvr_dehapushti_yoga": [
"dehapushti_yoga"
],
"bvr_dhurmarana_yoga": [
"dhurmarana_yoga"
],
"bvr_dwadasa_sahodara_yoga": [
"dwadasa_sahodara_yoga"
],
"bvr_go_yoga": [
"go_yoga"
],
@@ -59,10 +50,6 @@
"bvr_jananatpurvam_pitru_marana_yoga": [
"jananatpurvam_pitru_marana_yoga"
],
"bvr_kaalanirdesat_puthra_yoga": [
"kaalanirdesat_puthra_yoga_227",
"kaalanirdesat_puthra_yoga_228"
],
"bvr_kalatramooladdhana_yoga": [
"kalatramooladdhana_yoga"
],
@@ -82,38 +69,18 @@
"bvr_parakrama_yoga": [
"parakrama_yoga"
],
"bvr_parannabhojana_yoga": [
"parannabhojana_yoga"
],
"bvr_ruchaka_yoga": [
"ruchaka_yoga"
],
"bvr_sapthasankhya_sahodara_yoga": [
"sapthasankhya_sahodara_yoga"
],
"bvr_sarpa_yoga": [
"sarpa_yoga"
],
"bvr_sarpasaapa_yoga": [
"sarpasaapa_yoga_212",
"sarpasaapa_yoga_213",
"sarpasaapa_yoga"
],
"bvr_sasa_yoga": [
"sasa_yoga"
],
"bvr_sodaranasa_yoga": [
"sodaranasa_yoga"
],
"bvr_sraddhannabhuktha_precise": [
"sraddhannabhuktha_yoga"
],
"bvr_theevrabuddhi_yoga": [
"theevrabuddhi_yoga"
],
"bvr_thrikaala_gnana_yoga": [
"thrikaala_gnana_yoga"
],
"bvr_vahana_yoga": [
"vahana_yoga_209",
"vahana_yoga_210"
@@ -131,12 +98,12 @@
"yuddhatpoorvadridhachitta_yoga"
]
},
"agreements": 957,
"false_positives": 63,
"false_negatives": 70,
"precision": 0.9382,
"recall": 0.9318,
"f1": 0.935
"agreements": 963,
"false_positives": 78,
"false_negatives": 86,
"precision": 0.9251,
"recall": 0.918,
"f1": 0.9215
},
"false_positives": [
{
@@ -150,34 +117,49 @@
"rule_name": "Dharidhra Yoga"
},
{
"chart": "Nikola Tesla",
"rule_id": "pushkala_yoga",
"rule_name": "Pushkala Yoga"
"chart": "Albert Einstein",
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga"
},
{
"chart": "Nikola Tesla",
"rule_id": "bvr_bhratruvriddhi_precise",
"rule_name": "Bhratruvriddhi Yoga"
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Nikola Tesla",
"rule_id": "bvr_krisanga_yoga",
"rule_name": "Krisanga Yoga"
},
{
"chart": "Nikola Tesla",
"rule_id": "bvr_bhratruvriddhi_precise",
"rule_name": "Bhratruvriddhi Yoga"
},
{
"chart": "Stephen Hawking",
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Stephen Hawking",
"rule_id": "sankha_yoga",
"rule_name": "Sankha Yoga"
},
{
"chart": "Stephen Hawking",
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga"
},
{
"chart": "Charles Darwin",
"rule_id": "bvr_matru_sneha_yoga",
"rule_name": "Matru Sneha Yoga"
},
{
"chart": "Thomas Edison",
"rule_id": "koorma_yoga",
"rule_name": "Koorma Yoga"
"chart": "Charles Darwin",
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga"
},
{
"chart": "Alexander Fleming",
@@ -204,6 +186,16 @@
"rule_id": "vihaga_nabhasa",
"rule_name": "Vihaga Nabhasa Yoga"
},
{
"chart": "Niels Bohr",
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Niels Bohr",
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga"
},
{
"chart": "Richard Feynman",
"rule_id": "bvr_018_ubhayachara_precise",
@@ -211,19 +203,39 @@
},
{
"chart": "Mahatma Gandhi",
"rule_id": "pushkala_yoga",
"rule_name": "Pushkala Yoga"
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Mahatma Gandhi",
"rule_id": "bvr_utthama_graha_yoga",
"rule_name": "Utthama Griha Yoga"
},
{
"chart": "Mahatma Gandhi",
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga"
},
{
"chart": "Narendra Modi",
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Narendra Modi",
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga"
},
{
"chart": "Narendra Modi",
"rule_id": "bvr_swaveeryaddhana_precise",
"rule_name": "Swaveeryaddhana Yoga"
},
{
"chart": "Indira Gandhi",
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Indira Gandhi",
"rule_id": "bvr_swaveeryaddhana_precise",
@@ -231,23 +243,18 @@
},
{
"chart": "Nelson Mandela",
"rule_id": "pushkala_yoga",
"rule_name": "Pushkala Yoga"
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga"
},
{
"chart": "Abraham Lincoln",
"rule_id": "bvr_swaveeryaddhana_precise",
"rule_name": "Swaveeryaddhana Yoga"
},
{
"chart": "Margaret Thatcher",
"rule_id": "koorma_yoga",
"rule_name": "Koorma Yoga"
},
{
"chart": "Barack Obama",
"rule_id": "pushkala_yoga",
"rule_name": "Pushkala Yoga"
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Barack Obama",
@@ -261,19 +268,39 @@
},
{
"chart": "Pablo Picasso",
"rule_id": "bvr_018_ubhayachara_precise",
"rule_name": "Ubhayachara Yoga"
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Pablo Picasso",
"rule_id": "bvr_kapata_yoga",
"rule_name": "Kapata Yoga"
},
{
"chart": "Pablo Picasso",
"rule_id": "bvr_018_ubhayachara_precise",
"rule_name": "Ubhayachara Yoga"
},
{
"chart": "Elvis Presley",
"rule_id": "bvr_dharidhra_11_precise",
"rule_name": "Dharidhra Yoga"
},
{
"chart": "Lata Mangeshkar",
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Lata Mangeshkar",
"rule_id": "bvr_dwadasa_sahodara_yoga",
"rule_name": "Dwadasa Sahodara Yoga"
},
{
"chart": "Lata Mangeshkar",
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga"
},
{
"chart": "Steve Jobs",
"rule_id": "bvr_utthama_graha_yoga",
@@ -281,8 +308,8 @@
},
{
"chart": "Bill Gates",
"rule_id": "pushkala_yoga",
"rule_name": "Pushkala Yoga"
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Bill Gates",
@@ -295,44 +322,29 @@
"rule_name": "Adhi Yoga"
},
{
"chart": "Bill Gates",
"rule_id": "koorma_yoga",
"rule_name": "Koorma Yoga"
"chart": "Elon Musk",
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Elon Musk",
"rule_id": "pushkala_yoga",
"rule_name": "Pushkala Yoga"
},
{
"chart": "Elon Musk",
"rule_id": "koorma_yoga",
"rule_name": "Koorma Yoga"
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga"
},
{
"chart": "Warren Buffett",
"rule_id": "vihaga_nabhasa",
"rule_name": "Vihaga Nabhasa Yoga"
},
{
"chart": "Warren Buffett",
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Azim Premji",
"rule_id": "pushkala_yoga",
"rule_name": "Pushkala Yoga"
},
{
"chart": "Virat Kohli",
"rule_id": "koorma_yoga",
"rule_name": "Koorma Yoga"
},
{
"chart": "MS Dhoni",
"rule_id": "pushkala_yoga",
"rule_name": "Pushkala Yoga"
},
{
"chart": "MS Dhoni",
"rule_id": "koorma_yoga",
"rule_name": "Koorma Yoga"
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga"
},
{
"chart": "MS Dhoni",
@@ -341,14 +353,29 @@
},
{
"chart": "MS Dhoni",
"rule_id": "bvr_mathibhramana_yoga",
"rule_name": "Mathibhramana Yoga"
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "MS Dhoni",
"rule_id": "bvr_karma_malika_precise",
"rule_name": "Karma Malika Yoga"
},
{
"chart": "MS Dhoni",
"rule_id": "bvr_mathibhramana_yoga",
"rule_name": "Mathibhramana Yoga"
},
{
"chart": "Muhammad Ali",
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Lionel Messi",
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Lionel Messi",
"rule_id": "brahma_yoga",
@@ -361,24 +388,29 @@
},
{
"chart": "Cristiano Ronaldo",
"rule_id": "koorma_yoga",
"rule_name": "Koorma Yoga"
"rule_id": "vihaga_nabhasa",
"rule_name": "Vihaga Nabhasa Yoga"
},
{
"chart": "Cristiano Ronaldo",
"rule_id": "bvr_dwadasa_sahodara_yoga",
"rule_name": "Dwadasa Sahodara Yoga"
},
{
"chart": "Cristiano Ronaldo",
"rule_id": "sankha_yoga",
"rule_name": "Sankha Yoga"
},
{
"chart": "Cristiano Ronaldo",
"rule_id": "vihaga_nabhasa",
"rule_name": "Vihaga Nabhasa Yoga"
},
{
"chart": "Serena Williams",
"rule_id": "bvr_kapata_yoga",
"rule_name": "Kapata Yoga"
},
{
"chart": "Serena Williams",
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga"
},
{
"chart": "Pele",
"rule_id": "bvr_dharidhra_11_precise",
@@ -389,6 +421,16 @@
"rule_id": "bvr_dharidhra_11_precise",
"rule_name": "Dharidhra Yoga"
},
{
"chart": "Swami Vivekananda",
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga"
},
{
"chart": "Amitabh Bachchan",
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Amitabh Bachchan",
"rule_id": "bvr_dharidhra_11_precise",
@@ -406,8 +448,13 @@
},
{
"chart": "Princess Diana",
"rule_id": "bvr_ayatna_griha_prapta_yoga",
"rule_name": "Ayatna Griha Prapta Yoga"
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Princess Diana",
"rule_id": "bvr_bandhu_pujya_yoga",
"rule_name": "Bandhu Pujya Yoga"
},
{
"chart": "Princess Diana",
@@ -416,33 +463,28 @@
},
{
"chart": "Princess Diana",
"rule_id": "bvr_bandhu_pujya_yoga",
"rule_name": "Bandhu Pujya Yoga"
"rule_id": "bvr_ayatna_griha_prapta_yoga",
"rule_name": "Ayatna Griha Prapta Yoga"
},
{
"chart": "Dalai Lama",
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
},
{
"chart": "Dalai Lama",
"rule_id": "bvr_dharidhra_11_precise",
"rule_name": "Dharidhra Yoga"
},
{
"chart": "Osho",
"rule_id": "pushkala_yoga",
"rule_name": "Pushkala Yoga"
},
{
"chart": "Osho",
"rule_id": "koorma_yoga",
"rule_name": "Koorma Yoga"
},
{
"chart": "J. Krishnamurti",
"rule_id": "bvr_dehasthoulya_yoga",
"rule_name": "Dehasthoulya Yoga"
},
{
"chart": "J. Krishnamurti",
"rule_id": "koorma_yoga",
"rule_name": "Koorma Yoga"
"chart": "Ramana Maharshi",
"rule_id": "bvr_utthama_graha_yoga",
"rule_name": "Utthama Griha Yoga"
},
{
"chart": "Ramana Maharshi",
@@ -450,9 +492,9 @@
"rule_name": "Matru Sneha Yoga"
},
{
"chart": "Ramana Maharshi",
"rule_id": "bvr_utthama_graha_yoga",
"rule_name": "Utthama Griha Yoga"
"chart": "Paramahansa Yogananda",
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga"
}
],
"false_negatives": [
@@ -477,6 +519,15 @@
"mathibhramana_yoga_variation"
]
},
{
"chart": "Marie Curie",
"rule_id": "bvr_grihanasa_yoga",
"rule_name": "Grihanasa Yoga",
"pyjhora_names": [
"grihanasa_yoga_191",
"grihanasa_yoga_192"
]
},
{
"chart": "Marie Curie",
"rule_id": "parvata_yoga",
@@ -487,11 +538,18 @@
},
{
"chart": "Marie Curie",
"rule_id": "bvr_grihanasa_yoga",
"rule_name": "Grihanasa Yoga",
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga",
"pyjhora_names": [
"grihanasa_yoga_191",
"grihanasa_yoga_192"
"thrikaala_gnana_yoga"
]
},
{
"chart": "Charles Darwin",
"rule_id": "bvr_annadana_yoga",
"rule_name": "Annadana Yoga",
"pyjhora_names": [
"annadana_yoga"
]
},
{
@@ -530,6 +588,14 @@
"dharidhra_yoga_152"
]
},
{
"chart": "Max Planck",
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga",
"pyjhora_names": [
"thrikaala_gnana_yoga"
]
},
{
"chart": "Niels Bohr",
"rule_id": "bvr_mathibhramana_yoga",
@@ -543,11 +609,11 @@
]
},
{
"chart": "Mahatma Gandhi",
"rule_id": "brahma_yoga",
"rule_name": "Brahma Yoga",
"chart": "Richard Feynman",
"rule_id": "bvr_parannabhojana_yoga",
"rule_name": "Parannabhojana Yoga",
"pyjhora_names": [
"brahma_yoga"
"parannabhojana_yoga"
]
},
{
@@ -567,6 +633,14 @@
"matrudeerghayur_yoga_197"
]
},
{
"chart": "Mahatma Gandhi",
"rule_id": "brahma_yoga",
"rule_name": "Brahma Yoga",
"pyjhora_names": [
"brahma_yoga"
]
},
{
"chart": "Narendra Modi",
"rule_id": "bvr_nishkapata_precise",
@@ -576,6 +650,14 @@
"nishkapata_yoga_206"
]
},
{
"chart": "Indira Gandhi",
"rule_id": "bvr_annadana_yoga",
"rule_name": "Annadana Yoga",
"pyjhora_names": [
"annadana_yoga"
]
},
{
"chart": "Indira Gandhi",
"rule_id": "bvr_sumukha_precise",
@@ -601,6 +683,14 @@
"nishkapata_yoga_206"
]
},
{
"chart": "John F. Kennedy",
"rule_id": "bvr_annadana_yoga",
"rule_name": "Annadana Yoga",
"pyjhora_names": [
"annadana_yoga"
]
},
{
"chart": "John F. Kennedy",
"rule_id": "bvr_mathibhramana_yoga",
@@ -613,6 +703,14 @@
"mathibhramana_yoga_variation"
]
},
{
"chart": "Nelson Mandela",
"rule_id": "bvr_parannabhojana_yoga",
"rule_name": "Parannabhojana Yoga",
"pyjhora_names": [
"parannabhojana_yoga"
]
},
{
"chart": "Nelson Mandela",
"rule_id": "bvr_apakeerthi_yoga",
@@ -635,6 +733,14 @@
"dharidhra_yoga_152"
]
},
{
"chart": "Abraham Lincoln",
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga",
"pyjhora_names": [
"thrikaala_gnana_yoga"
]
},
{
"chart": "Margaret Thatcher",
"rule_id": "bvr_kapata_yoga",
@@ -645,6 +751,14 @@
"kapata_yoga_204"
]
},
{
"chart": "Margaret Thatcher",
"rule_id": "bvr_matru_satrutwa_yoga",
"rule_name": "Matru Satrutwa Yoga",
"pyjhora_names": [
"matru_satrutwa_yoga"
]
},
{
"chart": "Margaret Thatcher",
"rule_id": "bvr_nishkapata_precise",
@@ -655,11 +769,11 @@
]
},
{
"chart": "Margaret Thatcher",
"rule_id": "bvr_matru_satrutwa_yoga",
"rule_name": "Matru Satrutwa Yoga",
"chart": "Barack Obama",
"rule_id": "bvr_annadana_yoga",
"rule_name": "Annadana Yoga",
"pyjhora_names": [
"matru_satrutwa_yoga"
"annadana_yoga"
]
},
{
@@ -688,6 +802,30 @@
"brahma_yoga"
]
},
{
"chart": "Ludwig van Beethoven",
"rule_id": "bvr_annadana_yoga",
"rule_name": "Annadana Yoga",
"pyjhora_names": [
"annadana_yoga"
]
},
{
"chart": "Ludwig van Beethoven",
"rule_id": "bvr_thrikaala_gnana_yoga",
"rule_name": "Thrikaala Gnana Yoga",
"pyjhora_names": [
"thrikaala_gnana_yoga"
]
},
{
"chart": "Wolfgang Mozart",
"rule_id": "bvr_theevrabuddhi_yoga",
"rule_name": "Theevrabuddhi Yoga",
"pyjhora_names": [
"theevrabuddhi_yoga"
]
},
{
"chart": "Wolfgang Mozart",
"rule_id": "bvr_kapata_yoga",
@@ -724,6 +862,14 @@
"raja_bhanga_yoga_299"
]
},
{
"chart": "Vincent van Gogh",
"rule_id": "bvr_yuddha_marana_yoga",
"rule_name": "Yuddha Marana Yoga",
"pyjhora_names": [
"yuddha_marana_yoga"
]
},
{
"chart": "Vincent van Gogh",
"rule_id": "bvr_mathibhramana_yoga",
@@ -736,14 +882,6 @@
"mathibhramana_yoga_variation"
]
},
{
"chart": "Vincent van Gogh",
"rule_id": "bvr_yuddha_marana_yoga",
"rule_name": "Yuddha Marana Yoga",
"pyjhora_names": [
"yuddha_marana_yoga"
]
},
{
"chart": "Charlie Chaplin",
"rule_id": "bvr_matrunasa_precise",
@@ -833,6 +971,14 @@
"adhi_yoga"
]
},
{
"chart": "Azim Premji",
"rule_id": "bvr_bahu_sthree_yoga",
"rule_name": "Bahu Sthree Yoga",
"pyjhora_names": [
"bahu_sthree_yoga"
]
},
{
"chart": "Azim Premji",
"rule_id": "bvr_bahu_puthra_precise",
@@ -844,10 +990,11 @@
},
{
"chart": "Azim Premji",
"rule_id": "bvr_bahu_sthree_yoga",
"rule_name": "Bahu Sthree Yoga",
"rule_id": "bvr_ayatna_griha_prapta_yoga",
"rule_name": "Ayatna Griha Prapta Yoga",
"pyjhora_names": [
"bahu_sthree_yoga"
"ayatna_griha_prapta_yoga_189",
"ayatna_griha_prapta_yoga_190"
]
},
{
@@ -859,15 +1006,6 @@
"nishkapata_yoga_206"
]
},
{
"chart": "Azim Premji",
"rule_id": "bvr_ayatna_griha_prapta_yoga",
"rule_name": "Ayatna Griha Prapta Yoga",
"pyjhora_names": [
"ayatna_griha_prapta_yoga_189",
"ayatna_griha_prapta_yoga_190"
]
},
{
"chart": "Muhammad Ali",
"rule_id": "pushkala_yoga",
@@ -895,21 +1033,11 @@
},
{
"chart": "Lionel Messi",
"rule_id": "bvr_kapata_yoga",
"rule_name": "Kapata Yoga",
"rule_id": "bvr_matrudeerghayur_yoga",
"rule_name": "Matrudeerghayur Yoga",
"pyjhora_names": [
"kapata_yoga_202",
"kapata_yoga_203",
"kapata_yoga_204"
]
},
{
"chart": "Lionel Messi",
"rule_id": "bvr_matrunasa_precise",
"rule_name": "Matrunasa Yoga",
"pyjhora_names": [
"matrunasa_yoga_198",
"matrunasa_yoga_199"
"matrudeerghayur_yoga_196",
"matrudeerghayur_yoga_197"
]
},
{
@@ -928,11 +1056,21 @@
},
{
"chart": "Lionel Messi",
"rule_id": "bvr_matrudeerghayur_yoga",
"rule_name": "Matrudeerghayur Yoga",
"rule_id": "bvr_matrunasa_precise",
"rule_name": "Matrunasa Yoga",
"pyjhora_names": [
"matrudeerghayur_yoga_196",
"matrudeerghayur_yoga_197"
"matrunasa_yoga_198",
"matrunasa_yoga_199"
]
},
{
"chart": "Lionel Messi",
"rule_id": "bvr_kapata_yoga",
"rule_name": "Kapata Yoga",
"pyjhora_names": [
"kapata_yoga_202",
"kapata_yoga_203",
"kapata_yoga_204"
]
},
{
@@ -955,6 +1093,14 @@
"mathibhramana_yoga_variation"
]
},
{
"chart": "Pele",
"rule_id": "bvr_parannabhojana_yoga",
"rule_name": "Parannabhojana Yoga",
"pyjhora_names": [
"parannabhojana_yoga"
]
},
{
"chart": "Roger Federer",
"rule_id": "parvata_yoga",
@@ -963,6 +1109,14 @@
"parvata_yoga"
]
},
{
"chart": "Swami Vivekananda",
"rule_id": "bvr_parannabhojana_yoga",
"rule_name": "Parannabhojana Yoga",
"pyjhora_names": [
"parannabhojana_yoga"
]
},
{
"chart": "Amitabh Bachchan",
"rule_id": "bvr_kapata_yoga",
@@ -973,6 +1127,14 @@
"kapata_yoga_204"
]
},
{
"chart": "Queen Elizabeth II",
"rule_id": "bvr_dwadasa_sahodara_yoga",
"rule_name": "Dwadasa Sahodara Yoga",
"pyjhora_names": [
"dwadasa_sahodara_yoga"
]
},
{
"chart": "Princess Diana",
"rule_id": "kahala_yoga",
@@ -981,6 +1143,26 @@
"kahala_yoga"
]
},
{
"chart": "Princess Diana",
"rule_id": "bvr_bandhubhisthyaktha_precise",
"rule_name": "Bandhubhisthyaktha Yoga",
"pyjhora_names": [
"bandhubhisthyaktha_yoga"
]
},
{
"chart": "Princess Diana",
"rule_id": "bvr_mathibhramana_yoga",
"rule_name": "Mathibhramana Yoga",
"pyjhora_names": [
"mathibhramana_yoga_291",
"mathibhramana_yoga_292",
"mathibhramana_yoga_293",
"mathibhramana_yoga_294",
"mathibhramana_yoga_variation"
]
},
{
"chart": "Princess Diana",
"rule_id": "bvr_kapata_yoga",
@@ -1000,26 +1182,6 @@
"matrudeerghayur_yoga_197"
]
},
{
"chart": "Princess Diana",
"rule_id": "bvr_mathibhramana_yoga",
"rule_name": "Mathibhramana Yoga",
"pyjhora_names": [
"mathibhramana_yoga_291",
"mathibhramana_yoga_292",
"mathibhramana_yoga_293",
"mathibhramana_yoga_294",
"mathibhramana_yoga_variation"
]
},
{
"chart": "Princess Diana",
"rule_id": "bvr_bandhubhisthyaktha_precise",
"rule_name": "Bandhubhisthyaktha Yoga",
"pyjhora_names": [
"bandhubhisthyaktha_yoga"
]
},
{
"chart": "Dalai Lama",
"rule_id": "bvr_utthama_graha_yoga",
@@ -1036,6 +1198,14 @@
"brahma_yoga"
]
},
{
"chart": "Pope Francis",
"rule_id": "bvr_annadana_yoga",
"rule_name": "Annadana Yoga",
"pyjhora_names": [
"annadana_yoga"
]
},
{
"chart": "Pope Francis",
"rule_id": "bvr_raja_bhanga_yoga",
@@ -1053,14 +1223,6 @@
"bhratruvriddhi_yoga"
]
},
{
"chart": "J. Krishnamurti",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
"rule_name": "Vanchana Chora Bheethi Yoga",
"pyjhora_names": [
"vanchana_chora_bheethi_yoga"
]
},
{
"chart": "J. Krishnamurti",
"rule_id": "bvr_grihanasa_yoga",
@@ -1070,6 +1232,14 @@
"grihanasa_yoga_192"
]
},
{
"chart": "J. Krishnamurti",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
"rule_name": "Vanchana Chora Bheethi Yoga",
"pyjhora_names": [
"vanchana_chora_bheethi_yoga"
]
},
{
"chart": "Ramana Maharshi",
"rule_id": "bvr_pittharoga_yoga",
@@ -1078,6 +1248,15 @@
"pittharoga_yoga"
]
},
{
"chart": "Paramahansa Yogananda",
"rule_id": "bvr_dattha_puthra_yoga",
"rule_name": "Dattha Puthra Yoga",
"pyjhora_names": [
"dattha_puthra_yoga_222",
"dattha_puthra_yoga_223"
]
},
{
"chart": "Paramahansa Yogananda",
"rule_id": "bvr_matrunasa_precise",
@@ -1094,15 +1273,6 @@
"pyjhora_names": [
"bandhubhisthyaktha_yoga"
]
},
{
"chart": "Paramahansa Yogananda",
"rule_id": "bvr_dattha_puthra_yoga",
"rule_name": "Dattha Puthra Yoga",
"pyjhora_names": [
"dattha_puthra_yoga_222",
"dattha_puthra_yoga_223"
]
}
]
}
+6 -6
View File
@@ -1418,7 +1418,7 @@
"category": "auspicious",
"logic": {
"type": "custom",
"expr": "\nben_in_1 = [p for p in BENEFICS if p in ctx.planets and house_of(p) == 1]\nlord_5 = lord(5)\nlord_9 = lord(9)\nlord_5_or_9_in_1 = False\nfor lp in [lord_5, lord_9]:\n if lp in ctx.planets and house_of(lp) == 1:\n lord_5_or_9_in_1 = True\nbool(ben_in_1 and lord_5_or_9_in_1)\n",
"expr": "\n# BVR-54 Method 1 v6.0.46: 5/6/7 all occupied by strong benefics OR 1/3/11 all occupied by strong benefics\ndef strong_b(p):\n hs = house_strength(p)\n return hs is not None and hs >= 2\ndef houses_all_strong_benefics(houses):\n for h in houses:\n occ = [p for p in ctx.planets if house_of(p) == h]\n if not occ or not all(p in BENEFICS and strong_b(p) for p in occ):\n return False\n return True\nhouses_all_strong_benefics([5,6,7]) or houses_all_strong_benefics([1,3,11])\n",
"combo_template": "吉星在1宫+5/9宫主在1宫"
},
"effects": [
@@ -2070,7 +2070,7 @@
"category": "special",
"logic": {
"type": "custom",
"expr": "\nasc_lord = SIGN_LORDS.get(ctx.ascendant)\nif asc_lord not in ctx.planets:\n False\nelse:\n asc_strong = exalted(asc_lord) or own(asc_lord)\n moon_ok = 'Moon' in ctx.planets and sign_of('Moon') != DEBILITATION.get('Moon')\n ben_in_asc = [p for p in BENEFICS if p in ctx.planets and house_of(p) == 1]\n asc_strong and moon_ok and bool(ben_in_asc)\n",
"expr": "\n# BVR-26 v6.0.46: (1)L1 with Moon (2)Moon's dispositor in kendra/Adhimitra (3)dispositor rasi-aspects Lagna\nl1 = lord_of_house(1)\nif l1 is None or l1 not in ctx.planets or 'Moon' not in ctx.planets: False\nelif house_of(l1) != house_of('Moon'): False\nelse:\n moon_sign = sign_of('Moon')\n moon_disp = SIGN_LORDS.get(moon_sign)\n if moon_disp not in ctx.planets: False\n else:\n disp_h = house_of(moon_disp)\n disp_sign = sign_of(moon_disp)\n disp_sign_lord = SIGN_LORDS.get(disp_sign)\n is_adhimitra = disp_sign_lord and natural_friend(moon_disp, disp_sign_lord)\n if not (kendra(disp_h) or is_adhimitra): False\n else:\n rasi_aspects_house(moon_disp, 1)\n",
"combo_template": "上升主有力+月亮良好+吉星在1宫"
},
"effects": [
@@ -9949,7 +9949,7 @@
"category": "dhana",
"logic": {
"type": "custom",
"expr": "\nl3 = ctx.lord_of_house(3)\nif not l3 or 'Mars' not in ctx.planets: False\nelse:\n (l3 in ctx.planets and ctx.is_kendra(ctx.house_of(l3))) and ctx.is_kendra(ctx.house_of('Mars'))\n"
"expr": "\n# BVR-136 v6.0.46: L1 and L2 both in 3rd, 3rd house rasi-aspected by a benefic\nl1 = lord_of_house(1)\nl2 = lord_of_house(2)\nif not l1 or l1 not in ctx.planets or not l2 or l2 not in ctx.planets: False\nelse:\n cond1 = house_of(l1) == 3 and house_of(l2) == 3\n h3_benefic_aspected = any(rasi_aspects_house(b, 3) for b in BENEFICS if b in ctx.planets)\n cond1 and h3_benefic_aspected\n"
},
"effects": [
"Wealth through siblings"
@@ -11057,7 +11057,7 @@
"category": "putra",
"logic": {
"type": "custom",
"expr": "\njup_in_5 = 'Jupiter' in ctx.planets and ctx.house_of('Jupiter') == 5\nl5 = ctx.lord_of_house(5)\nl5_strong = l5 in ctx.planets and (ctx.is_exalted(l5) or ctx.is_own_sign(l5) or ctx.is_kendra(ctx.house_of(l5)) or ctx.is_trikona(ctx.house_of(l5)))\njup_in_5 or l5_strong\n"
"expr": "\n# BVR-225 v6.0.46: 227-Jupiter in 5th AND L5 joins Venus; 228-Jupiter in 9th AND Venus in 9th from Jupiter AND Venus with L1\nju = house_of('Jupiter') if 'Jupiter' in ctx.planets else None\nve = house_of('Venus') if 'Venus' in ctx.planets else None\nif ju is None or ve is None: False\nelse:\n l5 = lord_of_house(5)\n l1 = lord_of_house(1)\n cond227 = ju == 5 and l5 in ctx.planets and house_of(l5) == ve\n jup_9th = ((ju - 1 + 8) % 12) + 1\n cond228 = ju == 9 and ve == jup_9th and l1 in ctx.planets and house_of(l1) == ve\n cond227 or cond228\n"
},
"effects": [
"Children at a specific time, delayed but certain progeny"
@@ -12378,7 +12378,7 @@
"category": "special",
"logic": {
"type": "custom",
"expr": "\nl3 = ctx.lord_of_house(3)\nh5_occupied = len(ctx.planets_in_house(5)) > 0\nl3_aspects_5 = l3 in ctx.planets and aspect(l3, 5)\nh5_occupied or l3_aspects_5\n"
"expr": "\n# BVR-179 v6.0.46: L12 joins Mars; Moon+Jupiter both in 3rd; Venus neither in 3rd nor aspecting Moon\nl12 = lord_of_house(12)\nif l12 is None or l12 not in ctx.planets: False\nelse:\n cond1 = 'Mars' in ctx.planets and house_of(l12) == house_of('Mars')\n cond2 = 'Moon' in ctx.planets and 'Jupiter' in ctx.planets and house_of('Moon') == 3 and house_of('Jupiter') == 3\n cond3 = 'Venus' not in ctx.planets or house_of('Venus') != 3\n cond4 = not aspect('Venus', 'Moon') if 'Venus' in ctx.planets and 'Moon' in ctx.planets else True\n cond1 and cond2 and cond3 and cond4\n"
},
"effects": [
"Seven siblings, moderate family size"
@@ -12499,7 +12499,7 @@
"category": "special",
"logic": {
"type": "custom",
"expr": "\nketu_h = ctx.house_of('Ketu') if 'Ketu' in ctx.planets else None\nif ketu_h is None: False\nelse:\n sat_ketu_5_7_9 = 'Saturn' in ctx.planets and ctx.house_of('Saturn') == ketu_h and ketu_h in (5,7,9)\n ketu_dusthana = ketu_h in (6,8,12)\n sat_ketu_5_7_9 or ketu_dusthana\n"
"expr": "\n# BVR-212-215 v6.0.46: 4 variants - Rahu/5th house/Mars/Saturn/Moon/Jupiter/Mercury combinations\nrahu_h = house_of('Rahu') if 'Rahu' in ctx.planets else None\nmars_h = house_of('Mars') if 'Mars' in ctx.planets else None\nsat_h = house_of('Saturn') if 'Saturn' in ctx.planets else None\nmoon_h = house_of('Moon') if 'Moon' in ctx.planets else None\njup_h = house_of('Jupiter') if 'Jupiter' in ctx.planets else None\nmerc_h = house_of('Mercury') if 'Mercury' in ctx.planets else None\nl5 = lord_of_house(5)\n\n# 212: Rahu in 5th + Mars aspects Rahu, OR 5th is Mars sign + Rahu in 5th\ncond212 = rahu_h == 5 and (('Mars' in ctx.planets and aspect('Mars', 'Rahu')) or l5 == 'Mars')\n\n# 213: L5 with Rahu + Saturn in 5th + (Moon in 5th or Moon aspects 5th)\ncond213 = False\nif l5 in ctx.planets and rahu_h is not None and sat_h is not None:\n l5_rahu = house_of(l5) == rahu_h\n moon_in_5_or_aspects = moon_h == 5 or (moon_h is not None and offset(moon_h, 5) == 6)\n cond213 = l5_rahu and sat_h == 5 and moon_in_5_or_aspects\n\n# 214: Jupiter + Mars together + Rahu in Lagna + L5 in dusthana\ncond214 = False\nif jup_h is not None and mars_h is not None and rahu_h is not None:\n jup_mars = jup_h == mars_h\n rahu_lagna = rahu_h == 1\n l5_dusthana = l5 in ctx.planets and house_of(l5) in (6, 8, 12)\n cond214 = jup_mars and rahu_lagna and l5_dusthana\n\n# 215: 5th is Mars' sign + Rahu in 5th + (Mercury in 5th or Mercury aspects 5th)\ncond215 = False\nif rahu_h is not None and merc_h is not None:\n cond215 = l5 == 'Mars' and rahu_h == 5 and (merc_h == 5 or graha_aspects_house('Mercury', 5))\n\ncond212 or cond213 or cond214 or cond215\n"
},
"effects": [
"Danger from snakes, karmic snake curse"
+39 -37
View File
@@ -26,65 +26,67 @@ print('Hardcoded Yoga Tests (PyJHora style)')
print('=' * 55)
# -------------------------------------------------------
# pushkala_yoga: asc_lord exalted/own + Moon not deb + benefic in 1st
# pushkala_yoga (BVR-26): L1 with Moon; Moon's dispositor in kendra/Adhimitra + rasi-aspects Lagna
# -------------------------------------------------------
print('\n--- pushkala_yoga ---')
results.append(check('True-lion-asc-exalted-sun', 'pushkala_yoga', {
# Leo asc, Sun(L1) in 5th/Gemini with Moon, dispositor=Mercury in 10th/Capricorn(kendra, rasi-aspects Leo)
results.append(check('True-l1-with-moon-disp-kendra', 'pushkala_yoga', {
'Sun':{'house':5,'sign':'Gemini','degree':10},'Moon':{'house':5,'sign':'Gemini','degree':15},
'Mars':{'house':8,'sign':'Pisces','degree':10},'Mercury':{'house':10,'sign':'Capricorn','degree':10},
'Jupiter':{'house':11,'sign':'Sagittarius','degree':5},'Venus':{'house':2,'sign':'Libra','degree':10},
'Saturn':{'house':7,'sign':'Aquarius','degree':10},'Rahu':{'house':6,'sign':'Capricorn','degree':10},
'Ketu':{'house':12,'sign':'Cancer','degree':10},
}, 'Leo', True))
results.append(check('False-l1-not-with-moon', 'pushkala_yoga', {
'Sun':{'house':9,'sign':'Aries','degree':10},'Moon':{'house':5,'sign':'Gemini','degree':15},
'Mars':{'house':8,'sign':'Pisces','degree':10},'Mercury':{'house':2,'sign':'Virgo','degree':10},
'Jupiter':{'house':1,'sign':'Sagittarius','degree':5},'Venus':{'house':11,'sign':'Gemini','degree':10},
'Saturn':{'house':7,'sign':'Aquarius','degree':10},'Rahu':{'house':6,'sign':'Capricorn','degree':10},
'Ketu':{'house':12,'sign':'Cancer','degree':10},
}, 'Leo', True))
}, 'Leo', False))
results.append(check('False-gemini-asc-neutral', 'pushkala_yoga', {
'Sun':{'house':12,'sign':'Taurus','degree':10},'Moon':{'house':6,'sign':'Libra','degree':15},
'Mars':{'house':3,'sign':'Virgo','degree':10},'Mercury':{'house':11,'sign':'Pisces','degree':10},
'Jupiter':{'house':7,'sign':'Pisces','degree':5},'Venus':{'house':5,'sign':'Sagittarius','degree':10},
'Saturn':{'house':8,'sign':'Capricorn','degree':10},'Rahu':{'house':4,'sign':'Scorpio','degree':10},
'Ketu':{'house':10,'sign':'Taurus','degree':10},
}, 'Gemini', False))
results.append(check('False-moon-debilitated', 'pushkala_yoga', {
'Sun':{'house':9,'sign':'Aries','degree':10},'Moon':{'house':12,'sign':'Scorpio','degree':15},
'Mars':{'house':4,'sign':'Scorpio','degree':10},'Mercury':{'house':8,'sign':'Pisces','degree':10},
results.append(check('False-disp-not-kendra', 'pushkala_yoga', {
'Sun':{'house':5,'sign':'Gemini','degree':10},'Moon':{'house':5,'sign':'Gemini','degree':15},
'Mars':{'house':4,'sign':'Scorpio','degree':10},'Mercury':{'house':12,'sign':'Pisces','degree':10},
'Jupiter':{'house':1,'sign':'Sagittarius','degree':5},'Venus':{'house':2,'sign':'Virgo','degree':10},
'Saturn':{'house':6,'sign':'Capricorn','degree':10},'Rahu':{'house':3,'sign':'Libra','degree':10},
'Ketu':{'house':9,'sign':'Aries','degree':10},
}, 'Leo', False))
# -------------------------------------------------------
# koorma_yoga: benefic in 1st AND (5th or 9th lord in 1st)
# koorma_yoga (BVR-54 Method 1): 5/6/7 all strong benefics OR 1/3/11 all strong benefics
# -------------------------------------------------------
print('\n--- koorma_yoga ---')
results.append(check('True-5th-lord-in-1st', 'koorma_yoga', {
# 1/3/11 all occupied by strong benefics: Jupiter(1/Leo), Venus(3/Libra), Moon(11/Gemini)
results.append(check('True-benefics-in-1-3-11', 'koorma_yoga', {
'Sun':{'house':12,'sign':'Taurus','degree':10},'Moon':{'house':11,'sign':'Gemini','degree':15},
'Mars':{'house':8,'sign':'Pisces','degree':10},'Mercury':{'house':2,'sign':'Virgo','degree':10},
'Jupiter':{'house':1,'sign':'Leo','degree':5},'Venus':{'house':3,'sign':'Libra','degree':10},
'Saturn':{'house':7,'sign':'Aquarius','degree':10},'Rahu':{'house':6,'sign':'Capricorn','degree':10},
'Ketu':{'house':12,'sign':'Cancer','degree':10},
}, 'Leo', True))
results.append(check('False-malefic-in-target-houses', 'koorma_yoga', {
'Sun':{'house':1,'sign':'Leo','degree':10},'Moon':{'house':5,'sign':'Sagittarius','degree':15},
'Mars':{'house':10,'sign':'Taurus','degree':10},'Mercury':{'house':2,'sign':'Virgo','degree':10},
'Jupiter':{'house':9,'sign':'Aries','degree':5},'Venus':{'house':11,'sign':'Gemini','degree':10},
'Saturn':{'house':7,'sign':'Aquarius','degree':10},'Rahu':{'house':4,'sign':'Scorpio','degree':10},
'Ketu':{'house':10,'sign':'Taurus','degree':10},
}, 'Leo', False))
results.append(check('False-empty-target-house', 'koorma_yoga', {
'Sun':{'house':9,'sign':'Aries','degree':10},'Moon':{'house':5,'sign':'Gemini','degree':15},
'Mars':{'house':8,'sign':'Pisces','degree':10},'Mercury':{'house':2,'sign':'Virgo','degree':10},
'Jupiter':{'house':1,'sign':'Sagittarius','degree':5},'Venus':{'house':11,'sign':'Gemini','degree':10},
'Saturn':{'house':7,'sign':'Aquarius','degree':10},'Rahu':{'house':6,'sign':'Capricorn','degree':10},
'Ketu':{'house':12,'sign':'Cancer','degree':10},
}, 'Leo', True))
results.append(check('True-9th-lord-in-1st', 'koorma_yoga', {
'Sun':{'house':9,'sign':'Aries','degree':10},'Moon':{'house':5,'sign':'Gemini','degree':15},
'Mars':{'house':1,'sign':'Aries','degree':5},'Mercury':{'house':2,'sign':'Virgo','degree':10},
'Jupiter':{'house':11,'sign':'Sagittarius','degree':5},'Venus':{'house':1,'sign':'Libra','degree':10},
'Saturn':{'house':7,'sign':'Aquarius','degree':10},'Rahu':{'house':6,'sign':'Capricorn','degree':10},
'Ketu':{'house':12,'sign':'Cancer','degree':10},
}, 'Leo', True))
results.append(check('False-ben-in-1st-no-lord', 'koorma_yoga', {
'Sun':{'house':9,'sign':'Aries','degree':10},'Moon':{'house':5,'sign':'Gemini','degree':15},
'Mars':{'house':8,'sign':'Pisces','degree':10},'Mercury':{'house':1,'sign':'Virgo','degree':10},
'Jupiter':{'house':11,'sign':'Sagittarius','degree':5},'Venus':{'house':2,'sign':'Libra','degree':10},
'Jupiter':{'house':12,'sign':'Sagittarius','degree':5},'Venus':{'house':3,'sign':'Libra','degree':10},
'Saturn':{'house':7,'sign':'Aquarius','degree':10},'Rahu':{'house':6,'sign':'Capricorn','degree':10},
'Ketu':{'house':12,'sign':'Cancer','degree':10},
}, 'Leo', False))
results.append(check('False-lord-in-1st-no-ben', 'koorma_yoga', {
'Sun':{'house':9,'sign':'Aries','degree':10},'Moon':{'house':5,'sign':'Gemini','degree':15},
'Mars':{'house':1,'sign':'Aries','degree':5},'Mercury':{'house':2,'sign':'Virgo','degree':10},
'Jupiter':{'house':11,'sign':'Sagittarius','degree':5},'Venus':{'house':2,'sign':'Libra','degree':10},
results.append(check('False-weak-benefic-in-house', 'koorma_yoga', {
'Sun':{'house':12,'sign':'Taurus','degree':10},'Moon':{'house':11,'sign':'Gemini','degree':15},
'Mars':{'house':8,'sign':'Pisces','degree':10},'Mercury':{'house':2,'sign':'Virgo','degree':10},
'Jupiter':{'house':1,'sign':'Capricorn','degree':5},'Venus':{'house':3,'sign':'Libra','degree':10},
'Saturn':{'house':7,'sign':'Aquarius','degree':10},'Rahu':{'house':6,'sign':'Capricorn','degree':10},
'Ketu':{'house':12,'sign':'Cancer','degree':10},
}, 'Leo', False))