diff --git a/.gitignore b/.gitignore index bbac512a..a885b99d 100644 --- a/.gitignore +++ b/.gitignore @@ -32,14 +32,16 @@ output_report.txt results_extracted.md runtime-smoke-report-*.html jyotish-app/runtime-smoke-report-*.html - # Local Python runtime for the API server .venv/ - # Local Supabase CLI link/cache state supabase/.temp/ - # Local review artifacts and unused package-manager state frontend/.omo/ frontend/pnpm-lock.yaml frontend/pnpm-workspace.yaml +/benchmarks/xalen_oracle/target/ +/benchmarks/vedastro_nuget_probe/bin/ +/benchmarks/vedastro_nuget_probe/obj/ +/benchmarks/vedastro_nuget_probe/bin/ +/benchmarks/vedastro_nuget_probe/obj/ diff --git a/benchmarks/vedastro_nuget_probe/Program.cs b/benchmarks/vedastro_nuget_probe/Program.cs new file mode 100644 index 00000000..6681a985 --- /dev/null +++ b/benchmarks/vedastro_nuget_probe/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Linq; +using System.Reflection; +using System.Text.Json; +using VedAstro.Library; + +var assembly = typeof(GeoLocation).Assembly; +var methods = assembly.GetTypes() + .SelectMany(type => type.GetMethods(BindingFlags.Public | BindingFlags.Static)) + .Select(method => method.Name).Distinct().OrderBy(name => name).ToArray(); +var methodContracts = assembly.GetTypes() + .SelectMany(type => type.GetMethods(BindingFlags.Public | BindingFlags.Static)) + .Where(method => method.Name.Contains("Longitude") || method.Name.Contains("Shadbala") || method.Name.Contains("Rasi")) + .Select(method => new { declaring_type = method.DeclaringType?.FullName, name = method.Name, returns = method.ReturnType.FullName, parameters = method.GetParameters().Select(parameter => new { parameter.Name, type = parameter.ParameterType.FullName }).ToArray() }) + .OrderBy(method => method.name).ToArray(); +Console.WriteLine(JsonSerializer.Serialize(new { + package = "VedAstro.Library", + version = assembly.GetName().Version?.ToString(), + informational_version = assembly.GetCustomAttribute()?.InformationalVersion, + methods = methods.Where(name => name.Contains("Longitude") || name.Contains("Shadbala") || name.Contains("Ashtakavarga") || name.Contains("Rasi")).ToArray(), + method_contracts = methodContracts +})); diff --git a/benchmarks/vedastro_nuget_probe/VedAstroProbe.csproj b/benchmarks/vedastro_nuget_probe/VedAstroProbe.csproj new file mode 100644 index 00000000..b6ba28a7 --- /dev/null +++ b/benchmarks/vedastro_nuget_probe/VedAstroProbe.csproj @@ -0,0 +1,4 @@ + + Exenet7.0 + + diff --git a/benchmarks/xalen_oracle/Cargo.lock b/benchmarks/xalen_oracle/Cargo.lock new file mode 100644 index 00000000..97caf74f --- /dev/null +++ b/benchmarks/xalen_oracle/Cargo.lock @@ -0,0 +1,229 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "vsop87" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37cde47f1fc639613a2a48a6a8685db063693c55ea6b09260b78f95c9e775575" + +[[package]] +name = "xalen-ayanamsa" +version = "0.6.0" +source = "git+https://github.com/vedika-io/xalen-ephemeris.git?rev=cc6edbec1f748ebdc4950ae6198f575c5ada73fa#cc6edbec1f748ebdc4950ae6198f575c5ada73fa" +dependencies = [ + "serde", + "xalen-coords", + "xalen-star-anchors", + "xalen-time", +] + +[[package]] +name = "xalen-coords" +version = "0.6.0" +source = "git+https://github.com/vedika-io/xalen-ephemeris.git?rev=cc6edbec1f748ebdc4950ae6198f575c5ada73fa#cc6edbec1f748ebdc4950ae6198f575c5ada73fa" +dependencies = [ + "serde", + "thiserror", + "xalen-time", +] + +[[package]] +name = "xalen-ephem" +version = "0.6.0" +source = "git+https://github.com/vedika-io/xalen-ephemeris.git?rev=cc6edbec1f748ebdc4950ae6198f575c5ada73fa#cc6edbec1f748ebdc4950ae6198f575c5ada73fa" +dependencies = [ + "serde", + "thiserror", + "vsop87", + "xalen-ayanamsa", + "xalen-coords", + "xalen-houses", + "xalen-stars", + "xalen-time", +] + +[[package]] +name = "xalen-houses" +version = "0.6.0" +source = "git+https://github.com/vedika-io/xalen-ephemeris.git?rev=cc6edbec1f748ebdc4950ae6198f575c5ada73fa#cc6edbec1f748ebdc4950ae6198f575c5ada73fa" +dependencies = [ + "serde", + "thiserror", + "xalen-coords", + "xalen-time", +] + +[[package]] +name = "xalen-oracle-probe" +version = "0.1.0" +dependencies = [ + "serde", + "serde_json", + "xalen-ayanamsa", + "xalen-coords", + "xalen-ephem", + "xalen-time", + "xalen-vedic", +] + +[[package]] +name = "xalen-star-anchors" +version = "0.6.0" +source = "git+https://github.com/vedika-io/xalen-ephemeris.git?rev=cc6edbec1f748ebdc4950ae6198f575c5ada73fa#cc6edbec1f748ebdc4950ae6198f575c5ada73fa" + +[[package]] +name = "xalen-stars" +version = "0.6.0" +source = "git+https://github.com/vedika-io/xalen-ephemeris.git?rev=cc6edbec1f748ebdc4950ae6198f575c5ada73fa#cc6edbec1f748ebdc4950ae6198f575c5ada73fa" +dependencies = [ + "serde", + "xalen-coords", + "xalen-stars-hip-data", + "xalen-time", +] + +[[package]] +name = "xalen-stars-hip-data" +version = "0.6.0" +source = "git+https://github.com/vedika-io/xalen-ephemeris.git?rev=cc6edbec1f748ebdc4950ae6198f575c5ada73fa#cc6edbec1f748ebdc4950ae6198f575c5ada73fa" +dependencies = [ + "serde", +] + +[[package]] +name = "xalen-time" +version = "0.6.0" +source = "git+https://github.com/vedika-io/xalen-ephemeris.git?rev=cc6edbec1f748ebdc4950ae6198f575c5ada73fa#cc6edbec1f748ebdc4950ae6198f575c5ada73fa" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "xalen-vedic" +version = "0.6.0" +source = "git+https://github.com/vedika-io/xalen-ephemeris.git?rev=cc6edbec1f748ebdc4950ae6198f575c5ada73fa#cc6edbec1f748ebdc4950ae6198f575c5ada73fa" +dependencies = [ + "serde", + "xalen-ayanamsa", + "xalen-coords", + "xalen-time", +] + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/benchmarks/xalen_oracle/Cargo.toml b/benchmarks/xalen_oracle/Cargo.toml new file mode 100644 index 00000000..684347c0 --- /dev/null +++ b/benchmarks/xalen_oracle/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "xalen-oracle-probe" +version = "0.1.0" +edition = "2021" + +[dependencies] +serde = { version = "1", features = ["derive"] } +serde_json = "1" +xalen-vedic = { git = "https://github.com/vedika-io/xalen-ephemeris.git", rev = "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", package = "xalen-vedic" } +xalen-ayanamsa = { git = "https://github.com/vedika-io/xalen-ephemeris.git", rev = "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", package = "xalen-ayanamsa" } +xalen-coords = { git = "https://github.com/vedika-io/xalen-ephemeris.git", rev = "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", package = "xalen-coords" } +xalen-ephem = { git = "https://github.com/vedika-io/xalen-ephemeris.git", rev = "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", package = "xalen-ephem" } +xalen-time = { git = "https://github.com/vedika-io/xalen-ephemeris.git", rev = "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", package = "xalen-time" } diff --git a/benchmarks/xalen_oracle/src/main.rs b/benchmarks/xalen_oracle/src/main.rs new file mode 100644 index 00000000..e3abb248 --- /dev/null +++ b/benchmarks/xalen_oracle/src/main.rs @@ -0,0 +1,63 @@ +use serde::Deserialize; +use serde_json::{json, Map, Value}; +use std::io::{self, Read}; +use xalen_vedic::ashtakavarga::{prashtarashtakavarga, sarvashtakavarga}; +use xalen_vedic::divisional::{compute_varga_sign, VargaChart}; +use xalen_vedic::nakshatra::DashaLord; +use xalen_vedic::shadbala::{PlanetPosition, ShadBalaInput, Shadbala}; +use xalen_ayanamsa::Ayanamsa; +use xalen_coords::RAD_TO_DEG; +use xalen_ephem::{Almanac, Body as EphemBody}; +use xalen_time::JdUT1; + +const NAMES: [&str; 7] = ["Sun", "Moon", "Mars", "Mercury", "Jupiter", "Venus", "Saturn"]; +const LORDS: [DashaLord; 7] = [DashaLord::Sun, DashaLord::Moon, DashaLord::Mars, DashaLord::Mercury, DashaLord::Jupiter, DashaLord::Venus, DashaLord::Saturn]; + +#[derive(Clone, Deserialize)] +struct Body { name: String, longitude: f64, speed: f64, house: usize } + +#[derive(Deserialize)] +struct Input { jd: f64, day_fraction: f64, asc_sign_idx: usize, planets: Vec, mode: Option } + +fn varga(name: &str) -> VargaChart { + match name { "D1" => VargaChart::D1, "D2" => VargaChart::D2, "D4" => VargaChart::D4, "D9" => VargaChart::D9, _ => VargaChart::D10 } +} + +fn main() { + let mut raw = String::new(); + io::stdin().read_to_string(&mut raw).unwrap(); + let input: Input = serde_json::from_str(&raw).unwrap(); + let mode = input.mode.as_deref().unwrap_or("shared_input"); + let effective = if mode == "independent_ephemeris" { + let almanac = Almanac::default_vedic(); + let jd = JdUT1(input.jd); + let aya = Ayanamsa::Lahiri.compute_deg(input.jd); + let ephem = [EphemBody::Sun, EphemBody::Moon, EphemBody::Mars, EphemBody::Mercury, EphemBody::Jupiter, EphemBody::Venus, EphemBody::Saturn]; + NAMES.iter().enumerate().map(|(i, name)| { + let original = input.planets.iter().find(|p| p.name == *name).unwrap(); + let pos = almanac.geocentric_ecliptic(ephem[i], jd).unwrap(); + let speed = almanac.geocentric_speed(ephem[i], jd).unwrap(); + Body { name: name.to_string(), longitude: (pos.longitude * RAD_TO_DEG - aya).rem_euclid(360.0), speed: speed.longitude * RAD_TO_DEG, house: original.house } + }).collect() + } else { input.planets.clone() }; + let bodies: Vec<&Body> = NAMES.iter().map(|name| effective.iter().find(|p| p.name == *name).unwrap()).collect(); + let positions: Vec = bodies.iter().enumerate().map(|(i, p)| PlanetPosition { name: NAMES[i], longitude: p.longitude, speed: p.speed }).collect(); + let shad_input = ShadBalaInput { jd: input.jd, sun_lon: bodies[0].longitude, moon_lon: bodies[1].longitude, day_fraction: input.day_fraction, all_planets: positions }; + let sign_positions: Vec<(DashaLord, usize)> = bodies.iter().enumerate().map(|(i, p)| (LORDS[i], (p.longitude / 30.0) as usize % 12)).collect(); + + let mut vargas = Map::new(); + for chart in ["D1", "D2", "D4", "D9", "D10"] { + let values: Map = bodies.iter().enumerate().map(|(i, p)| (NAMES[i].to_string(), json!(format!("{:?}", compute_varga_sign(p.longitude, varga(chart)))))).collect(); + vargas.insert(chart.to_string(), Value::Object(values)); + } + let mut shadbala = Map::new(); + for (i, p) in bodies.iter().enumerate() { + let sb = Shadbala::compute_full(NAMES[i], p.longitude, p.house, p.speed, &shad_input); + shadbala.insert(NAMES[i].to_string(), json!({"sthana": sb.sthana_bala.total, "dig": sb.dig_bala, "kala": sb.kala_bala.total, "chesta": sb.cheshta_bala, "naisargika": sb.naisargika_bala, "drik": sb.drik_bala, "total": sb.total, "rupas": sb.total / 60.0})); + } + let bav: Map = LORDS.iter().enumerate().map(|(i, lord)| (NAMES[i].to_string(), json!(prashtarashtakavarga(*lord, &sign_positions, input.asc_sign_idx)))).collect(); + let sav_rows = sarvashtakavarga(&sign_positions, input.asc_sign_idx); + let sav: Vec = (0..12).map(|sign| sav_rows.iter().map(|row| row[sign] as u16).sum()).collect(); + let effective_positions: Map = bodies.iter().map(|p| (p.name.clone(), json!({"longitude":p.longitude,"speed":p.speed,"house":p.house}))).collect(); + println!("{}", json!({"engine":"xalen-ephemeris","commit":"cc6edbec1f748ebdc4950ae6198f575c5ada73fa","license":"Apache-2.0","ephemeris_mode":mode,"effective_positions":effective_positions,"varga":vargas,"ashtakavarga":{"bav":bav,"sav":sav},"shadbala":shadbala})); +} diff --git a/references/evidence_manifests/commercial_external_validation_release.v1.json b/references/evidence_manifests/commercial_external_validation_release.v1.json index 3310abb2..d4714899 100644 --- a/references/evidence_manifests/commercial_external_validation_release.v1.json +++ b/references/evidence_manifests/commercial_external_validation_release.v1.json @@ -123,6 +123,72 @@ "path": "references/oracle/pyjhora_extended_parity_public_smoke_manifest.json", "sha256": "c86315d8e16338608409b9277f835f647f8b739c207e4bcca177fd5ea0e2c0c4", "scope": "public PyJHora extended parity smoke manifest" + }, + { + "id": "three_engine_mismatch_arbitration", + "path": "references/oracle/three_engine_mismatch_arbitration_2026_07_17.json", + "sha256": "4ae1ec50b38765fe379393bace3700c82f563589de3e7274bb5b13148afbf418", + "scope": "field-level three-engine mismatch attribution" + }, + { + "id": "xalen_fourth_oracle_comparison", + "path": "references/oracle/xalen_fourth_oracle_comparison_2026_07_17.json", + "sha256": "d781eef14fb315d00eeac8a0375c6c0be6065591e77117976e245b52499e8c8f", + "scope": "pinned Xalen formula-isolation comparison" + }, + { + "id": "xalen_formula_unit_attribution", + "path": "references/oracle/xalen_formula_unit_attribution_2026_07_17.json", + "sha256": "05594adda71f5cfaf2ac117cba742e275cf1ea7167c736ff732de0fed8eed235", + "scope": "Xalen component and unit-difference attribution" + }, + { + "id": "xalen_ephemeris_mode_comparison", + "path": "references/oracle/xalen_ephemeris_mode_comparison_2026_07_17.json", + "sha256": "c9fde13d4aae1d9d3b45e4321be49dc00795bf378bd352fbe2714b11b05735b3", + "scope": "shared-input versus independent-ephemeris boundary" + }, + { + "id": "xalen_shared_input_raw", + "path": "references/oracle/artifacts/xalen_steve_jobs_high_rigor_raw.json", + "sha256": "7aac3df194662ee2223e98d5ee84da6c0b75b5725740b4698de04cf3f5264136", + "scope": "public Xalen shared-input raw output" + }, + { + "id": "xalen_independent_ephemeris_raw", + "path": "references/oracle/artifacts/xalen_steve_jobs_independent_ephemeris_raw.json", + "sha256": "6c721fd3f525d3dd887c1ed805182271fa797fdac988fafe7e82be39f267d02d", + "scope": "public Xalen independent-ephemeris raw output" + }, + { + "id": "xalen_multi_case_shared_input_raw", + "path": "references/oracle/artifacts/xalen_multi_public_case_shared_input_2026_07_17.json", + "sha256": "49de149d4ec30f4532a658f29b6396cfd240fb1847654bb381220071ab958e84", + "scope": "public multi-case Xalen shared-input raw output" + }, + { + "id": "xalen_multi_case_independent_ephemeris_raw", + "path": "references/oracle/artifacts/xalen_multi_public_case_independent_ephemeris_2026_07_17.json", + "sha256": "c7f4695de2b3299ed36975b1698bd063c43b2e621e8df126a488a29b21708642", + "scope": "public multi-case Xalen independent-ephemeris raw output" + }, + { + "id": "vedastro_nuget_runtime_contract", + "path": "references/oracle/artifacts/vedastro_nuget_1_2_0_runtime_contract.json", + "sha256": "92feae14a961d8563f6b59dfef4441c03b7d322ab7650790a905798070bda4af", + "scope": "pinned VedAstro NuGet runtime-contract evidence, not hosted identity" + }, + { + "id": "vedastro_nuget_candidate", + "path": "references/oracle/vedastro_nuget_candidate_1_2_0.json", + "sha256": "36912443e0a5d5f08959700fb3070bc648659727ed296ce502ce961ed23edf3f", + "scope": "VedAstro NuGet candidate identity boundary" + }, + { + "id": "day_level_holdout_preregistration", + "path": "references/real_case_calibration/day_level_holdout_v3_preregistration.json", + "sha256": "d7f794630d3def6f9f7b5d94c4365bb508c60a8b44228f35a2d2d4548ea9f360", + "scope": "independent-label day-level holdout preregistration" } ] } diff --git a/references/oracle/artifacts/vedastro_nuget_1_2_0_runtime_contract.json b/references/oracle/artifacts/vedastro_nuget_1_2_0_runtime_contract.json new file mode 100644 index 00000000..a1f79910 --- /dev/null +++ b/references/oracle/artifacts/vedastro_nuget_1_2_0_runtime_contract.json @@ -0,0 +1,217 @@ +{ + "assembly_informational_version": "1.2.0", + "assembly_version": "1.2.0.0", + "boundary": "The signed NuGet library is reproducible and pinned, but it is not an identity for api.vedastro.org and does not include hosted databases/routes.", + "container_base": "mcr.microsoft.com/dotnet/sdk:7.0@sha256:d32bd65cf5843f413e81f5d917057c82da99737cb1637e905a1a4bc2e7ec6c8d", + "hosted_api_identity_status": "blocked", + "library_dll_sha256": "e4ec61b07ac1c15fcc65d9ffdc54bc2d26497597760572e2888f1992fc7b1ca8", + "license": "MIT", + "package": "VedAstro.Library", + "package_sha256": "f753df4e76c75b9ad219c2f5a8fe4b17361065d6f4fa1198897cf117b7bc55d5", + "package_url": "https://api.nuget.org/v3-flatcontainer/vedastro.library/1.2.0/vedastro.library.1.2.0.nupkg", + "public_method_contracts": [ + { + "declaring_type": "VedAstro.Library.AstronomicalCalculator", + "name": "GetAllPlanetFixedLongitude", + "parameters": [ + { + "Name": "time", + "type": "VedAstro.Library.Time" + } + ], + "returns": "System.Collections.Generic.List`1[[VedAstro.Library.PlanetLongitude, VedAstro.Library, Version=1.2.0.0, Culture=neutral, PublicKeyToken=null]]" + }, + { + "declaring_type": "VedAstro.Library.AstronomicalCalculator", + "name": "GetAllPlanetLongitude", + "parameters": [ + { + "Name": "time", + "type": "VedAstro.Library.Time" + } + ], + "returns": "System.Collections.Generic.List`1[[VedAstro.Library.PlanetLongitude, VedAstro.Library, Version=1.2.0.0, Culture=neutral, PublicKeyToken=null]]" + }, + { + "declaring_type": "VedAstro.Library.AstronomicalCalculator", + "name": "GetConstellationAtLongitude", + "parameters": [ + { + "Name": "planetLongitude", + "type": "VedAstro.Library.Angle" + } + ], + "returns": "VedAstro.Library.PlanetConstellation" + }, + { + "declaring_type": "VedAstro.Library.AstronomicalCalculator", + "name": "GetHouse1And10Longitudes", + "parameters": [ + { + "Name": "time", + "type": "VedAstro.Library.Time" + } + ], + "returns": "System.Double[]" + }, + { + "declaring_type": "VedAstro.Library.AstronomicalCalculator", + "name": "GetLongitudeAtZodiacSign", + "parameters": [ + { + "Name": "zodiacSign", + "type": "VedAstro.Library.ZodiacSign" + } + ], + "returns": "VedAstro.Library.Angle" + }, + { + "declaring_type": "VedAstro.Library.AstronomicalCalculator", + "name": "GetNavamsaSignNameFromLongitude", + "parameters": [ + { + "Name": "longitude", + "type": "VedAstro.Library.Angle" + } + ], + "returns": "VedAstro.Library.ZodiacName" + }, + { + "declaring_type": "VedAstro.Library.AstronomicalCalculator", + "name": "GetPlanetNirayanaLongitude", + "parameters": [ + { + "Name": "time", + "type": "VedAstro.Library.Time" + }, + { + "Name": "planetName", + "type": "VedAstro.Library.PlanetName" + } + ], + "returns": "VedAstro.Library.Angle" + }, + { + "declaring_type": "VedAstro.Library.AstronomicalCalculator", + "name": "GetPlanetRasiSign", + "parameters": [ + { + "Name": "planetName", + "type": "VedAstro.Library.PlanetName" + }, + { + "Name": "time", + "type": "VedAstro.Library.Time" + } + ], + "returns": "VedAstro.Library.ZodiacSign" + }, + { + "declaring_type": "VedAstro.Library.AstronomicalCalculator", + "name": "GetPlanetSayanaLongitude", + "parameters": [ + { + "Name": "time", + "type": "VedAstro.Library.Time" + }, + { + "Name": "planetName", + "type": "VedAstro.Library.PlanetName" + } + ], + "returns": "VedAstro.Library.Angle" + }, + { + "declaring_type": "VedAstro.Library.AstronomicalCalculator", + "name": "GetPlanetShadbalaPinda", + "parameters": [ + { + "Name": "planetName", + "type": "VedAstro.Library.PlanetName" + }, + { + "Name": "time", + "type": "VedAstro.Library.Time" + } + ], + "returns": "VedAstro.Library.Shashtiamsa" + }, + { + "declaring_type": "VedAstro.Library.AstronomicalCalculator", + "name": "GetZodiacSignAtLongitude", + "parameters": [ + { + "Name": "longitude", + "type": "VedAstro.Library.Angle" + } + ], + "returns": "VedAstro.Library.ZodiacSign" + }, + { + "declaring_type": "VedAstro.Library.MatchCalculator", + "name": "RasiKuta", + "parameters": [ + { + "Name": "male", + "type": "VedAstro.Library.Person" + }, + { + "Name": "female", + "type": "VedAstro.Library.Person" + } + ], + "returns": "VedAstro.Library.Compatibility.CompatibilityPrediction" + }, + { + "declaring_type": "VedAstro.Library.AstronomicalCalculator", + "name": "TimeToLongitude", + "parameters": [ + { + "Name": "time", + "type": "System.TimeSpan" + } + ], + "returns": "VedAstro.Library.Angle" + }, + { + "declaring_type": "VedAstro.Library.Time", + "name": "TimeToLongitude", + "parameters": [ + { + "Name": "time", + "type": "System.TimeSpan" + } + ], + "returns": "VedAstro.Library.Angle" + } + ], + "public_methods": [ + "GetAllPlanetFixedLongitude", + "GetAllPlanetLongitude", + "GetConstellationAtLongitude", + "GetHouse1And10Longitudes", + "GetLongitudeAtZodiacSign", + "GetNavamsaSignNameFromLongitude", + "GetPlanetNirayanaLongitude", + "GetPlanetRasiSign", + "GetPlanetSayanaLongitude", + "GetPlanetShadbalaPinda", + "GetZodiacSignAtLongitude", + "RasiKuta", + "TimeToLongitude" + ], + "repository": "https://github.com/VedAstro/VedAstro", + "runtime_image_digest": "sha256:d32bd65cf5843f413e81f5d917057c82da99737cb1637e905a1a4bc2e7ec6c8d", + "runtime_image_id": "sha256:ea4f5eec20952a885a89566fc35cf3295b3228375b715a0f1af9e5a3c0c2eebf", + "runtime_methods_verified": [ + "GetAllPlanetLongitude", + "GetPlanetNirayanaLongitude", + "GetPlanetRasiSign", + "GetPlanetShadbalaPinda" + ], + "runtime_probe": "benchmarks/vedastro_nuget_probe", + "scope": "vedastro_reproducible_library_candidate", + "status": "reproducible_library_executable_verified", + "target_framework": "net7.0", + "version": "1.2.0" +} diff --git a/references/oracle/artifacts/xalen_multi_public_case_independent_ephemeris_2026_07_17.json b/references/oracle/artifacts/xalen_multi_public_case_independent_ephemeris_2026_07_17.json new file mode 100644 index 00000000..01026315 --- /dev/null +++ b/references/oracle/artifacts/xalen_multi_public_case_independent_ephemeris_2026_07_17.json @@ -0,0 +1,1710 @@ +{ + "boundary": "Shared mode isolates formulas; independent mode recomputes seven-planet ephemeris while retaining shared houses.", + "case_count": 5, + "cases": [ + { + "birth_source": { + "evidence_basis": "BC/BR in hand", + "source_grade": "primary", + "time_accuracy_rating": "AA", + "url": "https://www.astro.com/adbvip/adbvip_02_24.htm" + }, + "case_id": "jobs_iphone_2007", + "input": { + "asc_sign_idx": 4, + "day_fraction": 0.8020833333333334, + "jd": 2435163.635417, + "mode": "independent_ephemeris", + "planets": [ + { + "house": 7, + "longitude": 312.51748591136726, + "name": "Sun", + "speed": 1.006069 + }, + { + "house": 8, + "longitude": 344.5165209098362, + "name": "Moon", + "speed": 14.175536 + }, + { + "house": 9, + "longitude": 5.8598225437926565, + "name": "Mars", + "speed": 0.701796 + }, + { + "house": 6, + "longitude": 291.13107265785646, + "name": "Mercury", + "speed": -0.032977 + }, + { + "house": 11, + "longitude": 87.27723563442187, + "name": "Jupiter", + "speed": -0.06307 + }, + { + "house": 5, + "longitude": 267.941228624149, + "name": "Venus", + "speed": 1.136674 + }, + { + "house": 3, + "longitude": 207.93204028705406, + "name": "Saturn", + "speed": 0.007061 + } + ] + }, + "input_mode": "independent_ephemeris", + "name": "Steve Jobs", + "raw_sha256": "0d3030d9f3655aa894f347e0ec49e2f948e600f9c4a5d994a10bf1594f8bfa5f", + "xalen_raw": { + "ashtakavarga": { + "bav": { + "Jupiter": [ + 7, + 5, + 3, + 3, + 5, + 7, + 3, + 5, + 4, + 6, + 5, + 3 + ], + "Mars": [ + 4, + 7, + 4, + 4, + 3, + 0, + 4, + 5, + 1, + 4, + 1, + 2 + ], + "Mercury": [ + 5, + 5, + 5, + 4, + 4, + 2, + 6, + 5, + 5, + 8, + 2, + 3 + ], + "Moon": [ + 4, + 5, + 4, + 2, + 6, + 5, + 3, + 2, + 5, + 5, + 3, + 5 + ], + "Saturn": [ + 1, + 5, + 3, + 0, + 6, + 3, + 4, + 5, + 3, + 3, + 3, + 3 + ], + "Sun": [ + 3, + 7, + 4, + 3, + 3, + 2, + 6, + 7, + 4, + 4, + 3, + 2 + ], + "Venus": [ + 4, + 3, + 5, + 3, + 4, + 5, + 4, + 3, + 5, + 5, + 5, + 6 + ] + }, + "sav": [ + 28, + 37, + 28, + 19, + 31, + 24, + 30, + 32, + 27, + 35, + 22, + 24 + ] + }, + "commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", + "effective_positions": { + "Jupiter": { + "house": 11, + "longitude": 87.2723950733489, + "speed": -0.0630678786343745 + }, + "Mars": { + "house": 9, + "longitude": 5.854985381019798, + "speed": 0.7017965758751779 + }, + "Mercury": { + "house": 6, + "longitude": 291.1263406896849, + "speed": -0.03320556249180691 + }, + "Moon": { + "house": 8, + "longitude": 344.5112149434978, + "speed": 14.171843625587321 + }, + "Saturn": { + "house": 3, + "longitude": 207.92730802663004, + "speed": 0.007061113858520935 + }, + "Sun": { + "house": 7, + "longitude": 312.5127151568504, + "speed": 1.0060700539476224 + }, + "Venus": { + "house": 5, + "longitude": 267.9364873704055, + "speed": 1.1366728852527421 + } + }, + "engine": "xalen-ephemeris", + "ephemeris_mode": "independent_ephemeris", + "license": "Apache-2.0", + "shadbala": { + "Jupiter": { + "chesta": 60.0, + "dig": 40.00000000000001, + "drik": -3.75, + "kala": 94.41616659554913, + "naisargika": 34.29, + "rupas": 7.268838304777757, + "sthana": 211.17413169111632, + "total": 436.13029828666544 + }, + "Mars": { + "chesta": 15.0, + "dig": 50.0, + "drik": 15.0, + "kala": 85.58383340445087, + "naisargika": 17.14, + "rupas": 6.60592508240185, + "sthana": 213.6316715396601, + "total": 396.355504944111 + }, + "Mercury": { + "chesta": 60.0, + "dig": 9.999999999999998, + "drik": 0.0, + "kala": 85.66616659554914, + "naisargika": 25.71, + "rupas": 5.259734217205347, + "sthana": 134.2078864367717, + "total": 315.5840530323208 + }, + "Moon": { + "chesta": 30.0, + "dig": 20.000000000000004, + "drik": 18.75, + "kala": 106.91616659554914, + "naisargika": 51.43, + "rupas": 7.01555397072303, + "sthana": 193.8370716478326, + "total": 420.93323824338177 + }, + "Saturn": { + "chesta": 30.0, + "dig": 20.000000000000004, + "drik": 11.25, + "kala": 85.58383340445087, + "naisargika": 8.57, + "rupas": 5.921023289926237, + "sthana": 199.85756399112333, + "total": 355.2613973955742 + }, + "Sun": { + "chesta": 30.0, + "dig": 30.0, + "drik": 3.75, + "kala": 133.08383340445084, + "naisargika": 60.0, + "rupas": 8.211190085390017, + "sthana": 235.83757171895013, + "total": 492.671405123401 + }, + "Venus": { + "chesta": 15.0, + "dig": 50.0, + "drik": 0.0, + "kala": 109.41616659554913, + "naisargika": 42.86, + "rupas": 6.376472150872516, + "sthana": 165.31216245680181, + "total": 382.58832905235096 + } + }, + "varga": { + "D1": { + "Jupiter": "Mithuna", + "Mars": "Mesha", + "Mercury": "Makara", + "Moon": "Meena", + "Saturn": "Tula", + "Sun": "Kumbha", + "Venus": "Dhanu" + }, + "D10": { + "Jupiter": "Meena", + "Mars": "Vrishabha", + "Mercury": "Mesha", + "Moon": "Meena", + "Saturn": "Karka", + "Sun": "Mithuna", + "Venus": "Kanya" + }, + "D2": { + "Jupiter": "Karka", + "Mars": "Simha", + "Mercury": "Simha", + "Moon": "Karka", + "Saturn": "Karka", + "Sun": "Simha", + "Venus": "Karka" + }, + "D4": { + "Jupiter": "Meena", + "Mars": "Mesha", + "Mercury": "Karka", + "Moon": "Mithuna", + "Saturn": "Karka", + "Sun": "Vrishabha", + "Venus": "Kanya" + }, + "D9": { + "Jupiter": "Mithuna", + "Mars": "Vrishabha", + "Mercury": "Karka", + "Moon": "Vrishchika", + "Saturn": "Mithuna", + "Sun": "Makara", + "Venus": "Dhanu" + } + } + } + }, + { + "birth_source": { + "evidence_basis": "BC/BR in hand", + "source_grade": "primary", + "time_accuracy_rating": "AA", + "url": "https://www.astro.com/adbvip/adbvip_08_04.htm" + }, + "case_id": "obama_election_2008", + "input": { + "asc_sign_idx": 9, + "day_fraction": 0.8083333333333332, + "jd": 2437516.725, + "mode": "independent_ephemeris", + "planets": [ + { + "house": 7, + "longitude": 109.22729898628862, + "name": "Sun", + "speed": 0.957931 + }, + { + "house": 5, + "longitude": 40.036985042969334, + "name": "Moon", + "speed": 12.680222 + }, + { + "house": 8, + "longitude": 149.2559729018458, + "name": "Mars", + "speed": 0.623451 + }, + { + "house": 7, + "longitude": 99.01099033762667, + "name": "Mercury", + "speed": 2.00472 + }, + { + "house": 1, + "longitude": 277.5379714312108, + "name": "Jupiter", + "speed": -0.124367 + }, + { + "house": 6, + "longitude": 68.46874679408938, + "name": "Venus", + "speed": 1.133924 + }, + { + "house": 1, + "longitude": 272.0101451160476, + "name": "Saturn", + "speed": -0.068793 + } + ] + }, + "input_mode": "independent_ephemeris", + "name": "Barack Obama", + "raw_sha256": "cd1ca45b04eaa1fdec6a83959886907c77c7d4195f32e2f58d1e423fc12511fc", + "xalen_raw": { + "ashtakavarga": { + "bav": { + "Jupiter": [ + 5, + 5, + 4, + 5, + 4, + 4, + 5, + 7, + 2, + 4, + 5, + 6 + ], + "Mars": [ + 3, + 4, + 3, + 2, + 2, + 4, + 4, + 7, + 3, + 3, + 1, + 3 + ], + "Mercury": [ + 5, + 3, + 7, + 3, + 6, + 4, + 4, + 6, + 4, + 3, + 5, + 4 + ], + "Moon": [ + 5, + 5, + 3, + 3, + 2, + 4, + 6, + 5, + 4, + 4, + 4, + 4 + ], + "Saturn": [ + 4, + 6, + 5, + 3, + 1, + 0, + 4, + 4, + 3, + 3, + 2, + 4 + ], + "Sun": [ + 5, + 5, + 4, + 3, + 3, + 4, + 4, + 6, + 3, + 2, + 4, + 5 + ], + "Venus": [ + 5, + 6, + 4, + 3, + 5, + 6, + 4, + 4, + 3, + 4, + 3, + 5 + ] + }, + "sav": [ + 32, + 34, + 30, + 22, + 23, + 26, + 31, + 39, + 22, + 23, + 24, + 31 + ] + }, + "commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", + "effective_positions": { + "Jupiter": { + "house": 1, + "longitude": 277.54060060021425, + "speed": -0.12436378092629069 + }, + "Mars": { + "house": 8, + "longitude": 149.25844108596038, + "speed": 0.62345436925701 + }, + "Mercury": { + "house": 7, + "longitude": 99.0133913133107, + "speed": 2.0044740669991823 + }, + "Moon": { + "house": 5, + "longitude": 40.04007379528018, + "speed": 12.681912793995982 + }, + "Saturn": { + "house": 1, + "longitude": 272.01274123899464, + "speed": -0.06879183549464109 + }, + "Sun": { + "house": 7, + "longitude": 109.22971261607273, + "speed": 0.95793433291389 + }, + "Venus": { + "house": 6, + "longitude": 68.47113991124215, + "speed": 1.1339257719631815 + } + }, + "engine": "xalen-ephemeris", + "ephemeris_mode": "independent_ephemeris", + "license": "Apache-2.0", + "shadbala": { + "Jupiter": { + "chesta": 60.0, + "dig": 60.0, + "drik": -3.75, + "kala": 106.0632129402642, + "naisargika": 34.29, + "rupas": 7.353334663450038, + "sthana": 184.59686686673808, + "total": 441.2000798070023 + }, + "Mars": { + "chesta": 15.0, + "dig": 40.00000000000001, + "drik": 15.0, + "kala": 73.9367870597358, + "naisargika": 17.14, + "rupas": 5.608271123695376, + "sthana": 175.41948036198679, + "total": 336.49626742172256 + }, + "Mercury": { + "chesta": 15.0, + "dig": 0.0, + "drik": -3.75, + "kala": 83.06321294026418, + "naisargika": 25.71, + "rupas": 5.196294611856129, + "sthana": 191.7544637711036, + "total": 311.77767671136775 + }, + "Moon": { + "chesta": 30.0, + "dig": 50.0, + "drik": 0.0, + "kala": 193.93678705973582, + "naisargika": 51.43, + "rupas": 9.13366826324404, + "sthana": 222.6533087349066, + "total": 548.0200957946424 + }, + "Saturn": { + "chesta": 60.0, + "dig": 0.0, + "drik": 11.25, + "kala": 118.9367870597358, + "naisargika": 8.57, + "rupas": 7.287542333001182, + "sthana": 238.49575292033512, + "total": 437.25253998007094 + }, + "Sun": { + "chesta": 30.0, + "dig": 30.0, + "drik": 0.0, + "kala": 89.93678705973583, + "naisargika": 60.0, + "rupas": 6.822670269795193, + "sthana": 199.42342912797574, + "total": 409.36021618771156 + }, + "Venus": { + "chesta": 15.0, + "dig": 40.00000000000001, + "drik": -3.75, + "kala": 61.063212940264194, + "naisargika": 42.86, + "rupas": 4.689158327275281, + "sthana": 126.1762866962526, + "total": 281.34949963651684 + } + }, + "varga": { + "D1": { + "Jupiter": "Makara", + "Mars": "Simha", + "Mercury": "Karka", + "Moon": "Vrishabha", + "Saturn": "Makara", + "Sun": "Karka", + "Venus": "Mithuna" + }, + "D10": { + "Jupiter": "Vrishchika", + "Mars": "Vrishabha", + "Mercury": "Mithuna", + "Moon": "Mesha", + "Saturn": "Kanya", + "Sun": "Kanya", + "Venus": "Simha" + }, + "D2": { + "Jupiter": "Karka", + "Mars": "Karka", + "Mercury": "Karka", + "Moon": "Karka", + "Saturn": "Karka", + "Sun": "Simha", + "Venus": "Simha" + }, + "D4": { + "Jupiter": "Mesha", + "Mars": "Vrishabha", + "Mercury": "Tula", + "Moon": "Simha", + "Saturn": "Makara", + "Sun": "Makara", + "Venus": "Kanya" + }, + "D9": { + "Jupiter": "Meena", + "Mars": "Dhanu", + "Mercury": "Kanya", + "Moon": "Mesha", + "Saturn": "Makara", + "Sun": "Dhanu", + "Venus": "Dhanu" + } + } + } + }, + { + "birth_source": { + "evidence_basis": "BC/BR in hand", + "source_grade": "primary", + "time_accuracy_rating": "AA", + "url": "https://www.astro.com/adbvip/adbvip_06_22.htm" + }, + "case_id": "streep_oscar_1983", + "input": { + "asc_sign_idx": 3, + "day_fraction": 0.3368055555555556, + "jd": 2433090.003472, + "mode": "independent_ephemeris", + "planets": [ + { + "house": 12, + "longitude": 67.56582478001536, + "name": "Sun", + "speed": 0.954213 + }, + { + "house": 10, + "longitude": 21.24173632633846, + "name": "Moon", + "speed": 12.216693 + }, + { + "house": 11, + "longitude": 45.680351387458494, + "name": "Mars", + "speed": 0.70295 + }, + { + "house": 11, + "longitude": 47.135389930846124, + "name": "Mercury", + "speed": 0.499298 + }, + { + "house": 7, + "longitude": 277.37965616033586, + "name": "Jupiter", + "speed": -0.095086 + }, + { + "house": 12, + "longitude": 85.2683792031172, + "name": "Venus", + "speed": 1.222166 + }, + { + "house": 2, + "longitude": 128.41757593207123, + "name": "Saturn", + "speed": 0.081619 + } + ] + }, + "input_mode": "independent_ephemeris", + "name": "Meryl Streep", + "raw_sha256": "0cfcaf24f0fe5a30999a0b97b057168b407fa06bd7ae185f2769794f6df0afcf", + "xalen_raw": { + "ashtakavarga": { + "bav": { + "Jupiter": [ + 4, + 4, + 4, + 5, + 6, + 2, + 6, + 4, + 5, + 5, + 5, + 6 + ], + "Mars": [ + 4, + 4, + 4, + 2, + 3, + 3, + 3, + 5, + 3, + 1, + 3, + 4 + ], + "Mercury": [ + 5, + 6, + 4, + 4, + 5, + 4, + 4, + 5, + 3, + 4, + 7, + 3 + ], + "Moon": [ + 5, + 2, + 3, + 3, + 4, + 5, + 5, + 3, + 6, + 5, + 4, + 4 + ], + "Saturn": [ + 5, + 3, + 4, + 3, + 0, + 4, + 4, + 2, + 5, + 3, + 3, + 3 + ], + "Sun": [ + 4, + 5, + 6, + 2, + 2, + 6, + 2, + 4, + 4, + 4, + 5, + 4 + ], + "Venus": [ + 5, + 5, + 3, + 5, + 4, + 5, + 6, + 4, + 2, + 4, + 3, + 6 + ] + }, + "sav": [ + 32, + 29, + 28, + 24, + 24, + 29, + 30, + 27, + 28, + 26, + 30, + 30 + ] + }, + "commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", + "effective_positions": { + "Jupiter": { + "house": 7, + "longitude": 277.3818316999646, + "speed": -0.09508431002850691 + }, + "Mars": { + "house": 11, + "longitude": 45.68234196211058, + "speed": 0.7029497149410491 + }, + "Mercury": { + "house": 11, + "longitude": 47.13736080680943, + "speed": 0.4992687878183064 + }, + "Moon": { + "house": 10, + "longitude": 21.24258580298698, + "speed": 12.219110071493802 + }, + "Saturn": { + "house": 2, + "longitude": 128.41962004046556, + "speed": 0.08161995865870621 + }, + "Sun": { + "house": 12, + "longitude": 67.5677911202132, + "speed": 0.954213748418227 + }, + "Venus": { + "house": 12, + "longitude": 85.27033578226215, + "speed": 1.2221670831879996 + } + }, + "engine": "xalen-ephemeris", + "ephemeris_mode": "independent_ephemeris", + "license": "Apache-2.0", + "shadbala": { + "Jupiter": { + "chesta": 60.0, + "dig": 0.0, + "drik": 0.0, + "kala": 145.85840177240874, + "naisargika": 34.29, + "rupas": 7.328205761206616, + "sthana": 199.5439438999882, + "total": 439.6923456723969 + }, + "Mars": { + "chesta": 15.0, + "dig": 50.0, + "drik": 0.0, + "kala": 64.14159822759126, + "naisargika": 17.14, + "rupas": 4.777291404003685, + "sthana": 140.3558860126298, + "total": 286.63748424022106 + }, + "Mercury": { + "chesta": 15.0, + "dig": 40.00000000000001, + "drik": 0.0, + "kala": 180.44173510574205, + "naisargika": 25.71, + "rupas": 7.322736478466864, + "sthana": 178.21245360226982, + "total": 439.36418870801185 + }, + "Moon": { + "chesta": 30.0, + "dig": 0.0, + "drik": 3.75, + "kala": 79.14159822759126, + "naisargika": 51.43, + "rupas": 6.423374336032004, + "sthana": 221.080861934329, + "total": 385.40246016192026 + }, + "Saturn": { + "chesta": 15.0, + "dig": 9.999999999999998, + "drik": -3.75, + "kala": 124.14159822759126, + "naisargika": 8.57, + "rupas": 5.418357859573551, + "sthana": 171.13987334682184, + "total": 325.1014715744131 + }, + "Sun": { + "chesta": 30.0, + "dig": 40.00000000000001, + "drik": -3.75, + "kala": 84.9749315609246, + "naisargika": 60.0, + "rupas": 6.638094464236447, + "sthana": 187.06073629326227, + "total": 398.28566785418684 + }, + "Venus": { + "chesta": 15.0, + "dig": 20.000000000000004, + "drik": 11.25, + "kala": 55.85840177240875, + "naisargika": 42.86, + "rupas": 5.488249275194246, + "sthana": 184.32655473924595, + "total": 329.29495651165473 + } + }, + "varga": { + "D1": { + "Jupiter": "Makara", + "Mars": "Vrishabha", + "Mercury": "Vrishabha", + "Moon": "Mesha", + "Saturn": "Simha", + "Sun": "Mithuna", + "Venus": "Mithuna" + }, + "D10": { + "Jupiter": "Vrishchika", + "Mars": "Mithuna", + "Mercury": "Mithuna", + "Moon": "Vrishchika", + "Saturn": "Tula", + "Sun": "Simha", + "Venus": "Kumbha" + }, + "D2": { + "Jupiter": "Karka", + "Mars": "Simha", + "Mercury": "Simha", + "Moon": "Karka", + "Saturn": "Simha", + "Sun": "Simha", + "Venus": "Karka" + }, + "D4": { + "Jupiter": "Makara", + "Mars": "Vrishchika", + "Mercury": "Vrishchika", + "Moon": "Tula", + "Saturn": "Vrishchika", + "Sun": "Kanya", + "Venus": "Meena" + }, + "D9": { + "Jupiter": "Meena", + "Mars": "Vrishabha", + "Mercury": "Mithuna", + "Moon": "Tula", + "Saturn": "Mithuna", + "Sun": "Dhanu", + "Venus": "Vrishabha" + } + } + } + }, + { + "birth_source": { + "evidence_basis": "quoted BC/BR", + "source_grade": "primary", + "time_accuracy_rating": "AA", + "url": "https://www.astro.com/adbvip/adbvip_02_11.htm" + }, + "case_id": "aniston_emmy_2002", + "input": { + "asc_sign_idx": 6, + "day_fraction": 0.9319444444444445, + "jd": 2440264.765278, + "mode": "independent_ephemeris", + "planets": [ + { + "house": 4, + "longitude": 299.943531599561, + "name": "Sun", + "speed": 1.01135 + }, + { + "house": 2, + "longitude": 239.84124417541534, + "name": "Moon", + "speed": 14.5096 + }, + { + "house": 2, + "longitude": 210.41141021397294, + "name": "Mars", + "speed": 0.493474 + }, + { + "house": 4, + "longitude": 277.02436438945426, + "name": "Mercury", + "speed": 0.213193 + }, + { + "house": 12, + "longitude": 161.81947838304797, + "name": "Jupiter", + "speed": -0.069919 + }, + { + "house": 6, + "longitude": 345.7989420608933, + "name": "Venus", + "speed": 0.860623 + }, + { + "house": 6, + "longitude": 357.6995733022315, + "name": "Saturn", + "speed": 0.086614 + } + ] + }, + "input_mode": "independent_ephemeris", + "name": "Jennifer Aniston", + "raw_sha256": "dec78de09eb0f1009352fed49a5168d06b6fd0366bf18321d216dc10d1551c35", + "xalen_raw": { + "ashtakavarga": { + "bav": { + "Jupiter": [ + 5, + 4, + 4, + 6, + 5, + 4, + 4, + 6, + 4, + 5, + 5, + 4 + ], + "Mars": [ + 1, + 3, + 5, + 2, + 4, + 3, + 4, + 4, + 3, + 3, + 3, + 4 + ], + "Mercury": [ + 4, + 5, + 6, + 4, + 4, + 5, + 4, + 6, + 5, + 4, + 3, + 4 + ], + "Moon": [ + 4, + 4, + 3, + 7, + 7, + 4, + 2, + 4, + 4, + 5, + 0, + 5 + ], + "Saturn": [ + 3, + 1, + 1, + 4, + 7, + 3, + 4, + 2, + 2, + 7, + 3, + 2 + ], + "Sun": [ + 3, + 3, + 3, + 4, + 5, + 7, + 3, + 4, + 4, + 5, + 4, + 3 + ], + "Venus": [ + 3, + 5, + 6, + 5, + 2, + 3, + 5, + 6, + 5, + 6, + 2, + 4 + ] + }, + "sav": [ + 23, + 25, + 28, + 32, + 34, + 29, + 26, + 32, + 27, + 35, + 20, + 26 + ] + }, + "commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", + "effective_positions": { + "Jupiter": { + "house": 12, + "longitude": 161.81954998502454, + "speed": -0.06991858772121623 + }, + "Mars": { + "house": 2, + "longitude": 210.41155803056404, + "speed": 0.49347040201839765 + }, + "Mercury": { + "house": 4, + "longitude": 277.02452309826623, + "speed": 0.21287422487911117 + }, + "Moon": { + "house": 2, + "longitude": 239.84130284436222, + "speed": 14.506734570745474 + }, + "Saturn": { + "house": 6, + "longitude": 357.6996289872023, + "speed": 0.08661296785460643 + }, + "Sun": { + "house": 4, + "longitude": 299.9436640997108, + "speed": 1.011349204572874 + }, + "Venus": { + "house": 6, + "longitude": 345.7990136497192, + "speed": 0.86060308167207 + } + }, + "engine": "xalen-ephemeris", + "ephemeris_mode": "independent_ephemeris", + "license": "Apache-2.0", + "shadbala": { + "Jupiter": { + "chesta": 60.0, + "dig": 50.0, + "drik": 7.5, + "kala": 88.2007870851162, + "naisargika": 34.29, + "rupas": 6.066126729279579, + "sthana": 123.9768166716585, + "total": 363.96760375677474 + }, + "Mars": { + "chesta": 15.0, + "dig": 20.000000000000004, + "drik": 0.0, + "kala": 121.79921291488381, + "naisargika": 17.14, + "rupas": 6.412384426528975, + "sthana": 210.8038526768547, + "total": 384.7430655917385 + }, + "Mercury": { + "chesta": 15.0, + "dig": 30.0, + "drik": -3.75, + "kala": 140.0341204184495, + "naisargika": 25.71, + "rupas": 6.140043545317124, + "sthana": 161.40849230057793, + "total": 368.40261271902745 + }, + "Moon": { + "chesta": 30.0, + "dig": 40.00000000000001, + "drik": 11.25, + "kala": 91.79921291488381, + "naisargika": 51.43, + "rupas": 6.26543856438341, + "sthana": 151.44710094812075, + "total": 375.92631386300457 + }, + "Saturn": { + "chesta": 15.0, + "dig": 50.0, + "drik": 11.25, + "kala": 151.7992129148838, + "naisargika": 8.57, + "rupas": 5.630044498652495, + "sthana": 101.1834570042659, + "total": 337.8026699191497 + }, + "Sun": { + "chesta": 30.0, + "dig": 0.0, + "drik": -18.75, + "kala": 48.13254624821716, + "naisargika": 60.0, + "rupas": 5.2255072380242344, + "sthana": 194.14788803323694, + "total": 313.53043428145406 + }, + "Venus": { + "chesta": 15.0, + "dig": 40.00000000000001, + "drik": 7.5, + "kala": 88.2007870851162, + "naisargika": 42.86, + "rupas": 6.288785416139265, + "sthana": 183.76633788323971, + "total": 377.3271249683559 + } + }, + "varga": { + "D1": { + "Jupiter": "Kanya", + "Mars": "Vrishchika", + "Mercury": "Makara", + "Moon": "Vrishchika", + "Saturn": "Meena", + "Sun": "Makara", + "Venus": "Meena" + }, + "D10": { + "Jupiter": "Simha", + "Mars": "Karka", + "Mercury": "Vrishchika", + "Moon": "Mesha", + "Saturn": "Simha", + "Sun": "Mithuna", + "Venus": "Mesha" + }, + "D2": { + "Jupiter": "Karka", + "Mars": "Karka", + "Mercury": "Karka", + "Moon": "Simha", + "Saturn": "Simha", + "Sun": "Simha", + "Venus": "Simha" + }, + "D4": { + "Jupiter": "Dhanu", + "Mars": "Vrishchika", + "Mercury": "Makara", + "Moon": "Simha", + "Saturn": "Dhanu", + "Sun": "Tula", + "Venus": "Kanya" + }, + "D9": { + "Jupiter": "Mesha", + "Mars": "Karka", + "Mercury": "Meena", + "Moon": "Meena", + "Saturn": "Meena", + "Sun": "Kanya", + "Venus": "Vrishchika" + } + } + } + }, + { + "birth_source": { + "evidence_basis": "BC/BR in hand", + "source_grade": "primary", + "time_accuracy_rating": "AA", + "url": "https://www.astro.com/adbvip/adbvip_06_21.htm" + }, + "case_id": "william_marriage_2011", + "input": { + "asc_sign_idx": 8, + "day_fraction": 0.8770833333333333, + "jd": 2445142.335417, + "mode": "independent_ephemeris", + "planets": [ + { + "house": 7, + "longitude": 66.49384103041129, + "name": "Sun", + "speed": 0.954604 + }, + { + "house": 7, + "longitude": 71.35231822798167, + "name": "Moon", + "speed": 15.18813 + }, + { + "house": 10, + "longitude": 165.5929316456136, + "name": "Mars", + "speed": 0.383521 + }, + { + "house": 6, + "longitude": 45.35696463229817, + "name": "Mercury", + "speed": 0.595808 + }, + { + "house": 11, + "longitude": 186.877086412283, + "name": "Jupiter", + "speed": -0.017868 + }, + { + "house": 6, + "longitude": 32.050842187621726, + "name": "Venus", + "speed": 1.179172 + }, + { + "house": 10, + "longitude": 171.89485685834748, + "name": "Saturn", + "speed": 0.00571 + } + ] + }, + "input_mode": "independent_ephemeris", + "name": "William, Prince of Wales", + "raw_sha256": "96df97198960cae39449e2bb9c78bfcbd7f4cd9a7daca30d87bf5982fb49413b", + "xalen_raw": { + "ashtakavarga": { + "bav": { + "Jupiter": [ + 5, + 3, + 5, + 5, + 5, + 5, + 6, + 2, + 5, + 6, + 4, + 5 + ], + "Mars": [ + 5, + 2, + 2, + 4, + 3, + 5, + 5, + 2, + 4, + 0, + 1, + 6 + ], + "Mercury": [ + 5, + 7, + 3, + 6, + 2, + 7, + 5, + 2, + 4, + 4, + 2, + 7 + ], + "Moon": [ + 3, + 4, + 2, + 5, + 5, + 4, + 3, + 6, + 3, + 5, + 5, + 4 + ], + "Saturn": [ + 4, + 1, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 4, + 5, + 5 + ], + "Sun": [ + 6, + 3, + 4, + 4, + 2, + 5, + 5, + 3, + 3, + 2, + 4, + 7 + ], + "Venus": [ + 4, + 6, + 4, + 7, + 5, + 3, + 3, + 2, + 3, + 7, + 5, + 3 + ] + }, + "sav": [ + 32, + 26, + 22, + 34, + 25, + 32, + 30, + 20, + 25, + 28, + 26, + 37 + ] + }, + "commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", + "effective_positions": { + "Jupiter": { + "house": 11, + "longitude": 186.8819766101446, + "speed": -0.01786864162326104 + }, + "Mars": { + "house": 10, + "longitude": 165.59780525064474, + "speed": 0.38351777569829587 + }, + "Mercury": { + "house": 6, + "longitude": 45.36175478881115, + "speed": 0.5957707915116218 + }, + "Moon": { + "house": 7, + "longitude": 71.35548622793928, + "speed": 15.181322539838773 + }, + "Saturn": { + "house": 10, + "longitude": 171.89981119336434, + "speed": 0.005709702558910776 + }, + "Sun": { + "house": 7, + "longitude": 66.49862314778824, + "speed": 0.9546048940467489 + }, + "Venus": { + "house": 6, + "longitude": 32.05564537855352, + "speed": 1.1791713377506279 + } + }, + "engine": "xalen-ephemeris", + "ephemeris_mode": "independent_ephemeris", + "license": "Apache-2.0", + "shadbala": { + "Jupiter": { + "chesta": 60.0, + "dig": 40.00000000000001, + "drik": 0.0, + "kala": 76.36895436005035, + "naisargika": 34.29, + "rupas": 7.250527147055592, + "sthana": 224.37267446328514, + "total": 435.0316288233355 + }, + "Mars": { + "chesta": 15.0, + "dig": 60.0, + "drik": 15.0, + "kala": 103.63104563994966, + "naisargika": 17.14, + "rupas": 6.277283012058299, + "sthana": 165.86593508354824, + "total": 376.6369807234979 + }, + "Mercury": { + "chesta": 15.0, + "dig": 9.999999999999998, + "drik": -3.75, + "kala": 61.618954360050346, + "naisargika": 25.71, + "rupas": 4.269992321494234, + "sthana": 147.62058492960372, + "total": 256.19953928965407 + }, + "Moon": { + "chesta": 30.0, + "dig": 30.0, + "drik": -3.75, + "kala": 151.86895436005034, + "naisargika": 51.43, + "rupas": 7.362729871401176, + "sthana": 182.21483792402023, + "total": 441.7637922840706 + }, + "Saturn": { + "chesta": 30.0, + "dig": 30.0, + "drik": 11.25, + "kala": 163.63104563994966, + "naisargika": 8.57, + "rupas": 7.33890526729563, + "sthana": 196.88327039778812, + "total": 440.3343160377378 + }, + "Sun": { + "chesta": 30.0, + "dig": 30.0, + "drik": 3.75, + "kala": 103.13104563994966, + "naisargika": 60.0, + "rupas": 8.279969520955893, + "sthana": 269.91712561740394, + "total": 496.7981712573536 + }, + "Venus": { + "chesta": 15.0, + "dig": 40.00000000000001, + "drik": -7.5, + "kala": 31.36895436005035, + "naisargika": 42.86, + "rupas": 5.77156232056443, + "sthana": 224.56478487381548, + "total": 346.29373923386584 + } + }, + "varga": { + "D1": { + "Jupiter": "Tula", + "Mars": "Kanya", + "Mercury": "Vrishabha", + "Moon": "Mithuna", + "Saturn": "Kanya", + "Sun": "Mithuna", + "Venus": "Vrishabha" + }, + "D10": { + "Jupiter": "Dhanu", + "Mars": "Tula", + "Mercury": "Mithuna", + "Moon": "Kanya", + "Saturn": "Dhanu", + "Sun": "Simha", + "Venus": "Makara" + }, + "D2": { + "Jupiter": "Simha", + "Mars": "Simha", + "Mercury": "Simha", + "Moon": "Simha", + "Saturn": "Simha", + "Sun": "Simha", + "Venus": "Karka" + }, + "D4": { + "Jupiter": "Tula", + "Mars": "Meena", + "Mercury": "Vrishchika", + "Moon": "Kanya", + "Saturn": "Meena", + "Sun": "Mithuna", + "Venus": "Vrishabha" + }, + "D9": { + "Jupiter": "Dhanu", + "Mars": "Vrishabha", + "Mercury": "Vrishabha", + "Moon": "Makara", + "Saturn": "Karka", + "Sun": "Vrishchika", + "Venus": "Makara" + } + } + } + } + ], + "license": "Apache-2.0", + "mode": "independent_ephemeris", + "scope": "xalen_multi_public_case_replay", + "source_commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa" +} diff --git a/references/oracle/artifacts/xalen_multi_public_case_shared_input_2026_07_17.json b/references/oracle/artifacts/xalen_multi_public_case_shared_input_2026_07_17.json new file mode 100644 index 00000000..5a19700d --- /dev/null +++ b/references/oracle/artifacts/xalen_multi_public_case_shared_input_2026_07_17.json @@ -0,0 +1,1710 @@ +{ + "boundary": "Shared mode isolates formulas; independent mode recomputes seven-planet ephemeris while retaining shared houses.", + "case_count": 5, + "cases": [ + { + "birth_source": { + "evidence_basis": "BC/BR in hand", + "source_grade": "primary", + "time_accuracy_rating": "AA", + "url": "https://www.astro.com/adbvip/adbvip_02_24.htm" + }, + "case_id": "jobs_iphone_2007", + "input": { + "asc_sign_idx": 4, + "day_fraction": 0.8020833333333334, + "jd": 2435163.635417, + "mode": "shared_input", + "planets": [ + { + "house": 7, + "longitude": 312.51748591136726, + "name": "Sun", + "speed": 1.006069 + }, + { + "house": 8, + "longitude": 344.5165209098362, + "name": "Moon", + "speed": 14.175536 + }, + { + "house": 9, + "longitude": 5.8598225437926565, + "name": "Mars", + "speed": 0.701796 + }, + { + "house": 6, + "longitude": 291.13107265785646, + "name": "Mercury", + "speed": -0.032977 + }, + { + "house": 11, + "longitude": 87.27723563442187, + "name": "Jupiter", + "speed": -0.06307 + }, + { + "house": 5, + "longitude": 267.941228624149, + "name": "Venus", + "speed": 1.136674 + }, + { + "house": 3, + "longitude": 207.93204028705406, + "name": "Saturn", + "speed": 0.007061 + } + ] + }, + "input_mode": "shared_input", + "name": "Steve Jobs", + "raw_sha256": "0913459ebbec8c31fc757f6678ede8d7eafd14aba9003f428d6bcb41958dcbea", + "xalen_raw": { + "ashtakavarga": { + "bav": { + "Jupiter": [ + 7, + 5, + 3, + 3, + 5, + 7, + 3, + 5, + 4, + 6, + 5, + 3 + ], + "Mars": [ + 4, + 7, + 4, + 4, + 3, + 0, + 4, + 5, + 1, + 4, + 1, + 2 + ], + "Mercury": [ + 5, + 5, + 5, + 4, + 4, + 2, + 6, + 5, + 5, + 8, + 2, + 3 + ], + "Moon": [ + 4, + 5, + 4, + 2, + 6, + 5, + 3, + 2, + 5, + 5, + 3, + 5 + ], + "Saturn": [ + 1, + 5, + 3, + 0, + 6, + 3, + 4, + 5, + 3, + 3, + 3, + 3 + ], + "Sun": [ + 3, + 7, + 4, + 3, + 3, + 2, + 6, + 7, + 4, + 4, + 3, + 2 + ], + "Venus": [ + 4, + 3, + 5, + 3, + 4, + 5, + 4, + 3, + 5, + 5, + 5, + 6 + ] + }, + "sav": [ + 28, + 37, + 28, + 19, + 31, + 24, + 30, + 32, + 27, + 35, + 22, + 24 + ] + }, + "commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", + "effective_positions": { + "Jupiter": { + "house": 11, + "longitude": 87.27723563442187, + "speed": -0.06307 + }, + "Mars": { + "house": 9, + "longitude": 5.8598225437926565, + "speed": 0.701796 + }, + "Mercury": { + "house": 6, + "longitude": 291.13107265785646, + "speed": -0.032977 + }, + "Moon": { + "house": 8, + "longitude": 344.5165209098362, + "speed": 14.175536 + }, + "Saturn": { + "house": 3, + "longitude": 207.9320402870541, + "speed": 0.007061 + }, + "Sun": { + "house": 7, + "longitude": 312.51748591136726, + "speed": 1.006069 + }, + "Venus": { + "house": 5, + "longitude": 267.941228624149, + "speed": 1.136674 + } + }, + "engine": "xalen-ephemeris", + "ephemeris_mode": "shared_input", + "license": "Apache-2.0", + "shadbala": { + "Jupiter": { + "chesta": 60.0, + "dig": 40.00000000000001, + "drik": -3.75, + "kala": 94.41634499948964, + "naisargika": 34.29, + "rupas": 7.268868170182727, + "sthana": 211.17574521147395, + "total": 436.1320902109636 + }, + "Mars": { + "chesta": 15.0, + "dig": 50.0, + "drik": 15.0, + "kala": 85.58365500051036, + "naisargika": 17.14, + "rupas": 6.605895235876324, + "sthana": 213.63005915206912, + "total": 396.35371415257947 + }, + "Mercury": { + "chesta": 60.0, + "dig": 9.999999999999998, + "drik": 0.0, + "kala": 85.66634499948964, + "naisargika": 25.71, + "rupas": 5.259710901892291, + "sthana": 134.20630911404785, + "total": 315.58265411353744 + }, + "Moon": { + "chesta": 30.0, + "dig": 20.000000000000004, + "drik": 18.75, + "kala": 106.91634499948964, + "naisargika": 51.43, + "rupas": 7.015586421712807, + "sthana": 193.83884030327874, + "total": 420.9351853027684 + }, + "Saturn": { + "chesta": 30.0, + "dig": 20.000000000000004, + "drik": 11.25, + "kala": 85.58365500051036, + "naisargika": 8.57, + "rupas": 5.920994026191538, + "sthana": 199.85598657098197, + "total": 355.2596415714923 + }, + "Sun": { + "chesta": 30.0, + "dig": 30.0, + "drik": 3.75, + "kala": 133.08365500051036, + "naisargika": 60.0, + "rupas": 8.211213616182768, + "sthana": 235.83916197045576, + "total": 492.6728169709661 + }, + "Venus": { + "chesta": 15.0, + "dig": 50.0, + "drik": 0.0, + "kala": 109.41634499948964, + "naisargika": 42.86, + "rupas": 6.3765014645701, + "sthana": 165.31374287471633, + "total": 382.590087874206 + } + }, + "varga": { + "D1": { + "Jupiter": "Mithuna", + "Mars": "Mesha", + "Mercury": "Makara", + "Moon": "Meena", + "Saturn": "Tula", + "Sun": "Kumbha", + "Venus": "Dhanu" + }, + "D10": { + "Jupiter": "Meena", + "Mars": "Vrishabha", + "Mercury": "Mesha", + "Moon": "Meena", + "Saturn": "Karka", + "Sun": "Mithuna", + "Venus": "Kanya" + }, + "D2": { + "Jupiter": "Karka", + "Mars": "Simha", + "Mercury": "Simha", + "Moon": "Karka", + "Saturn": "Karka", + "Sun": "Simha", + "Venus": "Karka" + }, + "D4": { + "Jupiter": "Meena", + "Mars": "Mesha", + "Mercury": "Karka", + "Moon": "Mithuna", + "Saturn": "Karka", + "Sun": "Vrishabha", + "Venus": "Kanya" + }, + "D9": { + "Jupiter": "Mithuna", + "Mars": "Vrishabha", + "Mercury": "Karka", + "Moon": "Vrishchika", + "Saturn": "Mithuna", + "Sun": "Makara", + "Venus": "Dhanu" + } + } + } + }, + { + "birth_source": { + "evidence_basis": "BC/BR in hand", + "source_grade": "primary", + "time_accuracy_rating": "AA", + "url": "https://www.astro.com/adbvip/adbvip_08_04.htm" + }, + "case_id": "obama_election_2008", + "input": { + "asc_sign_idx": 9, + "day_fraction": 0.8083333333333332, + "jd": 2437516.725, + "mode": "shared_input", + "planets": [ + { + "house": 7, + "longitude": 109.22729898628862, + "name": "Sun", + "speed": 0.957931 + }, + { + "house": 5, + "longitude": 40.036985042969334, + "name": "Moon", + "speed": 12.680222 + }, + { + "house": 8, + "longitude": 149.2559729018458, + "name": "Mars", + "speed": 0.623451 + }, + { + "house": 7, + "longitude": 99.01099033762667, + "name": "Mercury", + "speed": 2.00472 + }, + { + "house": 1, + "longitude": 277.5379714312108, + "name": "Jupiter", + "speed": -0.124367 + }, + { + "house": 6, + "longitude": 68.46874679408938, + "name": "Venus", + "speed": 1.133924 + }, + { + "house": 1, + "longitude": 272.0101451160476, + "name": "Saturn", + "speed": -0.068793 + } + ] + }, + "input_mode": "shared_input", + "name": "Barack Obama", + "raw_sha256": "30e498a6bf5a6539669acaa388a30b2f7d02fb0493a582e69a4b78a12afcd2ad", + "xalen_raw": { + "ashtakavarga": { + "bav": { + "Jupiter": [ + 5, + 5, + 4, + 5, + 4, + 4, + 5, + 7, + 2, + 4, + 5, + 6 + ], + "Mars": [ + 3, + 4, + 3, + 2, + 2, + 4, + 4, + 7, + 3, + 3, + 1, + 3 + ], + "Mercury": [ + 5, + 3, + 7, + 3, + 6, + 4, + 4, + 6, + 4, + 3, + 5, + 4 + ], + "Moon": [ + 5, + 5, + 3, + 3, + 2, + 4, + 6, + 5, + 4, + 4, + 4, + 4 + ], + "Saturn": [ + 4, + 6, + 5, + 3, + 1, + 0, + 4, + 4, + 3, + 3, + 2, + 4 + ], + "Sun": [ + 5, + 5, + 4, + 3, + 3, + 4, + 4, + 6, + 3, + 2, + 4, + 5 + ], + "Venus": [ + 5, + 6, + 4, + 3, + 5, + 6, + 4, + 4, + 3, + 4, + 3, + 5 + ] + }, + "sav": [ + 32, + 34, + 30, + 22, + 23, + 26, + 31, + 39, + 22, + 23, + 24, + 31 + ] + }, + "commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", + "effective_positions": { + "Jupiter": { + "house": 1, + "longitude": 277.5379714312108, + "speed": -0.124367 + }, + "Mars": { + "house": 8, + "longitude": 149.2559729018458, + "speed": 0.623451 + }, + "Mercury": { + "house": 7, + "longitude": 99.01099033762668, + "speed": 2.00472 + }, + "Moon": { + "house": 5, + "longitude": 40.036985042969334, + "speed": 12.680222 + }, + "Saturn": { + "house": 1, + "longitude": 272.0101451160476, + "speed": -0.068793 + }, + "Sun": { + "house": 7, + "longitude": 109.22729898628862, + "speed": 0.957931 + }, + "Venus": { + "house": 6, + "longitude": 68.46874679408938, + "speed": 1.133924 + } + }, + "engine": "xalen-ephemeris", + "ephemeris_mode": "shared_input", + "license": "Apache-2.0", + "shadbala": { + "Jupiter": { + "chesta": 60.0, + "dig": 60.0, + "drik": -3.75, + "kala": 106.06343798110643, + "naisargika": 34.29, + "rupas": 7.3533238076362775, + "sthana": 184.59599047707025, + "total": 441.19942845817667 + }, + "Mars": { + "chesta": 15.0, + "dig": 40.00000000000001, + "drik": 15.0, + "kala": 73.93656201889357, + "naisargika": 17.14, + "rupas": 5.6082536608807025, + "sthana": 175.4186576339486, + "total": 336.49521965284214 + }, + "Mercury": { + "chesta": 15.0, + "dig": 0.0, + "drik": -3.75, + "kala": 83.06343798110642, + "naisargika": 25.71, + "rupas": 5.196285023783033, + "sthana": 191.75366344587556, + "total": 311.777101426982 + }, + "Moon": { + "chesta": 30.0, + "dig": 50.0, + "drik": 0.0, + "kala": 193.93656201889357, + "naisargika": 51.43, + "rupas": 9.133681672298396, + "sthana": 222.6543383190102, + "total": 548.0209003379038 + }, + "Saturn": { + "chesta": 60.0, + "dig": 0.0, + "drik": 11.25, + "kala": 118.93656201889357, + "naisargika": 8.57, + "rupas": 7.287553005225738, + "sthana": 238.49661829465077, + "total": 437.2531803135443 + }, + "Sun": { + "chesta": 30.0, + "dig": 30.0, + "drik": 0.0, + "kala": 89.9365620188936, + "naisargika": 60.0, + "rupas": 6.822679928168845, + "sthana": 199.42423367123712, + "total": 409.3607956901307 + }, + "Venus": { + "chesta": 15.0, + "dig": 40.00000000000001, + "drik": -3.75, + "kala": 61.06343798110643, + "naisargika": 42.86, + "rupas": 4.689175373051277, + "sthana": 126.1770844019702, + "total": 281.3505223830766 + } + }, + "varga": { + "D1": { + "Jupiter": "Makara", + "Mars": "Simha", + "Mercury": "Karka", + "Moon": "Vrishabha", + "Saturn": "Makara", + "Sun": "Karka", + "Venus": "Mithuna" + }, + "D10": { + "Jupiter": "Vrishchika", + "Mars": "Vrishabha", + "Mercury": "Mithuna", + "Moon": "Mesha", + "Saturn": "Kanya", + "Sun": "Kanya", + "Venus": "Simha" + }, + "D2": { + "Jupiter": "Karka", + "Mars": "Karka", + "Mercury": "Karka", + "Moon": "Karka", + "Saturn": "Karka", + "Sun": "Simha", + "Venus": "Simha" + }, + "D4": { + "Jupiter": "Mesha", + "Mars": "Vrishabha", + "Mercury": "Tula", + "Moon": "Simha", + "Saturn": "Makara", + "Sun": "Makara", + "Venus": "Kanya" + }, + "D9": { + "Jupiter": "Meena", + "Mars": "Dhanu", + "Mercury": "Kanya", + "Moon": "Mesha", + "Saturn": "Makara", + "Sun": "Dhanu", + "Venus": "Dhanu" + } + } + } + }, + { + "birth_source": { + "evidence_basis": "BC/BR in hand", + "source_grade": "primary", + "time_accuracy_rating": "AA", + "url": "https://www.astro.com/adbvip/adbvip_06_22.htm" + }, + "case_id": "streep_oscar_1983", + "input": { + "asc_sign_idx": 3, + "day_fraction": 0.3368055555555556, + "jd": 2433090.003472, + "mode": "shared_input", + "planets": [ + { + "house": 12, + "longitude": 67.56582478001536, + "name": "Sun", + "speed": 0.954213 + }, + { + "house": 10, + "longitude": 21.24173632633846, + "name": "Moon", + "speed": 12.216693 + }, + { + "house": 11, + "longitude": 45.680351387458494, + "name": "Mars", + "speed": 0.70295 + }, + { + "house": 11, + "longitude": 47.135389930846124, + "name": "Mercury", + "speed": 0.499298 + }, + { + "house": 7, + "longitude": 277.37965616033586, + "name": "Jupiter", + "speed": -0.095086 + }, + { + "house": 12, + "longitude": 85.2683792031172, + "name": "Venus", + "speed": 1.222166 + }, + { + "house": 2, + "longitude": 128.41757593207123, + "name": "Saturn", + "speed": 0.081619 + } + ] + }, + "input_mode": "shared_input", + "name": "Meryl Streep", + "raw_sha256": "06dd40ee5bfa533e7aaeef379019f2d7ec0242a5cb13cb00f5b117931483f358", + "xalen_raw": { + "ashtakavarga": { + "bav": { + "Jupiter": [ + 4, + 4, + 4, + 5, + 6, + 2, + 6, + 4, + 5, + 5, + 5, + 6 + ], + "Mars": [ + 4, + 4, + 4, + 2, + 3, + 3, + 3, + 5, + 3, + 1, + 3, + 4 + ], + "Mercury": [ + 5, + 6, + 4, + 4, + 5, + 4, + 4, + 5, + 3, + 4, + 7, + 3 + ], + "Moon": [ + 5, + 2, + 3, + 3, + 4, + 5, + 5, + 3, + 6, + 5, + 4, + 4 + ], + "Saturn": [ + 5, + 3, + 4, + 3, + 0, + 4, + 4, + 2, + 5, + 3, + 3, + 3 + ], + "Sun": [ + 4, + 5, + 6, + 2, + 2, + 6, + 2, + 4, + 4, + 4, + 5, + 4 + ], + "Venus": [ + 5, + 5, + 3, + 5, + 4, + 5, + 6, + 4, + 2, + 4, + 3, + 6 + ] + }, + "sav": [ + 32, + 29, + 28, + 24, + 24, + 29, + 30, + 27, + 28, + 26, + 30, + 30 + ] + }, + "commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", + "effective_positions": { + "Jupiter": { + "house": 7, + "longitude": 277.37965616033586, + "speed": -0.095086 + }, + "Mars": { + "house": 11, + "longitude": 45.680351387458494, + "speed": 0.70295 + }, + "Mercury": { + "house": 11, + "longitude": 47.13538993084613, + "speed": 0.499298 + }, + "Moon": { + "house": 10, + "longitude": 21.24173632633846, + "speed": 12.216693 + }, + "Saturn": { + "house": 2, + "longitude": 128.41757593207123, + "speed": 0.081619 + }, + "Sun": { + "house": 12, + "longitude": 67.56582478001536, + "speed": 0.954213 + }, + "Venus": { + "house": 12, + "longitude": 85.2683792031172, + "speed": 1.222166 + } + }, + "engine": "xalen-ephemeris", + "ephemeris_mode": "shared_input", + "license": "Apache-2.0", + "shadbala": { + "Jupiter": { + "chesta": 60.0, + "dig": 0.0, + "drik": 0.0, + "kala": 145.85802948455898, + "naisargika": 34.29, + "rupas": 7.328187470077849, + "sthana": 199.54321872011195, + "total": 439.69124820467096 + }, + "Mars": { + "chesta": 15.0, + "dig": 50.0, + "drik": 0.0, + "kala": 64.14197051544103, + "naisargika": 17.14, + "rupas": 4.7773086675492475, + "sthana": 140.35654953751384, + "total": 286.63852005295485 + }, + "Mercury": { + "chesta": 15.0, + "dig": 40.00000000000001, + "drik": 0.0, + "kala": 180.4413628178923, + "naisargika": 25.71, + "rupas": 7.322719324358461, + "sthana": 178.21179664361537, + "total": 439.3631594615077 + }, + "Moon": { + "chesta": 30.0, + "dig": 0.0, + "drik": 3.75, + "kala": 79.14197051544103, + "naisargika": 51.43, + "rupas": 6.423375821514786, + "sthana": 221.08057877544616, + "total": 385.4025492908872 + }, + "Saturn": { + "chesta": 15.0, + "dig": 9.999999999999998, + "drik": -3.75, + "kala": 124.14197051544103, + "naisargika": 8.57, + "rupas": 5.418352708213302, + "sthana": 171.1391919773571, + "total": 325.1011624927981 + }, + "Sun": { + "chesta": 30.0, + "dig": 40.00000000000001, + "drik": -3.75, + "kala": 84.97530384877437, + "naisargika": 60.0, + "rupas": 6.638111593146154, + "sthana": 187.06139173999486, + "total": 398.28669558876925 + }, + "Venus": { + "chesta": 15.0, + "dig": 20.000000000000004, + "drik": 11.25, + "kala": 55.85802948455897, + "naisargika": 42.86, + "rupas": 5.488253940280887, + "sthana": 184.32720693229425, + "total": 329.29523641685324 + } + }, + "varga": { + "D1": { + "Jupiter": "Makara", + "Mars": "Vrishabha", + "Mercury": "Vrishabha", + "Moon": "Mesha", + "Saturn": "Simha", + "Sun": "Mithuna", + "Venus": "Mithuna" + }, + "D10": { + "Jupiter": "Vrishchika", + "Mars": "Mithuna", + "Mercury": "Mithuna", + "Moon": "Vrishchika", + "Saturn": "Tula", + "Sun": "Simha", + "Venus": "Kumbha" + }, + "D2": { + "Jupiter": "Karka", + "Mars": "Simha", + "Mercury": "Simha", + "Moon": "Karka", + "Saturn": "Simha", + "Sun": "Simha", + "Venus": "Karka" + }, + "D4": { + "Jupiter": "Makara", + "Mars": "Vrishchika", + "Mercury": "Vrishchika", + "Moon": "Tula", + "Saturn": "Vrishchika", + "Sun": "Kanya", + "Venus": "Meena" + }, + "D9": { + "Jupiter": "Meena", + "Mars": "Vrishabha", + "Mercury": "Mithuna", + "Moon": "Tula", + "Saturn": "Mithuna", + "Sun": "Dhanu", + "Venus": "Vrishabha" + } + } + } + }, + { + "birth_source": { + "evidence_basis": "quoted BC/BR", + "source_grade": "primary", + "time_accuracy_rating": "AA", + "url": "https://www.astro.com/adbvip/adbvip_02_11.htm" + }, + "case_id": "aniston_emmy_2002", + "input": { + "asc_sign_idx": 6, + "day_fraction": 0.9319444444444445, + "jd": 2440264.765278, + "mode": "shared_input", + "planets": [ + { + "house": 4, + "longitude": 299.943531599561, + "name": "Sun", + "speed": 1.01135 + }, + { + "house": 2, + "longitude": 239.84124417541534, + "name": "Moon", + "speed": 14.5096 + }, + { + "house": 2, + "longitude": 210.41141021397294, + "name": "Mars", + "speed": 0.493474 + }, + { + "house": 4, + "longitude": 277.02436438945426, + "name": "Mercury", + "speed": 0.213193 + }, + { + "house": 12, + "longitude": 161.81947838304797, + "name": "Jupiter", + "speed": -0.069919 + }, + { + "house": 6, + "longitude": 345.7989420608933, + "name": "Venus", + "speed": 0.860623 + }, + { + "house": 6, + "longitude": 357.6995733022315, + "name": "Saturn", + "speed": 0.086614 + } + ] + }, + "input_mode": "shared_input", + "name": "Jennifer Aniston", + "raw_sha256": "978e2fe29bb2565b4f01201a0db600b8d61961d2667e7751d8395c094c7bfd5e", + "xalen_raw": { + "ashtakavarga": { + "bav": { + "Jupiter": [ + 5, + 4, + 4, + 6, + 5, + 4, + 4, + 6, + 4, + 5, + 5, + 4 + ], + "Mars": [ + 1, + 3, + 5, + 2, + 4, + 3, + 4, + 4, + 3, + 3, + 3, + 4 + ], + "Mercury": [ + 4, + 5, + 6, + 4, + 4, + 5, + 4, + 6, + 5, + 4, + 3, + 4 + ], + "Moon": [ + 4, + 4, + 3, + 7, + 7, + 4, + 2, + 4, + 4, + 5, + 0, + 5 + ], + "Saturn": [ + 3, + 1, + 1, + 4, + 7, + 3, + 4, + 2, + 2, + 7, + 3, + 2 + ], + "Sun": [ + 3, + 3, + 3, + 4, + 5, + 7, + 3, + 4, + 4, + 5, + 4, + 3 + ], + "Venus": [ + 3, + 5, + 6, + 5, + 2, + 3, + 5, + 6, + 5, + 6, + 2, + 4 + ] + }, + "sav": [ + 23, + 25, + 28, + 32, + 34, + 29, + 26, + 32, + 27, + 35, + 20, + 26 + ] + }, + "commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", + "effective_positions": { + "Jupiter": { + "house": 12, + "longitude": 161.81947838304797, + "speed": -0.069919 + }, + "Mars": { + "house": 2, + "longitude": 210.41141021397297, + "speed": 0.493474 + }, + "Mercury": { + "house": 4, + "longitude": 277.02436438945426, + "speed": 0.213193 + }, + "Moon": { + "house": 2, + "longitude": 239.84124417541537, + "speed": 14.5096 + }, + "Saturn": { + "house": 6, + "longitude": 357.6995733022315, + "speed": 0.086614 + }, + "Sun": { + "house": 4, + "longitude": 299.943531599561, + "speed": 1.01135 + }, + "Venus": { + "house": 6, + "longitude": 345.7989420608933, + "speed": 0.860623 + } + }, + "engine": "xalen-ephemeris", + "ephemeris_mode": "shared_input", + "license": "Apache-2.0", + "shadbala": { + "Jupiter": { + "chesta": 60.0, + "dig": 50.0, + "drik": 7.5, + "kala": 88.20076247471522, + "naisargika": 34.29, + "rupas": 6.0661267168949875, + "sthana": 123.976840538984, + "total": 363.96760301369926 + }, + "Mars": { + "chesta": 15.0, + "dig": 20.000000000000004, + "drik": 0.0, + "kala": 121.79923752528478, + "naisargika": 17.14, + "rupas": 6.412384015499041, + "sthana": 210.80380340465766, + "total": 384.7430409299424 + }, + "Mercury": { + "chesta": 15.0, + "dig": 30.0, + "drik": -3.75, + "kala": 140.03409580804856, + "naisargika": 25.71, + "rupas": 6.140044016859396, + "sthana": 161.40854520351525, + "total": 368.4026410115638 + }, + "Moon": { + "chesta": 30.0, + "dig": 40.00000000000001, + "drik": 11.25, + "kala": 91.79923752528478, + "naisargika": 51.43, + "rupas": 6.265438648618164, + "sthana": 151.4470813918051, + "total": 375.9263189170899 + }, + "Saturn": { + "chesta": 15.0, + "dig": 50.0, + "drik": 11.25, + "kala": 151.79923752528478, + "naisargika": 8.57, + "rupas": 5.630045218186794, + "sthana": 101.18347556592283, + "total": 337.80271309120764 + }, + "Sun": { + "chesta": 30.0, + "dig": 0.0, + "drik": -18.75, + "kala": 48.13257085861813, + "naisargika": 60.0, + "rupas": 5.225506912085641, + "sthana": 194.14784386652033, + "total": 313.5304147251385 + }, + "Venus": { + "chesta": 15.0, + "dig": 40.00000000000001, + "drik": 7.5, + "kala": 88.20076247471522, + "naisargika": 42.86, + "rupas": 6.288784608250216, + "sthana": 183.76631402029776, + "total": 377.327076495013 + } + }, + "varga": { + "D1": { + "Jupiter": "Kanya", + "Mars": "Vrishchika", + "Mercury": "Makara", + "Moon": "Vrishchika", + "Saturn": "Meena", + "Sun": "Makara", + "Venus": "Meena" + }, + "D10": { + "Jupiter": "Simha", + "Mars": "Karka", + "Mercury": "Vrishchika", + "Moon": "Mesha", + "Saturn": "Simha", + "Sun": "Mithuna", + "Venus": "Mesha" + }, + "D2": { + "Jupiter": "Karka", + "Mars": "Karka", + "Mercury": "Karka", + "Moon": "Simha", + "Saturn": "Simha", + "Sun": "Simha", + "Venus": "Simha" + }, + "D4": { + "Jupiter": "Dhanu", + "Mars": "Vrishchika", + "Mercury": "Makara", + "Moon": "Simha", + "Saturn": "Dhanu", + "Sun": "Tula", + "Venus": "Kanya" + }, + "D9": { + "Jupiter": "Mesha", + "Mars": "Karka", + "Mercury": "Meena", + "Moon": "Meena", + "Saturn": "Meena", + "Sun": "Kanya", + "Venus": "Vrishchika" + } + } + } + }, + { + "birth_source": { + "evidence_basis": "BC/BR in hand", + "source_grade": "primary", + "time_accuracy_rating": "AA", + "url": "https://www.astro.com/adbvip/adbvip_06_21.htm" + }, + "case_id": "william_marriage_2011", + "input": { + "asc_sign_idx": 8, + "day_fraction": 0.8770833333333333, + "jd": 2445142.335417, + "mode": "shared_input", + "planets": [ + { + "house": 7, + "longitude": 66.49384103041129, + "name": "Sun", + "speed": 0.954604 + }, + { + "house": 7, + "longitude": 71.35231822798167, + "name": "Moon", + "speed": 15.18813 + }, + { + "house": 10, + "longitude": 165.5929316456136, + "name": "Mars", + "speed": 0.383521 + }, + { + "house": 6, + "longitude": 45.35696463229817, + "name": "Mercury", + "speed": 0.595808 + }, + { + "house": 11, + "longitude": 186.877086412283, + "name": "Jupiter", + "speed": -0.017868 + }, + { + "house": 6, + "longitude": 32.050842187621726, + "name": "Venus", + "speed": 1.179172 + }, + { + "house": 10, + "longitude": 171.89485685834748, + "name": "Saturn", + "speed": 0.00571 + } + ] + }, + "input_mode": "shared_input", + "name": "William, Prince of Wales", + "raw_sha256": "d7c0a8370cf2e40a6e40c4c1ff9c541723ba9f4f4fbd0ba132a62cccbb69d1f7", + "xalen_raw": { + "ashtakavarga": { + "bav": { + "Jupiter": [ + 5, + 3, + 5, + 5, + 5, + 5, + 6, + 2, + 5, + 6, + 4, + 5 + ], + "Mars": [ + 5, + 2, + 2, + 4, + 3, + 5, + 5, + 2, + 4, + 0, + 1, + 6 + ], + "Mercury": [ + 5, + 7, + 3, + 6, + 2, + 7, + 5, + 2, + 4, + 4, + 2, + 7 + ], + "Moon": [ + 3, + 4, + 2, + 5, + 5, + 4, + 3, + 6, + 3, + 5, + 5, + 4 + ], + "Saturn": [ + 4, + 1, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 4, + 5, + 5 + ], + "Sun": [ + 6, + 3, + 4, + 4, + 2, + 5, + 5, + 3, + 3, + 2, + 4, + 7 + ], + "Venus": [ + 4, + 6, + 4, + 7, + 5, + 3, + 3, + 2, + 3, + 7, + 5, + 3 + ] + }, + "sav": [ + 32, + 26, + 22, + 34, + 25, + 32, + 30, + 20, + 25, + 28, + 26, + 37 + ] + }, + "commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", + "effective_positions": { + "Jupiter": { + "house": 11, + "longitude": 186.877086412283, + "speed": -0.017868 + }, + "Mars": { + "house": 10, + "longitude": 165.5929316456136, + "speed": 0.383521 + }, + "Mercury": { + "house": 6, + "longitude": 45.35696463229817, + "speed": 0.595808 + }, + "Moon": { + "house": 7, + "longitude": 71.35231822798167, + "speed": 15.18813 + }, + "Saturn": { + "house": 10, + "longitude": 171.89485685834748, + "speed": 0.00571 + }, + "Sun": { + "house": 7, + "longitude": 66.49384103041129, + "speed": 0.954604 + }, + "Venus": { + "house": 6, + "longitude": 32.050842187621726, + "speed": 1.179172 + } + }, + "engine": "xalen-ephemeris", + "ephemeris_mode": "shared_input", + "license": "Apache-2.0", + "shadbala": { + "Jupiter": { + "chesta": 60.0, + "dig": 40.00000000000001, + "drik": 0.0, + "kala": 76.36949239919012, + "naisargika": 34.29, + "rupas": 7.250563282140486, + "sthana": 224.374304529239, + "total": 435.0337969284291 + }, + "Mars": { + "chesta": 15.0, + "dig": 60.0, + "drik": 15.0, + "kala": 103.63050760080986, + "naisargika": 17.14, + "rupas": 6.277246969155795, + "sthana": 165.86431054853784, + "total": 376.63481814934767 + }, + "Mercury": { + "chesta": 15.0, + "dig": 9.999999999999998, + "drik": -3.75, + "kala": 61.61949239919013, + "naisargika": 25.71, + "rupas": 4.269974676832604, + "sthana": 147.61898821076608, + "total": 256.1984806099562 + }, + "Moon": { + "chesta": 30.0, + "dig": 30.0, + "drik": -3.75, + "kala": 151.86949239919014, + "naisargika": 51.43, + "rupas": 7.362756438719938, + "sthana": 182.2158939240061, + "total": 441.76538632319625 + }, + "Saturn": { + "chesta": 30.0, + "dig": 30.0, + "drik": 11.25, + "kala": 163.63050760080986, + "naisargika": 8.57, + "rupas": 7.338868775893205, + "sthana": 196.8816189527825, + "total": 440.33212655359233 + }, + "Sun": { + "chesta": 30.0, + "dig": 30.0, + "drik": 3.75, + "kala": 103.13050760080986, + "naisargika": 60.0, + "rupas": 8.279987120955658, + "sthana": 269.91871965652956, + "total": 496.79922725733945 + }, + "Venus": { + "chesta": 15.0, + "dig": 40.00000000000001, + "drik": -7.5, + "kala": 31.369492399190126, + "naisargika": 42.86, + "rupas": 5.771597972277493, + "sthana": 224.56638593745944, + "total": 346.2958783366496 + } + }, + "varga": { + "D1": { + "Jupiter": "Tula", + "Mars": "Kanya", + "Mercury": "Vrishabha", + "Moon": "Mithuna", + "Saturn": "Kanya", + "Sun": "Mithuna", + "Venus": "Vrishabha" + }, + "D10": { + "Jupiter": "Dhanu", + "Mars": "Tula", + "Mercury": "Mithuna", + "Moon": "Kanya", + "Saturn": "Dhanu", + "Sun": "Simha", + "Venus": "Makara" + }, + "D2": { + "Jupiter": "Simha", + "Mars": "Simha", + "Mercury": "Simha", + "Moon": "Simha", + "Saturn": "Simha", + "Sun": "Simha", + "Venus": "Karka" + }, + "D4": { + "Jupiter": "Tula", + "Mars": "Meena", + "Mercury": "Vrishchika", + "Moon": "Kanya", + "Saturn": "Meena", + "Sun": "Mithuna", + "Venus": "Vrishabha" + }, + "D9": { + "Jupiter": "Dhanu", + "Mars": "Vrishabha", + "Mercury": "Vrishabha", + "Moon": "Makara", + "Saturn": "Karka", + "Sun": "Vrishchika", + "Venus": "Makara" + } + } + } + } + ], + "license": "Apache-2.0", + "mode": "shared_input", + "scope": "xalen_multi_public_case_replay", + "source_commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa" +} diff --git a/references/oracle/artifacts/xalen_steve_jobs_high_rigor_raw.json b/references/oracle/artifacts/xalen_steve_jobs_high_rigor_raw.json new file mode 100644 index 00000000..aba56cd7 --- /dev/null +++ b/references/oracle/artifacts/xalen_steve_jobs_high_rigor_raw.json @@ -0,0 +1,285 @@ +{ + "boundary": "Fourth observation only; no majority-vote truth promotion.", + "engine": "xalen-ephemeris", + "license": "Apache-2.0", + "raw": { + "ashtakavarga": { + "bav": { + "Jupiter": [ + 7, + 5, + 3, + 3, + 5, + 7, + 3, + 5, + 4, + 6, + 5, + 3 + ], + "Mars": [ + 4, + 7, + 4, + 4, + 3, + 0, + 4, + 5, + 1, + 4, + 1, + 2 + ], + "Mercury": [ + 5, + 5, + 5, + 4, + 4, + 2, + 6, + 5, + 5, + 8, + 2, + 3 + ], + "Moon": [ + 4, + 5, + 4, + 2, + 6, + 5, + 3, + 2, + 5, + 5, + 3, + 5 + ], + "Saturn": [ + 1, + 5, + 3, + 0, + 6, + 3, + 4, + 5, + 3, + 3, + 3, + 3 + ], + "Sun": [ + 3, + 7, + 4, + 3, + 3, + 2, + 6, + 7, + 4, + 4, + 3, + 2 + ], + "Venus": [ + 4, + 3, + 5, + 3, + 4, + 5, + 4, + 3, + 5, + 5, + 5, + 6 + ] + }, + "sav": [ + 28, + 37, + 28, + 19, + 31, + 24, + 30, + 32, + 27, + 35, + 22, + 24 + ] + }, + "commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", + "effective_positions": { + "Jupiter": { + "house": 11, + "longitude": 87.27723563442187, + "speed": -0.06307 + }, + "Mars": { + "house": 9, + "longitude": 5.8598225437926565, + "speed": 0.701796 + }, + "Mercury": { + "house": 6, + "longitude": 291.13107265785646, + "speed": -0.032977 + }, + "Moon": { + "house": 8, + "longitude": 344.5165209098362, + "speed": 14.175536 + }, + "Saturn": { + "house": 3, + "longitude": 207.9320402870541, + "speed": 0.007061 + }, + "Sun": { + "house": 7, + "longitude": 312.51748591136726, + "speed": 1.006069 + }, + "Venus": { + "house": 5, + "longitude": 267.941228624149, + "speed": 1.136674 + } + }, + "engine": "xalen-ephemeris", + "ephemeris_mode": "shared_input", + "license": "Apache-2.0", + "shadbala": { + "Jupiter": { + "chesta": 60.0, + "dig": 40.00000000000001, + "drik": -3.75, + "kala": 94.41634499948964, + "naisargika": 34.29, + "rupas": 7.268868170182727, + "sthana": 211.17574521147395, + "total": 436.1320902109636 + }, + "Mars": { + "chesta": 15.0, + "dig": 50.0, + "drik": 15.0, + "kala": 85.58365500051036, + "naisargika": 17.14, + "rupas": 6.605895235876324, + "sthana": 213.63005915206912, + "total": 396.35371415257947 + }, + "Mercury": { + "chesta": 60.0, + "dig": 9.999999999999998, + "drik": 0.0, + "kala": 85.66634499948964, + "naisargika": 25.71, + "rupas": 5.259710901892291, + "sthana": 134.20630911404785, + "total": 315.58265411353744 + }, + "Moon": { + "chesta": 30.0, + "dig": 20.000000000000004, + "drik": 18.75, + "kala": 106.91634499948964, + "naisargika": 51.43, + "rupas": 7.015586421712807, + "sthana": 193.83884030327874, + "total": 420.9351853027684 + }, + "Saturn": { + "chesta": 30.0, + "dig": 20.000000000000004, + "drik": 11.25, + "kala": 85.58365500051036, + "naisargika": 8.57, + "rupas": 5.920994026191538, + "sthana": 199.85598657098197, + "total": 355.2596415714923 + }, + "Sun": { + "chesta": 30.0, + "dig": 30.0, + "drik": 3.75, + "kala": 133.08365500051036, + "naisargika": 60.0, + "rupas": 8.211213616182768, + "sthana": 235.83916197045576, + "total": 492.6728169709661 + }, + "Venus": { + "chesta": 15.0, + "dig": 50.0, + "drik": 0.0, + "kala": 109.41634499948964, + "naisargika": 42.86, + "rupas": 6.3765014645701, + "sthana": 165.31374287471633, + "total": 382.590087874206 + } + }, + "varga": { + "D1": { + "Jupiter": "Mithuna", + "Mars": "Mesha", + "Mercury": "Makara", + "Moon": "Meena", + "Saturn": "Tula", + "Sun": "Kumbha", + "Venus": "Dhanu" + }, + "D10": { + "Jupiter": "Meena", + "Mars": "Vrishabha", + "Mercury": "Mesha", + "Moon": "Meena", + "Saturn": "Karka", + "Sun": "Mithuna", + "Venus": "Kanya" + }, + "D2": { + "Jupiter": "Karka", + "Mars": "Simha", + "Mercury": "Simha", + "Moon": "Karka", + "Saturn": "Karka", + "Sun": "Simha", + "Venus": "Karka" + }, + "D4": { + "Jupiter": "Meena", + "Mars": "Mesha", + "Mercury": "Karka", + "Moon": "Mithuna", + "Saturn": "Karka", + "Sun": "Vrishabha", + "Venus": "Kanya" + }, + "D9": { + "Jupiter": "Mithuna", + "Mars": "Vrishabha", + "Mercury": "Karka", + "Moon": "Vrishchika", + "Saturn": "Mithuna", + "Sun": "Makara", + "Venus": "Dhanu" + } + } + }, + "source_commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", + "status": "raw_verified" +} diff --git a/references/oracle/artifacts/xalen_steve_jobs_independent_ephemeris_raw.json b/references/oracle/artifacts/xalen_steve_jobs_independent_ephemeris_raw.json new file mode 100644 index 00000000..5fd8aaeb --- /dev/null +++ b/references/oracle/artifacts/xalen_steve_jobs_independent_ephemeris_raw.json @@ -0,0 +1,285 @@ +{ + "boundary": "Fourth observation only; no majority-vote truth promotion.", + "engine": "xalen-ephemeris", + "license": "Apache-2.0", + "raw": { + "ashtakavarga": { + "bav": { + "Jupiter": [ + 7, + 5, + 3, + 3, + 5, + 7, + 3, + 5, + 4, + 6, + 5, + 3 + ], + "Mars": [ + 4, + 7, + 4, + 4, + 3, + 0, + 4, + 5, + 1, + 4, + 1, + 2 + ], + "Mercury": [ + 5, + 5, + 5, + 4, + 4, + 2, + 6, + 5, + 5, + 8, + 2, + 3 + ], + "Moon": [ + 4, + 5, + 4, + 2, + 6, + 5, + 3, + 2, + 5, + 5, + 3, + 5 + ], + "Saturn": [ + 1, + 5, + 3, + 0, + 6, + 3, + 4, + 5, + 3, + 3, + 3, + 3 + ], + "Sun": [ + 3, + 7, + 4, + 3, + 3, + 2, + 6, + 7, + 4, + 4, + 3, + 2 + ], + "Venus": [ + 4, + 3, + 5, + 3, + 4, + 5, + 4, + 3, + 5, + 5, + 5, + 6 + ] + }, + "sav": [ + 28, + 37, + 28, + 19, + 31, + 24, + 30, + 32, + 27, + 35, + 22, + 24 + ] + }, + "commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", + "effective_positions": { + "Jupiter": { + "house": 11, + "longitude": 87.2723950733489, + "speed": -0.0630678786343745 + }, + "Mars": { + "house": 9, + "longitude": 5.854985381019798, + "speed": 0.7017965758751779 + }, + "Mercury": { + "house": 6, + "longitude": 291.1263406896849, + "speed": -0.03320556249180691 + }, + "Moon": { + "house": 8, + "longitude": 344.5112149434978, + "speed": 14.171843625587321 + }, + "Saturn": { + "house": 3, + "longitude": 207.92730802663004, + "speed": 0.007061113858520935 + }, + "Sun": { + "house": 7, + "longitude": 312.5127151568504, + "speed": 1.0060700539476224 + }, + "Venus": { + "house": 5, + "longitude": 267.9364873704055, + "speed": 1.1366728852527421 + } + }, + "engine": "xalen-ephemeris", + "ephemeris_mode": "independent_ephemeris", + "license": "Apache-2.0", + "shadbala": { + "Jupiter": { + "chesta": 60.0, + "dig": 40.00000000000001, + "drik": -3.75, + "kala": 94.41616659554913, + "naisargika": 34.29, + "rupas": 7.268838304777757, + "sthana": 211.17413169111632, + "total": 436.13029828666544 + }, + "Mars": { + "chesta": 15.0, + "dig": 50.0, + "drik": 15.0, + "kala": 85.58383340445087, + "naisargika": 17.14, + "rupas": 6.60592508240185, + "sthana": 213.6316715396601, + "total": 396.355504944111 + }, + "Mercury": { + "chesta": 60.0, + "dig": 9.999999999999998, + "drik": 0.0, + "kala": 85.66616659554914, + "naisargika": 25.71, + "rupas": 5.259734217205347, + "sthana": 134.2078864367717, + "total": 315.5840530323208 + }, + "Moon": { + "chesta": 30.0, + "dig": 20.000000000000004, + "drik": 18.75, + "kala": 106.91616659554914, + "naisargika": 51.43, + "rupas": 7.01555397072303, + "sthana": 193.8370716478326, + "total": 420.93323824338177 + }, + "Saturn": { + "chesta": 30.0, + "dig": 20.000000000000004, + "drik": 11.25, + "kala": 85.58383340445087, + "naisargika": 8.57, + "rupas": 5.921023289926237, + "sthana": 199.85756399112333, + "total": 355.2613973955742 + }, + "Sun": { + "chesta": 30.0, + "dig": 30.0, + "drik": 3.75, + "kala": 133.08383340445084, + "naisargika": 60.0, + "rupas": 8.211190085390017, + "sthana": 235.83757171895013, + "total": 492.671405123401 + }, + "Venus": { + "chesta": 15.0, + "dig": 50.0, + "drik": 0.0, + "kala": 109.41616659554913, + "naisargika": 42.86, + "rupas": 6.376472150872516, + "sthana": 165.31216245680181, + "total": 382.58832905235096 + } + }, + "varga": { + "D1": { + "Jupiter": "Mithuna", + "Mars": "Mesha", + "Mercury": "Makara", + "Moon": "Meena", + "Saturn": "Tula", + "Sun": "Kumbha", + "Venus": "Dhanu" + }, + "D10": { + "Jupiter": "Meena", + "Mars": "Vrishabha", + "Mercury": "Mesha", + "Moon": "Meena", + "Saturn": "Karka", + "Sun": "Mithuna", + "Venus": "Kanya" + }, + "D2": { + "Jupiter": "Karka", + "Mars": "Simha", + "Mercury": "Simha", + "Moon": "Karka", + "Saturn": "Karka", + "Sun": "Simha", + "Venus": "Karka" + }, + "D4": { + "Jupiter": "Meena", + "Mars": "Mesha", + "Mercury": "Karka", + "Moon": "Mithuna", + "Saturn": "Karka", + "Sun": "Vrishabha", + "Venus": "Kanya" + }, + "D9": { + "Jupiter": "Mithuna", + "Mars": "Vrishabha", + "Mercury": "Karka", + "Moon": "Vrishchika", + "Saturn": "Mithuna", + "Sun": "Makara", + "Venus": "Dhanu" + } + } + }, + "source_commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", + "status": "raw_verified" +} diff --git a/references/oracle/three_engine_mismatch_arbitration_2026_07_17.json b/references/oracle/three_engine_mismatch_arbitration_2026_07_17.json new file mode 100644 index 00000000..3a90137d --- /dev/null +++ b/references/oracle/three_engine_mismatch_arbitration_2026_07_17.json @@ -0,0 +1,1464 @@ +{ + "category_counts": { + "ashtakavarga_table_or_contributor_variant": 8, + "derived_total_from_component_variants": 7, + "endpoint_or_varga_semantics": 10, + "shadbala_formula_variant": 35 + }, + "classified_count": 60, + "manifest_path": "references/oracle/three_engine_parity_replay_manifest.json", + "mismatch_count": 60, + "rows": [ + { + "category": "endpoint_or_varga_semantics", + "closure_requirement": "Confirm VedAstro endpoint returns the requested varga under the same ayanamsa/node/method contract.", + "differing_engines": [ + "VedAstro" + ], + "field": "Sun.sign", + "local_value": "Leo", + "oracle_values": { + "PyJHora_JHora": "Leo", + "VedAstro": "Gemini", + "jyotishganit": "Leo" + }, + "section": "D2", + "truth_status": "unresolved" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_requirement": "Confirm VedAstro endpoint returns the requested varga under the same ayanamsa/node/method contract.", + "differing_engines": [ + "VedAstro" + ], + "field": "Moon.sign", + "local_value": "Cancer", + "oracle_values": { + "PyJHora_JHora": "Cancer", + "VedAstro": "Pisces", + "jyotishganit": "Cancer" + }, + "section": "D2", + "truth_status": "unresolved" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_requirement": "Confirm VedAstro endpoint returns the requested varga under the same ayanamsa/node/method contract.", + "differing_engines": [ + "VedAstro" + ], + "field": "Mars.sign", + "local_value": "Leo", + "oracle_values": { + "PyJHora_JHora": "Leo", + "VedAstro": "Aries", + "jyotishganit": "Leo" + }, + "section": "D2", + "truth_status": "unresolved" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_requirement": "Confirm VedAstro endpoint returns the requested varga under the same ayanamsa/node/method contract.", + "differing_engines": [ + "VedAstro" + ], + "field": "Mercury.sign", + "local_value": "Leo", + "oracle_values": { + "PyJHora_JHora": "Leo", + "VedAstro": "Virgo", + "jyotishganit": "Leo" + }, + "section": "D2", + "truth_status": "unresolved" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_requirement": "Confirm VedAstro endpoint returns the requested varga under the same ayanamsa/node/method contract.", + "differing_engines": [ + "VedAstro" + ], + "field": "Jupiter.sign", + "local_value": "Cancer", + "oracle_values": { + "PyJHora_JHora": "Cancer", + "VedAstro": "Aquarius", + "jyotishganit": "Cancer" + }, + "section": "D2", + "truth_status": "unresolved" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_requirement": "Confirm VedAstro endpoint returns the requested varga under the same ayanamsa/node/method contract.", + "differing_engines": [ + "VedAstro" + ], + "field": "Venus.sign", + "local_value": "Cancer", + "oracle_values": { + "PyJHora_JHora": "Cancer", + "VedAstro": "Leo", + "jyotishganit": "Cancer" + }, + "section": "D2", + "truth_status": "unresolved" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_requirement": "Confirm VedAstro endpoint returns the requested varga under the same ayanamsa/node/method contract.", + "differing_engines": [ + "VedAstro" + ], + "field": "Saturn.sign", + "local_value": "Cancer", + "oracle_values": { + "PyJHora_JHora": "Cancer", + "VedAstro": "Gemini", + "jyotishganit": "Cancer" + }, + "section": "D2", + "truth_status": "unresolved" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_requirement": "Confirm VedAstro endpoint returns the requested varga under the same ayanamsa/node/method contract.", + "differing_engines": [ + "VedAstro" + ], + "field": "Moon.sign", + "local_value": "Gemini", + "oracle_values": { + "PyJHora_JHora": "Gemini", + "VedAstro": "Pisces", + "jyotishganit": "Gemini" + }, + "section": "D4", + "truth_status": "unresolved" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_requirement": "Confirm VedAstro endpoint returns the requested varga under the same ayanamsa/node/method contract.", + "differing_engines": [ + "VedAstro" + ], + "field": "Moon.sign", + "local_value": "Scorpio", + "oracle_values": { + "PyJHora_JHora": "Scorpio", + "VedAstro": "Leo", + "jyotishganit": "Scorpio" + }, + "section": "D9", + "truth_status": "unresolved" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_requirement": "Confirm VedAstro endpoint returns the requested varga under the same ayanamsa/node/method contract.", + "differing_engines": [ + "VedAstro" + ], + "field": "Moon.sign", + "local_value": "Pisces", + "oracle_values": { + "PyJHora_JHora": "Pisces", + "VedAstro": "Sagittarius", + "jyotishganit": "Pisces" + }, + "section": "D10", + "truth_status": "unresolved" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_requirement": "Compare contributor tables, Lagna inclusion, shodhana state, and BAV/SAV row semantics.", + "differing_engines": [ + "VedAstro" + ], + "field": "Sun", + "local_value": [ + 3, + 7, + 4, + 3, + 3, + 2, + 6, + 7, + 4, + 4, + 3, + 2 + ], + "oracle_values": { + "PyJHora_JHora": [ + 3, + 7, + 4, + 3, + 3, + 2, + 6, + 7, + 4, + 4, + 3, + 2 + ], + "VedAstro": [ + 3, + 7, + 3, + 2, + 3, + 3, + 6, + 7, + 4, + 3, + 4, + 3 + ], + "jyotishganit": [ + 3, + 7, + 4, + 3, + 3, + 2, + 6, + 7, + 4, + 4, + 3, + 2 + ] + }, + "section": "ashtakavarga_bav", + "truth_status": "unresolved" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_requirement": "Compare contributor tables, Lagna inclusion, shodhana state, and BAV/SAV row semantics.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Moon", + "local_value": [ + 4, + 4, + 4, + 3, + 6, + 5, + 3, + 3, + 4, + 5, + 3, + 5 + ], + "oracle_values": { + "PyJHora_JHora": [ + 4, + 4, + 4, + 3, + 6, + 5, + 3, + 3, + 4, + 5, + 3, + 5 + ], + "VedAstro": [ + 4, + 5, + 3, + 2, + 6, + 6, + 3, + 2, + 5, + 4, + 4, + 5 + ], + "jyotishganit": [ + 4, + 5, + 4, + 2, + 6, + 5, + 3, + 2, + 5, + 5, + 3, + 5 + ] + }, + "section": "ashtakavarga_bav", + "truth_status": "unresolved" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_requirement": "Compare contributor tables, Lagna inclusion, shodhana state, and BAV/SAV row semantics.", + "differing_engines": [ + "VedAstro" + ], + "field": "Mars", + "local_value": [ + 4, + 7, + 4, + 4, + 3, + 0, + 4, + 5, + 1, + 4, + 1, + 2 + ], + "oracle_values": { + "PyJHora_JHora": [ + 4, + 7, + 4, + 4, + 3, + 0, + 4, + 5, + 1, + 4, + 1, + 2 + ], + "VedAstro": [ + 4, + 7, + 3, + 4, + 2, + 1, + 4, + 5, + 2, + 3, + 2, + 2 + ], + "jyotishganit": [ + 4, + 7, + 4, + 4, + 3, + 0, + 4, + 5, + 1, + 4, + 1, + 2 + ] + }, + "section": "ashtakavarga_bav", + "truth_status": "unresolved" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_requirement": "Compare contributor tables, Lagna inclusion, shodhana state, and BAV/SAV row semantics.", + "differing_engines": [ + "VedAstro" + ], + "field": "Mercury", + "local_value": [ + 5, + 5, + 5, + 4, + 4, + 2, + 6, + 5, + 5, + 8, + 2, + 3 + ], + "oracle_values": { + "PyJHora_JHora": [ + 5, + 5, + 5, + 4, + 4, + 2, + 6, + 5, + 5, + 8, + 2, + 3 + ], + "VedAstro": [ + 5, + 5, + 4, + 5, + 3, + 2, + 7, + 4, + 6, + 8, + 2, + 3 + ], + "jyotishganit": [ + 5, + 5, + 5, + 4, + 4, + 2, + 6, + 5, + 5, + 8, + 2, + 3 + ] + }, + "section": "ashtakavarga_bav", + "truth_status": "unresolved" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_requirement": "Compare contributor tables, Lagna inclusion, shodhana state, and BAV/SAV row semantics.", + "differing_engines": [ + "VedAstro" + ], + "field": "Jupiter", + "local_value": [ + 7, + 5, + 3, + 3, + 4, + 7, + 4, + 5, + 4, + 6, + 5, + 3 + ], + "oracle_values": { + "PyJHora_JHora": [ + 7, + 5, + 3, + 3, + 4, + 7, + 4, + 5, + 4, + 6, + 5, + 3 + ], + "VedAstro": [ + 7, + 5, + 3, + 3, + 4, + 7, + 5, + 4, + 4, + 6, + 4, + 4 + ], + "jyotishganit": [ + 7, + 5, + 3, + 3, + 4, + 7, + 4, + 5, + 4, + 6, + 5, + 3 + ] + }, + "section": "ashtakavarga_bav", + "truth_status": "unresolved" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_requirement": "Compare contributor tables, Lagna inclusion, shodhana state, and BAV/SAV row semantics.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Venus", + "local_value": [ + 4, + 3, + 5, + 4, + 3, + 5, + 4, + 3, + 5, + 5, + 5, + 6 + ], + "oracle_values": { + "PyJHora_JHora": [ + 4, + 3, + 5, + 4, + 3, + 5, + 4, + 3, + 5, + 5, + 5, + 6 + ], + "VedAstro": [ + 4, + 3, + 4, + 4, + 4, + 4, + 4, + 2, + 5, + 6, + 6, + 6 + ], + "jyotishganit": [ + 4, + 3, + 5, + 3, + 4, + 5, + 4, + 3, + 5, + 5, + 5, + 6 + ] + }, + "section": "ashtakavarga_bav", + "truth_status": "unresolved" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_requirement": "Compare contributor tables, Lagna inclusion, shodhana state, and BAV/SAV row semantics.", + "differing_engines": [ + "VedAstro" + ], + "field": "Saturn", + "local_value": [ + 1, + 5, + 3, + 0, + 6, + 3, + 4, + 5, + 3, + 3, + 3, + 3 + ], + "oracle_values": { + "PyJHora_JHora": [ + 1, + 5, + 3, + 0, + 6, + 3, + 4, + 5, + 3, + 3, + 3, + 3 + ], + "VedAstro": [ + 1, + 5, + 2, + 0, + 5, + 4, + 4, + 4, + 4, + 2, + 4, + 4 + ], + "jyotishganit": [ + 1, + 5, + 3, + 0, + 6, + 3, + 4, + 5, + 3, + 3, + 3, + 3 + ] + }, + "section": "ashtakavarga_bav", + "truth_status": "unresolved" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_requirement": "Compare contributor tables, Lagna inclusion, shodhana state, and BAV/SAV row semantics.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "12_sign_scores", + "local_value": [ + 28, + 36, + 28, + 21, + 29, + 24, + 31, + 33, + 26, + 35, + 22, + 24 + ], + "oracle_values": { + "PyJHora_JHora": [ + 28, + 36, + 28, + 21, + 29, + 24, + 31, + 33, + 26, + 35, + 22, + 24 + ], + "VedAstro": [ + 24, + 28, + 37, + 28, + 19, + 30, + 24, + 31, + 32, + 27, + 35, + 22 + ], + "jyotishganit": [ + 28, + 37, + 28, + 19, + 30, + 24, + 31, + 32, + 27, + 35, + 22, + 24 + ] + }, + "section": "ashtakavarga_sav", + "truth_status": "unresolved" + }, + { + "category": "derived_total_from_component_variants", + "closure_requirement": "Do not arbitrate totals until all six component variants and Virupa/Rupa units are aligned.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Sun", + "local_value": 480.62, + "oracle_values": { + "PyJHora_JHora": 444.63, + "VedAstro": 395.06, + "jyotishganit": 422.007 + }, + "section": "shadbala_total", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Sun.sthana", + "local_value": 217.09, + "oracle_values": { + "PyJHora_JHora": 217.09, + "VedAstro": 202.0874074074074, + "jyotishganit": 153.341 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Sun.kala", + "local_value": 140.98, + "oracle_values": { + "PyJHora_JHora": 140.99, + "VedAstro": 128.0507461419753, + "jyotishganit": 148.893 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Sun.dig", + "local_value": 24.81, + "oracle_values": { + "PyJHora_JHora": 24.81, + "VedAstro": 24.810925925925925, + "jyotishganit": 29.175 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Sun.chesta", + "local_value": 36.0, + "oracle_values": { + "PyJHora_JHora": 0.0, + "VedAstro": 0.0, + "jyotishganit": 37.06 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Sun.drik", + "local_value": 1.74, + "oracle_values": { + "PyJHora_JHora": 1.74, + "VedAstro": -19.891041666666666, + "jyotishganit": -6.462 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "derived_total_from_component_variants", + "closure_requirement": "Do not arbitrate totals until all six component variants and Virupa/Rupa units are aligned.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Moon", + "local_value": 584.26, + "oracle_values": { + "PyJHora_JHora": 562.89, + "VedAstro": 421.8, + "jyotishganit": 420.655 + }, + "section": "shadbala_total", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Moon.sthana", + "local_value": 246.34, + "oracle_values": { + "PyJHora_JHora": 246.34, + "VedAstro": 236.69703703703703, + "jyotishganit": 141.341 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Moon.kala", + "local_value": 149.61, + "oracle_values": { + "PyJHora_JHora": 149.58, + "VedAstro": 159.53537962962963, + "jyotishganit": 183.112 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Moon.dig", + "local_value": 95.48, + "oracle_values": { + "PyJHora_JHora": 95.48, + "VedAstro": 52.26824074074074, + "jyotishganit": 20.159 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Moon.chesta", + "local_value": 21.34, + "oracle_values": { + "PyJHora_JHora": 0.0, + "VedAstro": 0.0, + "jyotishganit": 10.667 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Moon.drik", + "local_value": 20.06, + "oracle_values": { + "PyJHora_JHora": 20.06, + "VedAstro": -18.131319444444447, + "jyotishganit": 13.946 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "derived_total_from_component_variants", + "closure_requirement": "Do not arbitrate totals until all six component variants and Virupa/Rupa units are aligned.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Mars", + "local_value": 456.19, + "oracle_values": { + "PyJHora_JHora": 533.18, + "VedAstro": 397.89, + "jyotishganit": 438.227 + }, + "section": "shadbala_total", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Mars.sthana", + "local_value": 198.63, + "oracle_values": { + "PyJHora_JHora": 198.63, + "VedAstro": 221.28777777777776, + "jyotishganit": 232.378 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Mars.kala", + "local_value": 127.92, + "oracle_values": { + "PyJHora_JHora": 127.93, + "VedAstro": 148.2544363425926, + "jyotishganit": 106.407 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Mars.dig", + "local_value": 77.41, + "oracle_values": { + "PyJHora_JHora": 77.41, + "VedAstro": 2.3666666666666667, + "jyotishganit": 46.955 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Mars.chesta", + "local_value": 21.6, + "oracle_values": { + "PyJHora_JHora": 98.58, + "VedAstro": 21.737741162570256, + "jyotishganit": 22.864 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Mars.drik", + "local_value": 13.49, + "oracle_values": { + "PyJHora_JHora": 13.49, + "VedAstro": -12.978854166666672, + "jyotishganit": 12.483 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "derived_total_from_component_variants", + "closure_requirement": "Do not arbitrate totals until all six component variants and Virupa/Rupa units are aligned.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Mercury", + "local_value": 365.28, + "oracle_values": { + "PyJHora_JHora": 363.24, + "VedAstro": 376.04, + "jyotishganit": 241.84 + }, + "section": "shadbala_total", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Mercury.sthana", + "local_value": 167.96, + "oracle_values": { + "PyJHora_JHora": 167.96, + "VedAstro": 182.95805555555555, + "jyotishganit": 111.704 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Mercury.kala", + "local_value": 121.79, + "oracle_values": { + "PyJHora_JHora": 121.78, + "VedAstro": 126.59104166666665, + "jyotishganit": 72.089 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Mercury.dig", + "local_value": 12.64, + "oracle_values": { + "PyJHora_JHora": 12.64, + "VedAstro": 12.643148148148148, + "jyotishganit": 7.954 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Mercury.chesta", + "local_value": 47.8, + "oracle_values": { + "PyJHora_JHora": 45.78, + "VedAstro": 47.51070370816793, + "jyotishganit": 35.368 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Mercury.drik", + "local_value": -10.62, + "oracle_values": { + "PyJHora_JHora": -10.63, + "VedAstro": -19.363888888888884, + "jyotishganit": -10.985 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "derived_total_from_component_variants", + "closure_requirement": "Do not arbitrate totals until all six component variants and Virupa/Rupa units are aligned.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Jupiter", + "local_value": 569.4, + "oracle_values": { + "PyJHora_JHora": 596.89, + "VedAstro": 427.22, + "jyotishganit": 596.043 + }, + "section": "shadbala_total", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Jupiter.sthana", + "local_value": 201.81, + "oracle_values": { + "PyJHora_JHora": 201.8, + "VedAstro": 213.06314814814814, + "jyotishganit": 226.178 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Jupiter.kala", + "local_value": 199.32, + "oracle_values": { + "PyJHora_JHora": 199.31, + "VedAstro": 141.64764506172838, + "jyotishganit": 250.984 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Jupiter.dig", + "local_value": 80.59, + "oracle_values": { + "PyJHora_JHora": 80.6, + "VedAstro": 6.773333333333333, + "jyotishganit": 44.095 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Jupiter.chesta", + "local_value": 46.49, + "oracle_values": { + "PyJHora_JHora": 74.0, + "VedAstro": 46.05491068568356, + "jyotishganit": 36.424 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Jupiter.drik", + "local_value": 6.9, + "oracle_values": { + "PyJHora_JHora": 6.89, + "VedAstro": -14.818125000000006, + "jyotishganit": 4.072 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "derived_total_from_component_variants", + "closure_requirement": "Do not arbitrate totals until all six component variants and Virupa/Rupa units are aligned.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Venus", + "local_value": 406.93, + "oracle_values": { + "PyJHora_JHora": 408.64, + "VedAstro": 402.56, + "jyotishganit": 306.501 + }, + "section": "shadbala_total", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Venus.sthana", + "local_value": 154.06, + "oracle_values": { + "PyJHora_JHora": 154.06, + "VedAstro": 210.05953703703705, + "jyotishganit": 112.816 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Venus.kala", + "local_value": 113.45, + "oracle_values": { + "PyJHora_JHora": 113.44, + "VedAstro": 97.43954166666667, + "jyotishganit": 63.186 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Venus.dig", + "local_value": 69.95, + "oracle_values": { + "PyJHora_JHora": 69.95, + "VedAstro": 29.630740740740737, + "jyotishganit": 45.684 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Venus.chesta", + "local_value": 29.36, + "oracle_values": { + "PyJHora_JHora": 31.08, + "VedAstro": 30.84685510809705, + "jyotishganit": 46.466 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Venus.drik", + "local_value": -2.75, + "oracle_values": { + "PyJHora_JHora": -2.75, + "VedAstro": -8.51038194444445, + "jyotishganit": -4.511 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "derived_total_from_component_variants", + "closure_requirement": "Do not arbitrate totals until all six component variants and Virupa/Rupa units are aligned.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Saturn", + "local_value": 430.05, + "oracle_values": { + "PyJHora_JHora": 429.42, + "VedAstro": 448.58, + "jyotishganit": 322.113 + }, + "section": "shadbala_total", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Saturn.sthana", + "local_value": 218.61, + "oracle_values": { + "PyJHora_JHora": 218.61, + "VedAstro": 239.23268518518518, + "jyotishganit": 151.104 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Saturn.kala", + "local_value": 136.76, + "oracle_values": { + "PyJHora_JHora": 136.77, + "VedAstro": 140.7160763888889, + "jyotishganit": 71.929 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Saturn.dig", + "local_value": 19.63, + "oracle_values": { + "PyJHora_JHora": 19.62, + "VedAstro": 19.623796296296295, + "jyotishganit": 24.313 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Saturn.chesta", + "local_value": 36.99, + "oracle_values": { + "PyJHora_JHora": 36.36, + "VedAstro": 39.438983295527784, + "jyotishganit": 58.137 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + }, + { + "category": "shadbala_formula_variant", + "closure_requirement": "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Saturn.drik", + "local_value": 9.49, + "oracle_values": { + "PyJHora_JHora": 9.49, + "VedAstro": 0.9979513888888878, + "jyotishganit": 8.06 + }, + "section": "shadbala_components", + "truth_status": "unresolved" + } + ], + "scope": "three_engine_field_level_mismatch_arbitration", + "status": "classified_unresolved", + "truth_policy": "no_majority_vote", + "unclassified_count": 0 +} diff --git a/references/oracle/vedastro_nuget_candidate_1_2_0.json b/references/oracle/vedastro_nuget_candidate_1_2_0.json new file mode 100644 index 00000000..0f1180d4 --- /dev/null +++ b/references/oracle/vedastro_nuget_candidate_1_2_0.json @@ -0,0 +1,22 @@ +{ + "scope": "vedastro_reproducible_library_candidate", + "package": "VedAstro.Library", + "version": "1.2.0", + "package_url": "https://api.nuget.org/v3-flatcontainer/vedastro.library/1.2.0/vedastro.library.1.2.0.nupkg", + "package_sha256": "f753df4e76c75b9ad219c2f5a8fe4b17361065d6f4fa1198897cf117b7bc55d5", + "library_dll_sha256": "e4ec61b07ac1c15fcc65d9ffdc54bc2d26497597760572e2888f1992fc7b1ca8", + "target_framework": "net7.0", + "license": "MIT", + "repository": "https://github.com/VedAstro/VedAstro", + "container_base": "mcr.microsoft.com/dotnet/sdk:7.0@sha256:d32bd65cf5843f413e81f5d917057c82da99737cb1637e905a1a4bc2e7ec6c8d", + "runtime_probe": "benchmarks/vedastro_nuget_probe", + "runtime_methods_verified": [ + "GetAllPlanetLongitude", + "GetPlanetNirayanaLongitude", + "GetPlanetRasiSign", + "GetPlanetShadbalaPinda" + ], + "status": "reproducible_library_executable_verified", + "hosted_api_identity_status": "blocked", + "boundary": "The signed NuGet library is reproducible and pinned, but it is not an identity for api.vedastro.org and does not include hosted databases/routes." +} diff --git a/references/oracle/xalen_ephemeris_mode_comparison_2026_07_17.json b/references/oracle/xalen_ephemeris_mode_comparison_2026_07_17.json new file mode 100644 index 00000000..30c31d37 --- /dev/null +++ b/references/oracle/xalen_ephemeris_mode_comparison_2026_07_17.json @@ -0,0 +1,63 @@ +{ + "ashtakavarga_difference_count": 0, + "boundary": "Independent mode recomputes seven planetary longitudes/speeds; house numbers remain shared input.", + "independent_engine": "Xalen Almanac.default_vedic VSOP87 analytical + Xalen Lahiri", + "independent_mode": "independent_ephemeris", + "maximum_absolute_longitude_delta_deg": 0.005305966338369217, + "positions": { + "Jupiter": { + "independent_longitude": 87.2723950733489, + "longitude_delta_deg": -0.004840561072967375, + "shared_longitude": 87.27723563442187, + "speed_delta_deg_per_day": 2.121365625495919e-06 + }, + "Mars": { + "independent_longitude": 5.854985381019798, + "longitude_delta_deg": -0.0048371627728442945, + "shared_longitude": 5.8598225437926565, + "speed_delta_deg_per_day": 5.758751778772719e-07 + }, + "Mercury": { + "independent_longitude": 291.1263406896849, + "longitude_delta_deg": -0.004731968171540757, + "shared_longitude": 291.13107265785646, + "speed_delta_deg_per_day": -0.0002285624918069093 + }, + "Moon": { + "independent_longitude": 344.5112149434978, + "longitude_delta_deg": -0.005305966338369217, + "shared_longitude": 344.5165209098362, + "speed_delta_deg_per_day": -0.003692374412677779 + }, + "Saturn": { + "independent_longitude": 207.92730802663004, + "longitude_delta_deg": -0.004732260424049173, + "shared_longitude": 207.9320402870541, + "speed_delta_deg_per_day": 1.1385852093526855e-07 + }, + "Sun": { + "independent_longitude": 312.5127151568504, + "longitude_delta_deg": -0.004770754516869147, + "shared_longitude": 312.51748591136726, + "speed_delta_deg_per_day": 1.0539476222870547e-06 + }, + "Venus": { + "independent_longitude": 267.9364873704055, + "longitude_delta_deg": -0.00474125374353207, + "shared_longitude": 267.941228624149, + "speed_delta_deg_per_day": -1.1147472578354467e-06 + } + }, + "scope": "xalen_ephemeris_mode_comparison", + "shadbala_total_delta_virupas": { + "Jupiter": -0.001791924298174763, + "Mars": 0.001790791531504965, + "Mercury": 0.0013989187833658434, + "Moon": -0.0019470593866230956, + "Saturn": 0.0017558240818971171, + "Sun": -0.0014118475651230256, + "Venus": -0.001758821855048609 + }, + "shared_mode": "shared_input", + "varga_difference_count": 0 +} diff --git a/references/oracle/xalen_formula_unit_attribution_2026_07_17.json b/references/oracle/xalen_formula_unit_attribution_2026_07_17.json new file mode 100644 index 00000000..ec3543fa --- /dev/null +++ b/references/oracle/xalen_formula_unit_attribution_2026_07_17.json @@ -0,0 +1,691 @@ +{ + "category_counts": { + "aspect_interpolation_variant": 7, + "contributor_table_variant": 4, + "derived_total_from_five_component_variants": 7, + "formula_variant": 7, + "geometry_variant": 7, + "motion_model_variant": 7, + "solar_context_variant": 7 + }, + "classified_count": 46, + "row_count": 46, + "rows": [ + { + "category": "contributor_table_variant", + "delta_by_sign": [ + 0, + 1, + 0, + -1, + 0, + 0, + 0, + -1, + 1, + 0, + 0, + 0 + ], + "field": "Moon", + "local_formula": "PVR/PyJHora worked-example calibrated 8-contributor BAV tables; SAV excludes Lagna row", + "local_value": [ + 4, + 4, + 4, + 3, + 6, + 5, + 3, + 3, + 4, + 5, + 3, + 5 + ], + "row_total_local": 49, + "row_total_xalen": 49, + "section": "ashtakavarga_bav", + "truth_status": "requires_external_worked_example_per_contributor", + "unit": "bindu_count", + "xalen_formula": "Xalen BPHS-labelled 8-contributor tables; returned SAV sums seven planetary rows", + "xalen_value": [ + 4, + 5, + 4, + 2, + 6, + 5, + 3, + 2, + 5, + 5, + 3, + 5 + ] + }, + { + "category": "contributor_table_variant", + "delta_by_sign": [ + 0, + 0, + 0, + 0, + 1, + 0, + -1, + 0, + 0, + 0, + 0, + 0 + ], + "field": "Jupiter", + "local_formula": "PVR/PyJHora worked-example calibrated 8-contributor BAV tables; SAV excludes Lagna row", + "local_value": [ + 7, + 5, + 3, + 3, + 4, + 7, + 4, + 5, + 4, + 6, + 5, + 3 + ], + "row_total_local": 56, + "row_total_xalen": 56, + "section": "ashtakavarga_bav", + "truth_status": "requires_external_worked_example_per_contributor", + "unit": "bindu_count", + "xalen_formula": "Xalen BPHS-labelled 8-contributor tables; returned SAV sums seven planetary rows", + "xalen_value": [ + 7, + 5, + 3, + 3, + 5, + 7, + 3, + 5, + 4, + 6, + 5, + 3 + ] + }, + { + "category": "contributor_table_variant", + "delta_by_sign": [ + 0, + 0, + 0, + -1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "field": "Venus", + "local_formula": "PVR/PyJHora worked-example calibrated 8-contributor BAV tables; SAV excludes Lagna row", + "local_value": [ + 4, + 3, + 5, + 4, + 3, + 5, + 4, + 3, + 5, + 5, + 5, + 6 + ], + "row_total_local": 52, + "row_total_xalen": 52, + "section": "ashtakavarga_bav", + "truth_status": "requires_external_worked_example_per_contributor", + "unit": "bindu_count", + "xalen_formula": "Xalen BPHS-labelled 8-contributor tables; returned SAV sums seven planetary rows", + "xalen_value": [ + 4, + 3, + 5, + 3, + 4, + 5, + 4, + 3, + 5, + 5, + 5, + 6 + ] + }, + { + "category": "contributor_table_variant", + "delta_by_sign": [ + 0, + 1, + 0, + -2, + 2, + 0, + -1, + -1, + 1, + 0, + 0, + 0 + ], + "field": "12_sign_scores", + "local_formula": "PVR/PyJHora worked-example calibrated 8-contributor BAV tables; SAV excludes Lagna row", + "local_value": [ + 28, + 36, + 28, + 21, + 29, + 24, + 31, + 33, + 26, + 35, + 22, + 24 + ], + "row_total_local": 337, + "row_total_xalen": 337, + "section": "ashtakavarga_sav", + "truth_status": "requires_external_worked_example_per_contributor", + "unit": "bindu_count", + "xalen_formula": "Xalen BPHS-labelled 8-contributor tables; returned SAV sums seven planetary rows", + "xalen_value": [ + 28, + 37, + 28, + 19, + 31, + 24, + 30, + 32, + 27, + 35, + 22, + 24 + ] + }, + { + "category": "derived_total_from_five_component_variants", + "field": "Sun", + "local_formula": "sum of six displayed components", + "local_value": 480.62, + "section": "shadbala_total", + "truth_status": "defer_until_components_arbitrated", + "unit": "Virupa", + "xalen_formula": "sum of six displayed components", + "xalen_value": 492.6728169709661 + }, + { + "category": "formula_variant", + "field": "Sun.sthana", + "local_formula": "precise sapta-varga dignity with compound temporary relationships and moolatrikona", + "local_value": 217.09, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "Xalen sapta-varga dignity using fixed unit friendship scores", + "xalen_value": 235.83916197045576 + }, + { + "category": "solar_context_variant", + "field": "Sun.kala", + "local_formula": "actual local sunrise/sunset, declination and ahargana Varsha/Maasa/Vaara/Hora", + "local_value": 140.98, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "clock day_fraction with nominal 06:00 sunrise plus JD-derived lords", + "xalen_value": 133.08365500051036 + }, + { + "category": "geometry_variant", + "field": "Sun.dig", + "local_formula": "longitude distance from exact powerless bhava midpoint / 3", + "local_value": 24.81, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "house-number distance from strongest house, linearly scaled", + "xalen_value": 30.0 + }, + { + "category": "motion_model_variant", + "field": "Sun.chesta", + "local_formula": "bounded BPHS/Surya mean-motion Seeghrochcha implementation", + "local_value": 36.0, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "speed bands: retrograde=60, stationary=30, direct=15; Sun/Moon=30", + "xalen_value": 30.0 + }, + { + "category": "aspect_interpolation_variant", + "field": "Sun.drik", + "local_formula": "continuous Sphuta Drishti curve, natural benefic/malefic, divided by 4", + "local_value": 1.74, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "house-bin graded Vedic aspects, natural benefic/malefic, divided by 4", + "xalen_value": 3.75 + }, + { + "category": "derived_total_from_five_component_variants", + "field": "Moon", + "local_formula": "sum of six displayed components", + "local_value": 584.26, + "section": "shadbala_total", + "truth_status": "defer_until_components_arbitrated", + "unit": "Virupa", + "xalen_formula": "sum of six displayed components", + "xalen_value": 420.9351853027684 + }, + { + "category": "formula_variant", + "field": "Moon.sthana", + "local_formula": "precise sapta-varga dignity with compound temporary relationships and moolatrikona", + "local_value": 246.34, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "Xalen sapta-varga dignity using fixed unit friendship scores", + "xalen_value": 193.83884030327874 + }, + { + "category": "solar_context_variant", + "field": "Moon.kala", + "local_formula": "actual local sunrise/sunset, declination and ahargana Varsha/Maasa/Vaara/Hora", + "local_value": 149.61, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "clock day_fraction with nominal 06:00 sunrise plus JD-derived lords", + "xalen_value": 106.91634499948964 + }, + { + "category": "geometry_variant", + "field": "Moon.dig", + "local_formula": "longitude distance from exact powerless bhava midpoint / 3", + "local_value": 95.48, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "house-number distance from strongest house, linearly scaled", + "xalen_value": 20.000000000000004 + }, + { + "category": "motion_model_variant", + "field": "Moon.chesta", + "local_formula": "bounded BPHS/Surya mean-motion Seeghrochcha implementation", + "local_value": 21.34, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "speed bands: retrograde=60, stationary=30, direct=15; Sun/Moon=30", + "xalen_value": 30.0 + }, + { + "category": "aspect_interpolation_variant", + "field": "Moon.drik", + "local_formula": "continuous Sphuta Drishti curve, natural benefic/malefic, divided by 4", + "local_value": 20.06, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "house-bin graded Vedic aspects, natural benefic/malefic, divided by 4", + "xalen_value": 18.75 + }, + { + "category": "derived_total_from_five_component_variants", + "field": "Mars", + "local_formula": "sum of six displayed components", + "local_value": 456.19, + "section": "shadbala_total", + "truth_status": "defer_until_components_arbitrated", + "unit": "Virupa", + "xalen_formula": "sum of six displayed components", + "xalen_value": 396.35371415257947 + }, + { + "category": "formula_variant", + "field": "Mars.sthana", + "local_formula": "precise sapta-varga dignity with compound temporary relationships and moolatrikona", + "local_value": 198.63, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "Xalen sapta-varga dignity using fixed unit friendship scores", + "xalen_value": 213.63005915206912 + }, + { + "category": "solar_context_variant", + "field": "Mars.kala", + "local_formula": "actual local sunrise/sunset, declination and ahargana Varsha/Maasa/Vaara/Hora", + "local_value": 127.92, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "clock day_fraction with nominal 06:00 sunrise plus JD-derived lords", + "xalen_value": 85.58365500051036 + }, + { + "category": "geometry_variant", + "field": "Mars.dig", + "local_formula": "longitude distance from exact powerless bhava midpoint / 3", + "local_value": 77.41, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "house-number distance from strongest house, linearly scaled", + "xalen_value": 50.0 + }, + { + "category": "motion_model_variant", + "field": "Mars.chesta", + "local_formula": "bounded BPHS/Surya mean-motion Seeghrochcha implementation", + "local_value": 21.6, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "speed bands: retrograde=60, stationary=30, direct=15; Sun/Moon=30", + "xalen_value": 15.0 + }, + { + "category": "aspect_interpolation_variant", + "field": "Mars.drik", + "local_formula": "continuous Sphuta Drishti curve, natural benefic/malefic, divided by 4", + "local_value": 13.49, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "house-bin graded Vedic aspects, natural benefic/malefic, divided by 4", + "xalen_value": 15.0 + }, + { + "category": "derived_total_from_five_component_variants", + "field": "Mercury", + "local_formula": "sum of six displayed components", + "local_value": 365.28, + "section": "shadbala_total", + "truth_status": "defer_until_components_arbitrated", + "unit": "Virupa", + "xalen_formula": "sum of six displayed components", + "xalen_value": 315.58265411353744 + }, + { + "category": "formula_variant", + "field": "Mercury.sthana", + "local_formula": "precise sapta-varga dignity with compound temporary relationships and moolatrikona", + "local_value": 167.96, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "Xalen sapta-varga dignity using fixed unit friendship scores", + "xalen_value": 134.20630911404785 + }, + { + "category": "solar_context_variant", + "field": "Mercury.kala", + "local_formula": "actual local sunrise/sunset, declination and ahargana Varsha/Maasa/Vaara/Hora", + "local_value": 121.79, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "clock day_fraction with nominal 06:00 sunrise plus JD-derived lords", + "xalen_value": 85.66634499948964 + }, + { + "category": "geometry_variant", + "field": "Mercury.dig", + "local_formula": "longitude distance from exact powerless bhava midpoint / 3", + "local_value": 12.64, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "house-number distance from strongest house, linearly scaled", + "xalen_value": 9.999999999999998 + }, + { + "category": "motion_model_variant", + "field": "Mercury.chesta", + "local_formula": "bounded BPHS/Surya mean-motion Seeghrochcha implementation", + "local_value": 47.8, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "speed bands: retrograde=60, stationary=30, direct=15; Sun/Moon=30", + "xalen_value": 60.0 + }, + { + "category": "aspect_interpolation_variant", + "field": "Mercury.drik", + "local_formula": "continuous Sphuta Drishti curve, natural benefic/malefic, divided by 4", + "local_value": -10.62, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "house-bin graded Vedic aspects, natural benefic/malefic, divided by 4", + "xalen_value": 0.0 + }, + { + "category": "derived_total_from_five_component_variants", + "field": "Jupiter", + "local_formula": "sum of six displayed components", + "local_value": 569.4, + "section": "shadbala_total", + "truth_status": "defer_until_components_arbitrated", + "unit": "Virupa", + "xalen_formula": "sum of six displayed components", + "xalen_value": 436.1320902109636 + }, + { + "category": "formula_variant", + "field": "Jupiter.sthana", + "local_formula": "precise sapta-varga dignity with compound temporary relationships and moolatrikona", + "local_value": 201.81, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "Xalen sapta-varga dignity using fixed unit friendship scores", + "xalen_value": 211.17574521147395 + }, + { + "category": "solar_context_variant", + "field": "Jupiter.kala", + "local_formula": "actual local sunrise/sunset, declination and ahargana Varsha/Maasa/Vaara/Hora", + "local_value": 199.32, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "clock day_fraction with nominal 06:00 sunrise plus JD-derived lords", + "xalen_value": 94.41634499948964 + }, + { + "category": "geometry_variant", + "field": "Jupiter.dig", + "local_formula": "longitude distance from exact powerless bhava midpoint / 3", + "local_value": 80.59, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "house-number distance from strongest house, linearly scaled", + "xalen_value": 40.00000000000001 + }, + { + "category": "motion_model_variant", + "field": "Jupiter.chesta", + "local_formula": "bounded BPHS/Surya mean-motion Seeghrochcha implementation", + "local_value": 46.49, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "speed bands: retrograde=60, stationary=30, direct=15; Sun/Moon=30", + "xalen_value": 60.0 + }, + { + "category": "aspect_interpolation_variant", + "field": "Jupiter.drik", + "local_formula": "continuous Sphuta Drishti curve, natural benefic/malefic, divided by 4", + "local_value": 6.9, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "house-bin graded Vedic aspects, natural benefic/malefic, divided by 4", + "xalen_value": -3.75 + }, + { + "category": "derived_total_from_five_component_variants", + "field": "Venus", + "local_formula": "sum of six displayed components", + "local_value": 406.93, + "section": "shadbala_total", + "truth_status": "defer_until_components_arbitrated", + "unit": "Virupa", + "xalen_formula": "sum of six displayed components", + "xalen_value": 382.590087874206 + }, + { + "category": "formula_variant", + "field": "Venus.sthana", + "local_formula": "precise sapta-varga dignity with compound temporary relationships and moolatrikona", + "local_value": 154.06, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "Xalen sapta-varga dignity using fixed unit friendship scores", + "xalen_value": 165.31374287471633 + }, + { + "category": "solar_context_variant", + "field": "Venus.kala", + "local_formula": "actual local sunrise/sunset, declination and ahargana Varsha/Maasa/Vaara/Hora", + "local_value": 113.45, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "clock day_fraction with nominal 06:00 sunrise plus JD-derived lords", + "xalen_value": 109.41634499948964 + }, + { + "category": "geometry_variant", + "field": "Venus.dig", + "local_formula": "longitude distance from exact powerless bhava midpoint / 3", + "local_value": 69.95, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "house-number distance from strongest house, linearly scaled", + "xalen_value": 50.0 + }, + { + "category": "motion_model_variant", + "field": "Venus.chesta", + "local_formula": "bounded BPHS/Surya mean-motion Seeghrochcha implementation", + "local_value": 29.36, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "speed bands: retrograde=60, stationary=30, direct=15; Sun/Moon=30", + "xalen_value": 15.0 + }, + { + "category": "aspect_interpolation_variant", + "field": "Venus.drik", + "local_formula": "continuous Sphuta Drishti curve, natural benefic/malefic, divided by 4", + "local_value": -2.75, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "house-bin graded Vedic aspects, natural benefic/malefic, divided by 4", + "xalen_value": 0.0 + }, + { + "category": "derived_total_from_five_component_variants", + "field": "Saturn", + "local_formula": "sum of six displayed components", + "local_value": 430.05, + "section": "shadbala_total", + "truth_status": "defer_until_components_arbitrated", + "unit": "Virupa", + "xalen_formula": "sum of six displayed components", + "xalen_value": 355.2596415714923 + }, + { + "category": "formula_variant", + "field": "Saturn.sthana", + "local_formula": "precise sapta-varga dignity with compound temporary relationships and moolatrikona", + "local_value": 218.61, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "Xalen sapta-varga dignity using fixed unit friendship scores", + "xalen_value": 199.85598657098197 + }, + { + "category": "solar_context_variant", + "field": "Saturn.kala", + "local_formula": "actual local sunrise/sunset, declination and ahargana Varsha/Maasa/Vaara/Hora", + "local_value": 136.76, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "clock day_fraction with nominal 06:00 sunrise plus JD-derived lords", + "xalen_value": 85.58365500051036 + }, + { + "category": "geometry_variant", + "field": "Saturn.dig", + "local_formula": "longitude distance from exact powerless bhava midpoint / 3", + "local_value": 19.63, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "house-number distance from strongest house, linearly scaled", + "xalen_value": 20.000000000000004 + }, + { + "category": "motion_model_variant", + "field": "Saturn.chesta", + "local_formula": "bounded BPHS/Surya mean-motion Seeghrochcha implementation", + "local_value": 36.99, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "speed bands: retrograde=60, stationary=30, direct=15; Sun/Moon=30", + "xalen_value": 30.0 + }, + { + "category": "aspect_interpolation_variant", + "field": "Saturn.drik", + "local_formula": "continuous Sphuta Drishti curve, natural benefic/malefic, divided by 4", + "local_value": 9.49, + "section": "shadbala_components", + "truth_status": "method_variant_unresolved", + "unit": "Virupa", + "xalen_formula": "house-bin graded Vedic aspects, natural benefic/malefic, divided by 4", + "xalen_value": 11.25 + } + ], + "scope": "xalen_formula_unit_attribution", + "status": "classified_method_variants_not_truth" +} diff --git a/references/oracle/xalen_fourth_oracle_comparison_2026_07_17.json b/references/oracle/xalen_fourth_oracle_comparison_2026_07_17.json new file mode 100644 index 00000000..789f98cc --- /dev/null +++ b/references/oracle/xalen_fourth_oracle_comparison_2026_07_17.json @@ -0,0 +1,863 @@ +{ + "license": "Apache-2.0", + "match_count": 46, + "mismatch_count": 46, + "row_count": 92, + "rows": [ + { + "field": "Sun.sign", + "local_value": "Aquarius", + "section": "D1", + "status": "match", + "xalen_value": "Aquarius" + }, + { + "field": "Moon.sign", + "local_value": "Pisces", + "section": "D1", + "status": "match", + "xalen_value": "Pisces" + }, + { + "field": "Mars.sign", + "local_value": "Aries", + "section": "D1", + "status": "match", + "xalen_value": "Aries" + }, + { + "field": "Mercury.sign", + "local_value": "Capricorn", + "section": "D1", + "status": "match", + "xalen_value": "Capricorn" + }, + { + "field": "Jupiter.sign", + "local_value": "Gemini", + "section": "D1", + "status": "match", + "xalen_value": "Gemini" + }, + { + "field": "Venus.sign", + "local_value": "Sagittarius", + "section": "D1", + "status": "match", + "xalen_value": "Sagittarius" + }, + { + "field": "Saturn.sign", + "local_value": "Libra", + "section": "D1", + "status": "match", + "xalen_value": "Libra" + }, + { + "field": "Sun.sign", + "local_value": "Leo", + "section": "D2", + "status": "match", + "xalen_value": "Leo" + }, + { + "field": "Moon.sign", + "local_value": "Cancer", + "section": "D2", + "status": "match", + "xalen_value": "Cancer" + }, + { + "field": "Mars.sign", + "local_value": "Leo", + "section": "D2", + "status": "match", + "xalen_value": "Leo" + }, + { + "field": "Mercury.sign", + "local_value": "Leo", + "section": "D2", + "status": "match", + "xalen_value": "Leo" + }, + { + "field": "Jupiter.sign", + "local_value": "Cancer", + "section": "D2", + "status": "match", + "xalen_value": "Cancer" + }, + { + "field": "Venus.sign", + "local_value": "Cancer", + "section": "D2", + "status": "match", + "xalen_value": "Cancer" + }, + { + "field": "Saturn.sign", + "local_value": "Cancer", + "section": "D2", + "status": "match", + "xalen_value": "Cancer" + }, + { + "field": "Sun.sign", + "local_value": "Taurus", + "section": "D4", + "status": "match", + "xalen_value": "Taurus" + }, + { + "field": "Moon.sign", + "local_value": "Gemini", + "section": "D4", + "status": "match", + "xalen_value": "Gemini" + }, + { + "field": "Mars.sign", + "local_value": "Aries", + "section": "D4", + "status": "match", + "xalen_value": "Aries" + }, + { + "field": "Mercury.sign", + "local_value": "Cancer", + "section": "D4", + "status": "match", + "xalen_value": "Cancer" + }, + { + "field": "Jupiter.sign", + "local_value": "Pisces", + "section": "D4", + "status": "match", + "xalen_value": "Pisces" + }, + { + "field": "Venus.sign", + "local_value": "Virgo", + "section": "D4", + "status": "match", + "xalen_value": "Virgo" + }, + { + "field": "Saturn.sign", + "local_value": "Cancer", + "section": "D4", + "status": "match", + "xalen_value": "Cancer" + }, + { + "field": "Sun.sign", + "local_value": "Capricorn", + "section": "D9", + "status": "match", + "xalen_value": "Capricorn" + }, + { + "field": "Moon.sign", + "local_value": "Scorpio", + "section": "D9", + "status": "match", + "xalen_value": "Scorpio" + }, + { + "field": "Mars.sign", + "local_value": "Taurus", + "section": "D9", + "status": "match", + "xalen_value": "Taurus" + }, + { + "field": "Mercury.sign", + "local_value": "Cancer", + "section": "D9", + "status": "match", + "xalen_value": "Cancer" + }, + { + "field": "Jupiter.sign", + "local_value": "Gemini", + "section": "D9", + "status": "match", + "xalen_value": "Gemini" + }, + { + "field": "Venus.sign", + "local_value": "Sagittarius", + "section": "D9", + "status": "match", + "xalen_value": "Sagittarius" + }, + { + "field": "Saturn.sign", + "local_value": "Gemini", + "section": "D9", + "status": "match", + "xalen_value": "Gemini" + }, + { + "field": "Sun.sign", + "local_value": "Gemini", + "section": "D10", + "status": "match", + "xalen_value": "Gemini" + }, + { + "field": "Moon.sign", + "local_value": "Pisces", + "section": "D10", + "status": "match", + "xalen_value": "Pisces" + }, + { + "field": "Mars.sign", + "local_value": "Taurus", + "section": "D10", + "status": "match", + "xalen_value": "Taurus" + }, + { + "field": "Mercury.sign", + "local_value": "Aries", + "section": "D10", + "status": "match", + "xalen_value": "Aries" + }, + { + "field": "Jupiter.sign", + "local_value": "Pisces", + "section": "D10", + "status": "match", + "xalen_value": "Pisces" + }, + { + "field": "Venus.sign", + "local_value": "Virgo", + "section": "D10", + "status": "match", + "xalen_value": "Virgo" + }, + { + "field": "Saturn.sign", + "local_value": "Cancer", + "section": "D10", + "status": "match", + "xalen_value": "Cancer" + }, + { + "field": "Sun", + "local_value": [ + 3, + 7, + 4, + 3, + 3, + 2, + 6, + 7, + 4, + 4, + 3, + 2 + ], + "section": "ashtakavarga_bav", + "status": "match", + "xalen_value": [ + 3, + 7, + 4, + 3, + 3, + 2, + 6, + 7, + 4, + 4, + 3, + 2 + ] + }, + { + "field": "Moon", + "local_value": [ + 4, + 4, + 4, + 3, + 6, + 5, + 3, + 3, + 4, + 5, + 3, + 5 + ], + "section": "ashtakavarga_bav", + "status": "mismatch", + "xalen_value": [ + 4, + 5, + 4, + 2, + 6, + 5, + 3, + 2, + 5, + 5, + 3, + 5 + ] + }, + { + "field": "Mars", + "local_value": [ + 4, + 7, + 4, + 4, + 3, + 0, + 4, + 5, + 1, + 4, + 1, + 2 + ], + "section": "ashtakavarga_bav", + "status": "match", + "xalen_value": [ + 4, + 7, + 4, + 4, + 3, + 0, + 4, + 5, + 1, + 4, + 1, + 2 + ] + }, + { + "field": "Mercury", + "local_value": [ + 5, + 5, + 5, + 4, + 4, + 2, + 6, + 5, + 5, + 8, + 2, + 3 + ], + "section": "ashtakavarga_bav", + "status": "match", + "xalen_value": [ + 5, + 5, + 5, + 4, + 4, + 2, + 6, + 5, + 5, + 8, + 2, + 3 + ] + }, + { + "field": "Jupiter", + "local_value": [ + 7, + 5, + 3, + 3, + 4, + 7, + 4, + 5, + 4, + 6, + 5, + 3 + ], + "section": "ashtakavarga_bav", + "status": "mismatch", + "xalen_value": [ + 7, + 5, + 3, + 3, + 5, + 7, + 3, + 5, + 4, + 6, + 5, + 3 + ] + }, + { + "field": "Venus", + "local_value": [ + 4, + 3, + 5, + 4, + 3, + 5, + 4, + 3, + 5, + 5, + 5, + 6 + ], + "section": "ashtakavarga_bav", + "status": "mismatch", + "xalen_value": [ + 4, + 3, + 5, + 3, + 4, + 5, + 4, + 3, + 5, + 5, + 5, + 6 + ] + }, + { + "field": "Saturn", + "local_value": [ + 1, + 5, + 3, + 0, + 6, + 3, + 4, + 5, + 3, + 3, + 3, + 3 + ], + "section": "ashtakavarga_bav", + "status": "match", + "xalen_value": [ + 1, + 5, + 3, + 0, + 6, + 3, + 4, + 5, + 3, + 3, + 3, + 3 + ] + }, + { + "field": "12_sign_scores", + "local_value": [ + 28, + 36, + 28, + 21, + 29, + 24, + 31, + 33, + 26, + 35, + 22, + 24 + ], + "section": "ashtakavarga_sav", + "status": "mismatch", + "xalen_value": [ + 28, + 37, + 28, + 19, + 31, + 24, + 30, + 32, + 27, + 35, + 22, + 24 + ] + }, + { + "field": "Sun", + "local_value": 480.62, + "section": "shadbala_total", + "status": "mismatch", + "xalen_value": 492.6728169709661 + }, + { + "field": "Sun.sthana", + "local_value": 217.09, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 235.83916197045576 + }, + { + "field": "Sun.kala", + "local_value": 140.98, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 133.08365500051036 + }, + { + "field": "Sun.dig", + "local_value": 24.81, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 30.0 + }, + { + "field": "Sun.chesta", + "local_value": 36.0, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 30.0 + }, + { + "field": "Sun.naisargika", + "local_value": 60.0, + "section": "shadbala_components", + "status": "match", + "xalen_value": 60.0 + }, + { + "field": "Sun.drik", + "local_value": 1.74, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 3.75 + }, + { + "field": "Moon", + "local_value": 584.26, + "section": "shadbala_total", + "status": "mismatch", + "xalen_value": 420.9351853027684 + }, + { + "field": "Moon.sthana", + "local_value": 246.34, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 193.83884030327874 + }, + { + "field": "Moon.kala", + "local_value": 149.61, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 106.91634499948964 + }, + { + "field": "Moon.dig", + "local_value": 95.48, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 20.000000000000004 + }, + { + "field": "Moon.chesta", + "local_value": 21.34, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 30.0 + }, + { + "field": "Moon.naisargika", + "local_value": 51.43, + "section": "shadbala_components", + "status": "match", + "xalen_value": 51.43 + }, + { + "field": "Moon.drik", + "local_value": 20.06, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 18.75 + }, + { + "field": "Mars", + "local_value": 456.19, + "section": "shadbala_total", + "status": "mismatch", + "xalen_value": 396.35371415257947 + }, + { + "field": "Mars.sthana", + "local_value": 198.63, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 213.63005915206912 + }, + { + "field": "Mars.kala", + "local_value": 127.92, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 85.58365500051036 + }, + { + "field": "Mars.dig", + "local_value": 77.41, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 50.0 + }, + { + "field": "Mars.chesta", + "local_value": 21.6, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 15.0 + }, + { + "field": "Mars.naisargika", + "local_value": 17.14, + "section": "shadbala_components", + "status": "match", + "xalen_value": 17.14 + }, + { + "field": "Mars.drik", + "local_value": 13.49, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 15.0 + }, + { + "field": "Mercury", + "local_value": 365.28, + "section": "shadbala_total", + "status": "mismatch", + "xalen_value": 315.58265411353744 + }, + { + "field": "Mercury.sthana", + "local_value": 167.96, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 134.20630911404785 + }, + { + "field": "Mercury.kala", + "local_value": 121.79, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 85.66634499948964 + }, + { + "field": "Mercury.dig", + "local_value": 12.64, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 9.999999999999998 + }, + { + "field": "Mercury.chesta", + "local_value": 47.8, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 60.0 + }, + { + "field": "Mercury.naisargika", + "local_value": 25.71, + "section": "shadbala_components", + "status": "match", + "xalen_value": 25.71 + }, + { + "field": "Mercury.drik", + "local_value": -10.62, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 0.0 + }, + { + "field": "Jupiter", + "local_value": 569.4, + "section": "shadbala_total", + "status": "mismatch", + "xalen_value": 436.1320902109636 + }, + { + "field": "Jupiter.sthana", + "local_value": 201.81, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 211.17574521147395 + }, + { + "field": "Jupiter.kala", + "local_value": 199.32, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 94.41634499948964 + }, + { + "field": "Jupiter.dig", + "local_value": 80.59, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 40.00000000000001 + }, + { + "field": "Jupiter.chesta", + "local_value": 46.49, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 60.0 + }, + { + "field": "Jupiter.naisargika", + "local_value": 34.29, + "section": "shadbala_components", + "status": "match", + "xalen_value": 34.29 + }, + { + "field": "Jupiter.drik", + "local_value": 6.9, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": -3.75 + }, + { + "field": "Venus", + "local_value": 406.93, + "section": "shadbala_total", + "status": "mismatch", + "xalen_value": 382.590087874206 + }, + { + "field": "Venus.sthana", + "local_value": 154.06, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 165.31374287471633 + }, + { + "field": "Venus.kala", + "local_value": 113.45, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 109.41634499948964 + }, + { + "field": "Venus.dig", + "local_value": 69.95, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 50.0 + }, + { + "field": "Venus.chesta", + "local_value": 29.36, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 15.0 + }, + { + "field": "Venus.naisargika", + "local_value": 42.86, + "section": "shadbala_components", + "status": "match", + "xalen_value": 42.86 + }, + { + "field": "Venus.drik", + "local_value": -2.75, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 0.0 + }, + { + "field": "Saturn", + "local_value": 430.05, + "section": "shadbala_total", + "status": "mismatch", + "xalen_value": 355.2596415714923 + }, + { + "field": "Saturn.sthana", + "local_value": 218.61, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 199.85598657098197 + }, + { + "field": "Saturn.kala", + "local_value": 136.76, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 85.58365500051036 + }, + { + "field": "Saturn.dig", + "local_value": 19.63, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 20.000000000000004 + }, + { + "field": "Saturn.chesta", + "local_value": 36.99, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 30.0 + }, + { + "field": "Saturn.naisargika", + "local_value": 8.57, + "section": "shadbala_components", + "status": "match", + "xalen_value": 8.57 + }, + { + "field": "Saturn.drik", + "local_value": 9.49, + "section": "shadbala_components", + "status": "mismatch", + "xalen_value": 11.25 + } + ], + "scope": "xalen_fourth_oracle_comparison", + "source_commit": "cc6edbec1f748ebdc4950ae6198f575c5ada73fa", + "truth_policy": "fourth_observation_not_truth" +} diff --git a/references/oracle/xalen_steve_jobs_input_2026_07_17.json b/references/oracle/xalen_steve_jobs_input_2026_07_17.json new file mode 100644 index 00000000..92dca60c --- /dev/null +++ b/references/oracle/xalen_steve_jobs_input_2026_07_17.json @@ -0,0 +1,20 @@ +{ + "case_id": "steve_jobs_public_1955_lahiri_mean_node", + "jd": 2435163.635417, + "day_fraction": 0.8020833333333334, + "asc_sign_idx": 4, + "planets": [ + {"name": "Sun", "longitude": 312.51748591136726, "speed": 1.006069, "house": 7}, + {"name": "Moon", "longitude": 344.5165209098362, "speed": 14.175536, "house": 8}, + {"name": "Mars", "longitude": 5.8598225437926565, "speed": 0.701796, "house": 9}, + {"name": "Mercury", "longitude": 291.13107265785646, "speed": -0.032977, "house": 6}, + {"name": "Jupiter", "longitude": 87.27723563442187, "speed": -0.06307, "house": 11}, + {"name": "Venus", "longitude": 267.941228624149, "speed": 1.136674, "house": 5}, + {"name": "Saturn", "longitude": 207.93204028705406, "speed": 0.007061, "house": 3} + ], + "settings": { + "ayanamsa": "lahiri", + "node_mode": "mean", + "source": "local native chart raw; Xalen receives positions rather than recomputing ephemeris" + } +} diff --git a/references/real_case_calibration/day_level_holdout_v3_preregistration.json b/references/real_case_calibration/day_level_holdout_v3_preregistration.json new file mode 100644 index 00000000..ed925222 --- /dev/null +++ b/references/real_case_calibration/day_level_holdout_v3_preregistration.json @@ -0,0 +1,27 @@ +{ + "benchmark_id": "day_level_timing_holdout_v3", + "status": "awaiting_independent_labels", + "frozen_rule_version": "v3_preregistered_not_tuned", + "truth_policy": "independent_source_and_adjudicator_required", + "prohibited_tuning_data": [ + "docs/benchmark/public_real_case_negative_controls_holdout_v2_4controls_20260717.json", + "docs/benchmark/public_real_case_negative_control_pilot_2026_07_11.json" + ], + "day_sensitive_features": [ + "distance_to_exact_vimshottari_boundary", + "distance_to_exact_narayana_boundary", + "daily_moon_house_and_nakshatra_trigger", + "exact_transit_aspect_or_ingress", + "solar_or_lunar_return_trigger", + "domain_varga_lord_daily_transit_contact", + "functional_benefic_malefic_trigger_direction" + ], + "frozen_gate": { + "minimum_positive_top_3_rate": 0.6, + "minimum_specificity": 0.6, + "minimum_independent_cases": 20, + "minimum_independent_negative_intervals": 80 + }, + "annotations": [], + "boundary": "No day-level calibration claim until independently sourced annotations satisfy the frozen gate." +} diff --git a/scripts/archive_vedastro_nuget_probe.py b/scripts/archive_vedastro_nuget_probe.py new file mode 100644 index 00000000..0f4b0c85 --- /dev/null +++ b/scripts/archive_vedastro_nuget_probe.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python3 +"""Merge pinned NuGet metadata with the container runtime reflection probe.""" + +from __future__ import annotations + +import argparse, json +from pathlib import Path + +def build_archive(candidate: Path, runtime: Path) -> dict: + metadata=json.loads(candidate.read_text(encoding="utf-8")); probe=json.loads(runtime.read_text(encoding="utf-8")) + return {**metadata,"assembly_version":probe["version"],"assembly_informational_version":probe["informational_version"],"public_methods":probe["methods"],"public_method_contracts":probe["method_contracts"],"runtime_image_id":"sha256:ea4f5eec20952a885a89566fc35cf3295b3228375b715a0f1af9e5a3c0c2eebf","runtime_image_digest":"sha256:d32bd65cf5843f413e81f5d917057c82da99737cb1637e905a1a4bc2e7ec6c8d"} + +def main()->int: + p=argparse.ArgumentParser(description=__doc__);p.add_argument("runtime",type=Path);p.add_argument("--candidate",type=Path,default=Path("references/oracle/vedastro_nuget_candidate_1_2_0.json"));p.add_argument("--output",type=Path,required=True);a=p.parse_args();r=build_archive(a.candidate,a.runtime);a.output.parent.mkdir(parents=True,exist_ok=True);a.output.write_text(json.dumps(r,ensure_ascii=False,indent=2,sort_keys=True)+"\n",encoding="utf-8");print(json.dumps({"status":r["status"],"method_count":len(r["public_methods"])},sort_keys=True));return 0 +if __name__=="__main__":raise SystemExit(main()) diff --git a/scripts/day_level_holdout_validator.py b/scripts/day_level_holdout_validator.py new file mode 100644 index 00000000..9754e9be --- /dev/null +++ b/scripts/day_level_holdout_validator.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 +"""Validate independently labeled day-level timing holdout annotations.""" + +from __future__ import annotations + +import argparse, json +from pathlib import Path + +REQUIRED={"case_id","domain","label","start","end","source_url","adjudicator","time_uncertainty_days"} + +def validate(path: Path) -> dict: + data=json.loads(path.read_text(encoding="utf-8")); rows=data.get("annotations") or []; errors=[] + for i,row in enumerate(rows): + for key in sorted(REQUIRED-set(row)): errors.append({"row":i,"field":key,"error":"missing"}) + if row.get("label") not in {"target_event","no_target_event"}: errors.append({"row":i,"field":"label","error":"invalid"}) + if not str(row.get("source_url") or "").startswith(("https://","http://")): errors.append({"row":i,"field":"source_url","error":"not_public_url"}) + positives=sum(r.get("label")=="target_event" for r in rows); negatives=sum(r.get("label")=="no_target_event" for r in rows) + gate=data.get("frozen_gate") or {}; ready=not errors and positives>=gate.get("minimum_independent_cases",20) and negatives>=gate.get("minimum_independent_negative_intervals",80) + return {"scope":"day_level_holdout_validation","annotation_count":len(rows),"positive_count":positives,"negative_count":negatives,"errors":errors,"status":"ready_for_blind_replay" if ready else "awaiting_independent_labels","production_tuning_allowed":False} + +def main()->int: + p=argparse.ArgumentParser(description=__doc__);p.add_argument("manifest",type=Path);a=p.parse_args();r=validate(a.manifest);print(json.dumps(r,ensure_ascii=False,indent=2,sort_keys=True));return 0 +if __name__=="__main__":raise SystemExit(main()) diff --git a/scripts/jyotish_api_server.py b/scripts/jyotish_api_server.py index 4ecb3d30..8a5b6393 100644 --- a/scripts/jyotish_api_server.py +++ b/scripts/jyotish_api_server.py @@ -451,6 +451,8 @@ def execute_consultation_workflow( surface: str = 'api_web', chart_override: dict | None = None, ) -> dict: + from scripts.timing_precision_contract import build_timing_precision_contract + birth_payload = handler._high_rigor_birth_payload(body) themes = handler._high_rigor_requested_themes(body) events = handler._high_rigor_events(body) @@ -524,6 +526,7 @@ def execute_consultation_workflow( if body.get('require_external_parity') and external_parity_gate.get('status') != 'pass': result['success'] = False result['blocked_reason'] = 'external_parity_not_passed' + result['timing_precision_contract'] = build_timing_precision_contract(body.get('timing')) return result chart = dict(chart_override) if isinstance(chart_override, dict) else {} @@ -711,6 +714,7 @@ def execute_consultation_workflow( result['blocked_reason'] = 'external_parity_not_passed' if body.get('return_high_rigor_shape'): result['endpoint'] = 'high_rigor_workflow' + result['timing_precision_contract'] = build_timing_precision_contract(body.get('timing')) return result diff --git a/scripts/jyotish_engine.py b/scripts/jyotish_engine.py index 088fbb76..319a6cec 100644 --- a/scripts/jyotish_engine.py +++ b/scripts/jyotish_engine.py @@ -6300,6 +6300,9 @@ def main(): output_json(result) sys.exit(0 if result.get('valid', True) else 1) result = cmds[args.command](args) + if args.command in {'predict', 'full-reading'} and isinstance(result, dict): + from timing_precision_contract import build_timing_precision_contract + result['timing_precision_contract'] = build_timing_precision_contract(result.get('timing')) if getattr(args, 'table', False): output_table(args.command, result) else: diff --git a/scripts/three_engine_mismatch_arbitrator.py b/scripts/three_engine_mismatch_arbitrator.py new file mode 100644 index 00000000..cdace7d1 --- /dev/null +++ b/scripts/three_engine_mismatch_arbitrator.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python3 +"""Classify parity mismatches by evidence shape without choosing truth by vote.""" + +from __future__ import annotations + +import argparse +import json +from collections import Counter +from pathlib import Path +from typing import Any + + +VARGA_SECTIONS = {"D2", "D4", "D9", "D10"} + + +def _category(section: str, differing: list[str]) -> tuple[str, str]: + if section in VARGA_SECTIONS and differing == ["VedAstro"]: + return ( + "endpoint_or_varga_semantics", + "Confirm VedAstro endpoint returns the requested varga under the same ayanamsa/node/method contract.", + ) + if section.startswith("ashtakavarga"): + return ( + "ashtakavarga_table_or_contributor_variant", + "Compare contributor tables, Lagna inclusion, shodhana state, and BAV/SAV row semantics.", + ) + if section == "shadbala_components": + return ( + "shadbala_formula_variant", + "Compare component formula, units, local solar context, aspect model, and Chesta lineage before totals.", + ) + if section == "shadbala_total": + return ( + "derived_total_from_component_variants", + "Do not arbitrate totals until all six component variants and Virupa/Rupa units are aligned.", + ) + if differing == ["VedAstro"]: + return ( + "vedastro_deployment_or_method_drift", + "Replay against an identified VedAstro build and method; hosted anonymous output cannot decide truth.", + ) + return ( + "cross_engine_numeric_or_schema_difference", + "Normalize versions, schema paths, units, and formula variants; require an external worked example.", + ) + + +def arbitrate_manifest(path: str | Path) -> dict[str, Any]: + manifest_path = Path(path) + manifest = json.loads(manifest_path.read_text(encoding="utf-8")) + rows: list[dict[str, Any]] = [] + categories: Counter[str] = Counter() + for source in manifest.get("comparison_rows") or []: + if source.get("status") != "mismatch": + continue + local = source.get("local_value") + differing = sorted( + engine for engine, value in (source.get("oracle_values") or {}).items() if value != local + ) + category, closure = _category(str(source.get("section")), differing) + categories[category] += 1 + rows.append({ + "section": source.get("section"), + "field": source.get("field"), + "local_value": local, + "oracle_values": source.get("oracle_values"), + "differing_engines": differing, + "category": category, + "closure_requirement": closure, + "truth_status": "unresolved", + }) + return { + "scope": "three_engine_field_level_mismatch_arbitration", + "manifest_path": str(manifest_path), + "truth_policy": "no_majority_vote", + "mismatch_count": len(rows), + "classified_count": sum(categories.values()), + "unclassified_count": len(rows) - sum(categories.values()), + "category_counts": dict(sorted(categories.items())), + "rows": rows, + "status": "classified_unresolved" if rows else "no_mismatches", + } + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("manifest", nargs="?", default="references/oracle/three_engine_parity_replay_manifest.json") + parser.add_argument("--output", type=Path) + args = parser.parse_args() + report = arbitrate_manifest(args.manifest) + text = json.dumps(report, ensure_ascii=False, indent=2, sort_keys=True) + "\n" + if args.output: + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text(text, encoding="utf-8") + print(text, end="") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/timing_precision_contract.py b/scripts/timing_precision_contract.py new file mode 100644 index 00000000..5140d6d0 --- /dev/null +++ b/scripts/timing_precision_contract.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 +"""Honest three-layer timing contract for uncalibrated day/month rankings.""" + +from __future__ import annotations + +from typing import Any + + +def build_timing_precision_contract(payload: dict[str, Any] | None = None) -> dict[str, Any]: + source = payload if isinstance(payload, dict) else {} + candidates = source.get("candidate_windows") if isinstance(source.get("candidate_windows"), list) else [] + triggers = source.get("exact_triggers") if isinstance(source.get("exact_triggers"), list) else [] + verified_window = source.get("verified_window") or source.get("broad_window") + return { + "timing_precision": "candidate_day_window" if candidates else "broad_window_only", + "claim_status": "exploratory_unvalidated", + "verified_window": verified_window, + "candidate_windows": candidates, + "exact_triggers": triggers, + "promotion_gate": { + "status": "blocked", + "required": "new_independently_labeled_day_level_holdout", + "current_negative_controls_reusable_for_tuning": False, + }, + "boundary": "候选日期未通过独立日级 holdout 验证,不能作为确定事件承诺;精确时间仅表示技术触发点。", + } diff --git a/scripts/xalen_difference_attribution.py b/scripts/xalen_difference_attribution.py new file mode 100644 index 00000000..f5b7fa9d --- /dev/null +++ b/scripts/xalen_difference_attribution.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 +"""Attribute Xalen Shadbala and Ashtakavarga differences by formula and unit.""" + +from __future__ import annotations +import argparse,json +from collections import Counter +from pathlib import Path + +FORMULAS={ +"sthana":("precise sapta-varga dignity with compound temporary relationships and moolatrikona","Xalen sapta-varga dignity using fixed unit friendship scores","formula_variant","Virupa"), +"dig":("longitude distance from exact powerless bhava midpoint / 3","house-number distance from strongest house, linearly scaled","geometry_variant","Virupa"), +"kala":("actual local sunrise/sunset, declination and ahargana Varsha/Maasa/Vaara/Hora","clock day_fraction with nominal 06:00 sunrise plus JD-derived lords","solar_context_variant","Virupa"), +"chesta":("bounded BPHS/Surya mean-motion Seeghrochcha implementation","speed bands: retrograde=60, stationary=30, direct=15; Sun/Moon=30","motion_model_variant","Virupa"), +"drik":("continuous Sphuta Drishti curve, natural benefic/malefic, divided by 4","house-bin graded Vedic aspects, natural benefic/malefic, divided by 4","aspect_interpolation_variant","Virupa"), +} + +def build_report(path:Path)->dict: + d=json.loads(path.read_text(encoding="utf-8")); rows=[]; counts=Counter() + for r in d["rows"]: + if r["status"]!="mismatch" or r["section"] not in {"shadbala_components","shadbala_total","ashtakavarga_bav","ashtakavarga_sav"}:continue + item={"section":r["section"],"field":r["field"],"local_value":r["local_value"],"xalen_value":r["xalen_value"]} + if r["section"]=="shadbala_components": + component=r["field"].split(".",1)[1]; local,xalen,category,unit=FORMULAS[component];item.update(category=category,unit=unit,local_formula=local,xalen_formula=xalen,truth_status="method_variant_unresolved") + elif r["section"]=="shadbala_total": item.update(category="derived_total_from_five_component_variants",unit="Virupa",local_formula="sum of six displayed components",xalen_formula="sum of six displayed components",truth_status="defer_until_components_arbitrated") + else: + lv,xv=r["local_value"],r["xalen_value"]; delta=[b-a for a,b in zip(lv,xv)];item.update(category="contributor_table_variant",unit="bindu_count",delta_by_sign=delta,local_formula="PVR/PyJHora worked-example calibrated 8-contributor BAV tables; SAV excludes Lagna row",xalen_formula="Xalen BPHS-labelled 8-contributor tables; returned SAV sums seven planetary rows",row_total_local=sum(lv),row_total_xalen=sum(xv),truth_status="requires_external_worked_example_per_contributor") + counts[item["category"]]+=1;rows.append(item) + return {"scope":"xalen_formula_unit_attribution","row_count":len(rows),"classified_count":sum(counts.values()),"category_counts":dict(sorted(counts.items())),"rows":rows,"status":"classified_method_variants_not_truth"} + +def main()->int: + p=argparse.ArgumentParser(description=__doc__);p.add_argument("comparison",type=Path,nargs="?",default=Path("references/oracle/xalen_fourth_oracle_comparison_2026_07_17.json"));p.add_argument("--output",type=Path);a=p.parse_args();r=build_report(a.comparison);text=json.dumps(r,ensure_ascii=False,indent=2,sort_keys=True)+"\n"; + if a.output:a.output.parent.mkdir(parents=True,exist_ok=True);a.output.write_text(text,encoding="utf-8") + print(text,end="");return 0 +if __name__=="__main__":raise SystemExit(main()) diff --git a/scripts/xalen_ephemeris_mode_comparison.py b/scripts/xalen_ephemeris_mode_comparison.py new file mode 100644 index 00000000..4949e1c0 --- /dev/null +++ b/scripts/xalen_ephemeris_mode_comparison.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python3 +"""Compare Xalen shared-input and independent VSOP87 ephemeris modes.""" +from __future__ import annotations +import argparse,json +from pathlib import Path + +def compare(shared_path:Path,independent_path:Path)->dict: + s=json.loads(shared_path.read_text(encoding='utf-8'))['raw'];i=json.loads(independent_path.read_text(encoding='utf-8'))['raw'];positions={} + for name,a in s['effective_positions'].items(): + b=i['effective_positions'][name];delta=(b['longitude']-a['longitude']+180)%360-180;positions[name]={'shared_longitude':a['longitude'],'independent_longitude':b['longitude'],'longitude_delta_deg':delta,'speed_delta_deg_per_day':b['speed']-a['speed']} + varga_diffs=sum(s['varga'][d][p]!=i['varga'][d][p] for d in s['varga'] for p in s['varga'][d]);av_diffs=sum(s['ashtakavarga']['bav'][p]!=i['ashtakavarga']['bav'][p] for p in s['ashtakavarga']['bav'])+(s['ashtakavarga']['sav']!=i['ashtakavarga']['sav']);shad={p:i['shadbala'][p]['total']-s['shadbala'][p]['total'] for p in s['shadbala']} + return {'scope':'xalen_ephemeris_mode_comparison','shared_mode':s['ephemeris_mode'],'independent_mode':i['ephemeris_mode'],'independent_engine':'Xalen Almanac.default_vedic VSOP87 analytical + Xalen Lahiri','positions':positions,'maximum_absolute_longitude_delta_deg':max(abs(v['longitude_delta_deg']) for v in positions.values()),'varga_difference_count':varga_diffs,'ashtakavarga_difference_count':av_diffs,'shadbala_total_delta_virupas':shad,'boundary':'Independent mode recomputes seven planetary longitudes/speeds; house numbers remain shared input.'} + +def main()->int: + p=argparse.ArgumentParser(description=__doc__);p.add_argument('--shared',type=Path,default=Path('references/oracle/artifacts/xalen_steve_jobs_high_rigor_raw.json'));p.add_argument('--independent',type=Path,default=Path('references/oracle/artifacts/xalen_steve_jobs_independent_ephemeris_raw.json'));p.add_argument('--output',type=Path,required=True);a=p.parse_args();r=compare(a.shared,a.independent);a.output.parent.mkdir(parents=True,exist_ok=True);a.output.write_text(json.dumps(r,ensure_ascii=False,indent=2,sort_keys=True)+'\n',encoding='utf-8');print(json.dumps({'max_delta':r['maximum_absolute_longitude_delta_deg'],'varga_diffs':r['varga_difference_count']},sort_keys=True));return 0 +if __name__=='__main__':raise SystemExit(main()) diff --git a/scripts/xalen_oracle_adapter.py b/scripts/xalen_oracle_adapter.py new file mode 100644 index 00000000..2142f540 --- /dev/null +++ b/scripts/xalen_oracle_adapter.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python3 +"""Run the pinned Apache-2.0 Xalen oracle probe and preserve raw JSON.""" + +from __future__ import annotations + +import argparse +import json +import subprocess +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +MANIFEST = ROOT / "benchmarks/xalen_oracle/Cargo.toml" +COMMIT = "cc6edbec1f748ebdc4950ae6198f575c5ada73fa" + + +def run_probe(payload: dict) -> dict: + completed = subprocess.run( + ["cargo", "run", "--quiet", "--locked", "--manifest-path", str(MANIFEST)], + input=json.dumps(payload), text=True, capture_output=True, timeout=300, check=False, + ) + if completed.returncode != 0: + raise RuntimeError(completed.stderr.strip() or "xalen probe failed") + raw = json.loads(completed.stdout) + return { + "status": "raw_verified", + "engine": "xalen-ephemeris", + "source_commit": COMMIT, + "license": "Apache-2.0", + "raw": raw, + "boundary": "Fourth observation only; no majority-vote truth promotion.", + } + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("input", type=Path) + parser.add_argument("--mode", choices=["shared_input", "independent_ephemeris"], default="shared_input") + parser.add_argument("--output", type=Path) + args = parser.parse_args() + payload = json.loads(args.input.read_text(encoding="utf-8")) + payload["mode"] = args.mode + report = run_probe(payload) + text = json.dumps(report, ensure_ascii=False, indent=2, sort_keys=True) + "\n" + if args.output: + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text(text, encoding="utf-8") + print(text, end="") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/xalen_oracle_comparison.py b/scripts/xalen_oracle_comparison.py new file mode 100644 index 00000000..8970e265 --- /dev/null +++ b/scripts/xalen_oracle_comparison.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 +"""Add pinned Xalen observations to the existing field-level parity rows.""" + +from __future__ import annotations + +import argparse +import json +from collections import Counter +from pathlib import Path + +RASHI = {"Mesha":"Aries","Vrishabha":"Taurus","Mithuna":"Gemini","Karka":"Cancer","Simha":"Leo","Kanya":"Virgo","Tula":"Libra","Vrishchika":"Scorpio","Dhanu":"Sagittarius","Makara":"Capricorn","Kumbha":"Aquarius","Meena":"Pisces"} +COMPONENT = {"sthana":"sthana", "kala":"kala", "dig":"dig", "chesta":"chesta", "naisargika":"naisargika", "drik":"drik"} + + +def _xalen_value(row: dict, raw: dict): + section, field = row["section"], row["field"] + if section in {"D1", "D2", "D4", "D9", "D10"}: + planet = field.split(".", 1)[0] + return RASHI[raw["varga"][section][planet]] + if section == "ashtakavarga_bav": + return raw["ashtakavarga"]["bav"][field] + if section == "ashtakavarga_sav": + return raw["ashtakavarga"]["sav"] + if section == "shadbala_components": + planet, component = field.split(".", 1) + return raw["shadbala"][planet][COMPONENT[component]] + if section == "shadbala_total": + return raw["shadbala"][field]["total"] + return None + + +def compare(manifest_path: Path, xalen_path: Path) -> dict: + manifest = json.loads(manifest_path.read_text(encoding="utf-8")) + envelope = json.loads(xalen_path.read_text(encoding="utf-8")) + raw = envelope["raw"] + rows, counts = [], Counter() + for source in manifest["comparison_rows"]: + value = _xalen_value(source, raw) + if value is None: + continue + local = source["local_value"] + if isinstance(local, (int, float)) and isinstance(value, (int, float)): + matched = abs(float(local) - float(value)) <= 0.05 + else: + matched = local == value + status = "match" if matched else "mismatch" + counts[status] += 1 + rows.append({"section":source["section"],"field":source["field"],"local_value":local,"xalen_value":value,"status":status}) + return {"scope":"xalen_fourth_oracle_comparison","source_commit":envelope["source_commit"],"license":envelope["license"],"truth_policy":"fourth_observation_not_truth","row_count":len(rows),"match_count":counts["match"],"mismatch_count":counts["mismatch"],"rows":rows} + + +def main() -> int: + p=argparse.ArgumentParser(description=__doc__); p.add_argument("--manifest",type=Path,default=Path("references/oracle/three_engine_parity_replay_manifest.json")); p.add_argument("--xalen",type=Path,default=Path("references/oracle/artifacts/xalen_steve_jobs_high_rigor_raw.json")); p.add_argument("--output",type=Path); a=p.parse_args() + report=compare(a.manifest,a.xalen); text=json.dumps(report,ensure_ascii=False,indent=2,sort_keys=True)+"\n" + if a.output: a.output.parent.mkdir(parents=True,exist_ok=True); a.output.write_text(text,encoding="utf-8") + print(text,end=""); return 0 + + +if __name__ == "__main__": raise SystemExit(main()) diff --git a/scripts/xalen_public_case_batch.py b/scripts/xalen_public_case_batch.py new file mode 100644 index 00000000..cde96478 --- /dev/null +++ b/scripts/xalen_public_case_batch.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 +"""Replay pinned Xalen shared-input formulas across public AA birth cases.""" + +from __future__ import annotations +import argparse,hashlib,json,subprocess,sys +from pathlib import Path +from scripts.xalen_oracle_adapter import run_probe + +ROOT=Path(__file__).resolve().parents[1]; SIGNS=['Aries','Taurus','Gemini','Cancer','Leo','Virgo','Libra','Scorpio','Sagittarius','Capricorn','Aquarius','Pisces']; PLANETS=['Sun','Moon','Mars','Mercury','Jupiter','Venus','Saturn'] + +def chart_input(subject:dict)->dict: + cmd=[sys.executable,'scripts/jyotish_engine.py','chart'] + for key in ('year','month','day','hour','minute','lat','lon','tz'):cmd += [f'--{key}',str(subject[key])] + cmd += ['--ayanamsa','lahiri','--node-mode','mean'] + done=subprocess.run(cmd,cwd=ROOT,text=True,capture_output=True,timeout=60,check=False) + if done.returncode:raise RuntimeError(done.stderr) + chart=json.loads(done.stdout);birth=chart['birth_info'];planets=[] + for name in PLANETS: + p=chart['planets'][name];planets.append({'name':name,'longitude':p['lon'],'speed':p['speed'],'house':p['house']}) + return {'jd':birth['julian_day'],'day_fraction':(subject['hour']+subject['minute']/60)/24,'asc_sign_idx':SIGNS.index(chart['ascendant']['sign']),'planets':planets} + +def run_batch(manifests:list[Path],limit:int=5,mode:str='shared_input')->dict: + cases=[] + for path in manifests: + for case in json.loads(path.read_text(encoding='utf-8')).get('cases') or []: + subject=case['subject'];source=subject.get('birth_source') or {} + if source.get('time_accuracy_rating')!='AA' or any(c['case_id']==case['case_id'] for c in cases):continue + payload=chart_input(subject);payload['mode']=mode;probe=run_probe(payload);raw=probe['raw'];digest=hashlib.sha256(json.dumps(raw,sort_keys=True,separators=(',',':')).encode()).hexdigest() + cases.append({'case_id':case['case_id'],'name':subject['name'],'birth_source':source,'input_mode':mode,'input':payload,'xalen_raw':raw,'raw_sha256':digest}) + if len(cases)>=limit:break + if len(cases)>=limit:break + return {'scope':'xalen_multi_public_case_replay','mode':mode,'case_count':len(cases),'source_commit':'cc6edbec1f748ebdc4950ae6198f575c5ada73fa','license':'Apache-2.0','cases':cases,'boundary':'Shared mode isolates formulas; independent mode recomputes seven-planet ephemeris while retaining shared houses.'} + +def main()->int: + p=argparse.ArgumentParser(description=__doc__);p.add_argument('--limit',type=int,default=5);p.add_argument('--mode',choices=['shared_input','independent_ephemeris'],default='shared_input');p.add_argument('--output',type=Path,required=True);a=p.parse_args();r=run_batch([ROOT/'references/real_case_calibration/replay_manifest.json',ROOT/'references/real_case_calibration/replay_manifest_probe3_v2.json'],a.limit,a.mode);a.output.parent.mkdir(parents=True,exist_ok=True);a.output.write_text(json.dumps(r,ensure_ascii=False,indent=2,sort_keys=True)+'\n',encoding='utf-8');print(json.dumps({'case_count':r['case_count'],'mode':r['mode']},sort_keys=True));return 0 +if __name__=='__main__':raise SystemExit(main()) diff --git a/tests/test_archive_vedastro_nuget_probe.py b/tests/test_archive_vedastro_nuget_probe.py new file mode 100644 index 00000000..de384fe6 --- /dev/null +++ b/tests/test_archive_vedastro_nuget_probe.py @@ -0,0 +1,12 @@ +import json +from pathlib import Path +from scripts.archive_vedastro_nuget_probe import build_archive + +def test_archive_contains_all_identity_layers(tmp_path: Path) -> None: + candidate=tmp_path/"candidate.json";runtime=tmp_path/"runtime.json" + candidate.write_text(json.dumps({"status":"reproducible_library_executable_verified","package_sha256":"a","library_dll_sha256":"b"})) + runtime.write_text(json.dumps({"version":"1.2.0.0","informational_version":"1.2.0","methods":["M"],"method_contracts":[{"name":"M"}]})) + report=build_archive(candidate,runtime) + assert report["assembly_version"]=="1.2.0.0" + assert report["public_methods"]==["M"] + assert report["runtime_image_id"].startswith("sha256:") diff --git a/tests/test_day_level_holdout_validator.py b/tests/test_day_level_holdout_validator.py new file mode 100644 index 00000000..8479cd0a --- /dev/null +++ b/tests/test_day_level_holdout_validator.py @@ -0,0 +1,10 @@ +from pathlib import Path +from scripts.day_level_holdout_validator import validate + +ROOT=Path(__file__).resolve().parents[1] + +def test_empty_preregistered_holdout_remains_honestly_blocked() -> None: + report=validate(ROOT/"references/real_case_calibration/day_level_holdout_v3_preregistration.json") + assert report["status"] == "awaiting_independent_labels" + assert report["annotation_count"] == 0 + assert report["production_tuning_allowed"] is False diff --git a/tests/test_three_engine_mismatch_arbitrator.py b/tests/test_three_engine_mismatch_arbitrator.py new file mode 100644 index 00000000..2d697631 --- /dev/null +++ b/tests/test_three_engine_mismatch_arbitrator.py @@ -0,0 +1,35 @@ +import json +from pathlib import Path + +from scripts.three_engine_mismatch_arbitrator import arbitrate_manifest + + +ROOT = Path(__file__).resolve().parents[1] + + +def test_arbitrator_classifies_every_mismatch_without_majority_truth() -> None: + report = arbitrate_manifest(ROOT / "references/oracle/three_engine_parity_replay_manifest.json") + + assert report["mismatch_count"] == 60 + assert report["classified_count"] == 60 + assert report["unclassified_count"] == 0 + assert report["truth_policy"] == "no_majority_vote" + assert sum(report["category_counts"].values()) == 60 + assert all(row["differing_engines"] for row in report["rows"]) + + +def test_vedastro_only_d2_difference_is_endpoint_semantics(tmp_path: Path) -> None: + manifest = { + "engines": {name: {} for name in ("VedAstro", "PyJHora_JHora", "jyotishganit")}, + "comparison_rows": [{ + "section": "D2", "field": "Sun.sign", "local_value": "Leo", + "oracle_values": {"VedAstro": "Gemini", "PyJHora_JHora": "Leo", "jyotishganit": "Leo"}, + "status": "mismatch", + }], + } + path = tmp_path / "manifest.json" + path.write_text(json.dumps(manifest), encoding="utf-8") + + row = arbitrate_manifest(path)["rows"][0] + assert row["category"] == "endpoint_or_varga_semantics" + assert row["differing_engines"] == ["VedAstro"] diff --git a/tests/test_timing_precision_contract.py b/tests/test_timing_precision_contract.py new file mode 100644 index 00000000..34d136db --- /dev/null +++ b/tests/test_timing_precision_contract.py @@ -0,0 +1,50 @@ +from scripts.timing_precision_contract import build_timing_precision_contract +import json +import subprocess +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] + + +def test_timing_contract_preserves_dates_but_caps_claim_status() -> None: + contract = build_timing_precision_contract({ + "verified_window": "2026-08 to 2026-10", + "candidate_windows": [{ + "start": "2026-08-12", "end": "2026-08-16", "rank": 1, + "signals": ["Vimshottari", "Narayana", "D10", "transit"], + "confidence_cap": "low", + }], + "exact_triggers": [{"at": "2026-08-14T09:30:00Z", "technique": "exact_transit"}], + }) + + assert contract["timing_precision"] == "candidate_day_window" + assert contract["claim_status"] == "exploratory_unvalidated" + assert contract["verified_window"] == "2026-08 to 2026-10" + assert contract["candidate_windows"][0]["start"] == "2026-08-12" + assert contract["exact_triggers"][0]["at"] == "2026-08-14T09:30:00Z" + assert contract["promotion_gate"]["status"] == "blocked" + + +def test_empty_timing_contract_still_exposes_boundary() -> None: + contract = build_timing_precision_contract() + assert contract["timing_precision"] == "broad_window_only" + assert contract["candidate_windows"] == [] + assert "不能作为确定事件承诺" in contract["boundary"] + + +def test_predict_cli_exposes_exploratory_timing_contract() -> None: + completed = subprocess.run( + [sys.executable, "scripts/jyotish_engine.py", "predict", "--chart", '{"planets":{}}', + "--lat", "0", "--lon", "0", "--tz", "0"], + cwd=ROOT, text=True, capture_output=True, timeout=30, check=False, + ) + assert completed.returncode == 0, completed.stderr + contract = json.loads(completed.stdout)["timing_precision_contract"] + assert contract["claim_status"] == "exploratory_unvalidated" + assert contract["promotion_gate"]["current_negative_controls_reusable_for_tuning"] is False + + +def test_consultation_api_attaches_same_contract() -> None: + source = (ROOT / "scripts/jyotish_api_server.py").read_text(encoding="utf-8") + assert source.count("result['timing_precision_contract'] = build_timing_precision_contract") == 2 diff --git a/tests/test_xalen_difference_attribution.py b/tests/test_xalen_difference_attribution.py new file mode 100644 index 00000000..7069f8ab --- /dev/null +++ b/tests/test_xalen_difference_attribution.py @@ -0,0 +1,13 @@ +from pathlib import Path +from scripts.xalen_difference_attribution import build_report +ROOT=Path(__file__).resolve().parents[1] + +def test_all_xalen_shadbala_and_av_differences_are_formula_unit_attributed() -> None: + report=build_report(ROOT/"references/oracle/xalen_fourth_oracle_comparison_2026_07_17.json") + assert report["row_count"]==46 + assert report["classified_count"]==46 + assert sum(report["category_counts"].values())==46 + assert all(row["unit"] in {"Virupa","bindu_count"} for row in report["rows"]) + av=[r for r in report["rows"] if r["unit"]=="bindu_count"] + assert len(av)==4 + assert all(r["row_total_local"]==r["row_total_xalen"] for r in av) diff --git a/tests/test_xalen_ephemeris_mode_comparison.py b/tests/test_xalen_ephemeris_mode_comparison.py new file mode 100644 index 00000000..ec05deb2 --- /dev/null +++ b/tests/test_xalen_ephemeris_mode_comparison.py @@ -0,0 +1,10 @@ +from pathlib import Path +from scripts.xalen_ephemeris_mode_comparison import compare +ROOT=Path(__file__).resolve().parents[1] +def test_independent_xalen_ephemeris_is_separately_disclosed() -> None: + r=compare(ROOT/'references/oracle/artifacts/xalen_steve_jobs_high_rigor_raw.json',ROOT/'references/oracle/artifacts/xalen_steve_jobs_independent_ephemeris_raw.json') + assert r['shared_mode']=='shared_input' + assert r['independent_mode']=='independent_ephemeris' + assert r['maximum_absolute_longitude_delta_deg']<0.02 + assert r['varga_difference_count']==0 + assert 'house numbers remain shared' in r['boundary'] diff --git a/tests/test_xalen_oracle_adapter.py b/tests/test_xalen_oracle_adapter.py new file mode 100644 index 00000000..92b5f9a2 --- /dev/null +++ b/tests/test_xalen_oracle_adapter.py @@ -0,0 +1,9 @@ +from scripts.xalen_oracle_adapter import COMMIT, MANIFEST + + +def test_xalen_adapter_is_pinned_and_license_bounded() -> None: + text = MANIFEST.read_text(encoding="utf-8") + assert COMMIT in text + assert "xalen-vedic" in text + assert len(COMMIT) == 40 + assert "independent_ephemeris" in (MANIFEST.parent.parent.parent / "scripts/xalen_oracle_adapter.py").read_text(encoding="utf-8") diff --git a/tests/test_xalen_oracle_comparison.py b/tests/test_xalen_oracle_comparison.py new file mode 100644 index 00000000..fa298825 --- /dev/null +++ b/tests/test_xalen_oracle_comparison.py @@ -0,0 +1,11 @@ +from pathlib import Path +from scripts.xalen_oracle_comparison import compare + +ROOT=Path(__file__).resolve().parents[1] + +def test_xalen_compares_all_high_rigor_rows_as_fourth_observation() -> None: + report=compare(ROOT/"references/oracle/three_engine_parity_replay_manifest.json",ROOT/"references/oracle/artifacts/xalen_steve_jobs_high_rigor_raw.json") + assert report["row_count"] == 92 + assert report["match_count"] + report["mismatch_count"] == 92 + assert report["truth_policy"] == "fourth_observation_not_truth" + assert report["license"] == "Apache-2.0" diff --git a/tests/test_xalen_public_case_batch.py b/tests/test_xalen_public_case_batch.py new file mode 100644 index 00000000..7cebf9da --- /dev/null +++ b/tests/test_xalen_public_case_batch.py @@ -0,0 +1,5 @@ +from scripts.xalen_public_case_batch import PLANETS,SIGNS + +def test_batch_contract_uses_seven_planets_and_twelve_signs() -> None: + assert PLANETS==['Sun','Moon','Mars','Mercury','Jupiter','Venus','Saturn'] + assert len(SIGNS)==12