diff --git a/references/validation_logic_report.json b/references/validation_logic_report.json index 7d155d9b..13a9cce1 100644 --- a/references/validation_logic_report.json +++ b/references/validation_logic_report.json @@ -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" - ] } ] } \ No newline at end of file diff --git a/references/yoga_rules.json b/references/yoga_rules.json index 2719da80..9ae5bb4a 100644 --- a/references/yoga_rules.json +++ b/references/yoga_rules.json @@ -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" diff --git a/tests/test_yoga_hardcoded.py b/tests/test_yoga_hardcoded.py index c04a1f71..66454de5 100644 --- a/tests/test_yoga_hardcoded.py +++ b/tests/test_yoga_hardcoded.py @@ -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))